[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#740435: wheezy-pu: package arandr/0.1.7.1-1



hello adam,

thanks for your ping -- i've missed the original reply.

>That sounds like it would probably be fine, but a defdiff of the
>proposed package would be appreciated for confirmation. In the context
>of package updates, when we refer to a debdiff we usually mean one of
>the _source_ packages, not the resulting binar(y|ies), to indicate the
>actual changes to the uploaded package which result from the rebuild.
>
>The version number would need to be 0.1.7.1-1~deb7u1; otherwise it would
>be higher than the version in testing/unstable.

i've attached a debdiff to that respect, and in case you prefer to work
off a dsc, uploaded one to [1].

as this does not differ from the originally suggested 0.1.7.1-1 upload
but by the version number, the old description detailling the debdiff
still holds (ie. python delta is almost minimal, then there are
translations, the added menu file and administrative chanes like README,
chanelog etc.)

best regards
chrysn

[1] http://archive.amsuess.com/pool/main/a/arandr/arandr_0.1.7.1-1~deb7u1.dsc
diff -Nru arandr-0.1.6/ChangeLog arandr-0.1.7.1/ChangeLog
--- arandr-0.1.6/ChangeLog	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/ChangeLog	2013-03-04 18:22:25.000000000 +0100
@@ -1,3 +1,134 @@
+commit 846451d14cfde701277d6ec0d9ebce0600dcbab1
+Author: chrysn <chrysn@fsfe.org>
+Date:   Mon Mar 4 18:15:55 2013 +0100
+
+    ready for release 0.1.7.1
+
+commit 08e7739ec5b96dabcb055704bbf79954c83329d7
+Merge: f7f44c7 e10ca80
+Author: chrysn <chrysn@fsfe.org>
+Date:   Mon Mar 4 18:12:38 2013 +0100
+
+    some fixes for website/readme
+
+commit f7f44c735321e6d09d452824eaaaf492dcf160b5
+Author: chrysn <chrysn@fsfe.org>
+Date:   Mon Mar 4 17:57:07 2013 +0100
+
+    setup.py: be installable even without locales
+    
+    the install_data step previously failed in absence of translations. the
+    build/locale directory is now built by build_trans unconditionally,
+    making everything work even without present translations.
+    
+    the problem came up in gentoo, where translation files are deleted
+    selectively to only install what the user wants.
+
+commit 2fa045379e3e9652701861a491a46806fcee52e1
+Author: chrysn <chrysn@fsfe.org>
+Date:   Mon Mar 4 17:31:42 2013 +0100
+
+    fix unassigned variable error
+    
+    manifests in "AttributeError: 'Size' object has no attribute '_size'"
+    when different modes with the same name have different screen sizes.
+
+commit 8535870c4cda27e4d23dd4f0802006fb6ba7ef28
+Author: chrysn <chrysn@fsfe.org>
+Date:   Fri Mar 1 13:47:14 2013 +0100
+
+    disable the output submenu instead of the checkbox
+    
+    result of feedback from the OpenSUSE package maintainer Stefan Seyfried.
+    this makes it easier for graphics cards with many outputs to see which
+    one was just plugged in and can be activated.
+
+commit 74e5fba2b2f2b7f303699ca2c20b7b1d9c9a230b
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 19:12:46 2013 +0100
+
+    ready for release 0.1.7
+
+commit 615607eb6796345d946e0fae8fdaf8680758b95e
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 18:27:48 2013 +0100
+
+    bugfix for uninitialized variable
+    
+    was tricky to find because it occurs only if the first output is
+    inactive.
+    
+    thanks to Sid Karuaratne for pointing finding it.
+
+commit 0fe7a5d650d0a3ed2116acdbc87bfcd7e60d5fc1
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 17:26:08 2013 +0100
+
+    changed attribution of ukrainian translation
+    
+    as requested by rax himself
+
+commit 3d4646344cfe8dbac6bc95c6cf934cd2e4dc59c4
+Merge: 98c5117 09928da
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 11:42:51 2013 +0100
+
+    update README / website
+    
+    * acknowledge weblate as the new translation tool
+    * move cglita branch to "similar programs" (as it's partially merged to fix the
+      bug)
+
+commit 98c5117b09e72c8e656cd27c0190a8ad2dd3ba46
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 11:26:38 2013 +0100
+
+    bugfix: remove duplicate modes
+    
+    the "minimal cglita" merge intoduced a bug where named screen modes with
+    more than one actual modes are shown more than once; this patch detects
+    and drops duplicates.
+
+commit fd3dc6fd3f714b2571707c2bf108bad77498a39b
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 04:56:23 2013 +0100
+
+    ignore 'primary' in xrandr output
+    
+    since 1.4.0, xrandr indicates which output is currently primary; this
+    patch ignores that and restores xrandr 1.4.0 compatibility.
+    
+    note that the version detection didn't work for the affected users, as
+    --version also prints the server's xrandr version, which was still 1.3.
+
+commit dad11f9ced9bc4fdb8632a992bf731ebf1efca40
+Merge: 123355d b5d1446
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 04:33:59 2013 +0100
+
+    merge parts of the cglita branch
+    
+    closes the most common arandr issue
+
+commit 123355d4cc8f1199b233a432c2f770fee5dbc251
+Merge: 2dc9952 467e077
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 01:40:21 2013 +0100
+
+    translations from transifex
+    
+    new: ko_KR
+
+commit 2dc9952600a1fa22f1aaa98fef50280fe5b1b932
+Merge: 801e664 09745e4
+Author: chrysn <chrysn@fsfe.org>
+Date:   Thu Feb 28 01:39:17 2013 +0100
+
+    translations from launchpad
+    
+    new: uk, hu, el
+    updated: lt
+
 commit 801e66476f1ac1cca227a0919cf081e003b0d820
 Author: chrysn <chrysn@fsfe.org>
 Date:   Sat Jun 2 15:49:21 2012 +0200
diff -Nru arandr-0.1.6/data/po/el.po arandr-0.1.7.1/data/po/el.po
--- arandr-0.1.6/data/po/el.po	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/data/po/el.po	2013-03-04 18:22:25.000000000 +0100
@@ -0,0 +1,186 @@
+# Greek translation for arandr
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the arandr package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: arandr\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-10-01 14:13+0200\n"
+"PO-Revision-Date: 2012-11-26 17:50+0000\n"
+"Last-Translator: Dimitris Giouroukis <Unknown>\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-11-27 06:13+0000\n"
+"X-Generator: Launchpad (build 16309)\n"
+
+#: screenlayout/gui.py:117
+msgid "_Layout"
+msgstr ""
+
+#: screenlayout/gui.py:128
+msgid "_View"
+msgstr ""
+
+#: screenlayout/gui.py:130
+msgid "_Outputs"
+msgstr ""
+
+#: screenlayout/gui.py:131
+msgid "Dummy"
+msgstr ""
+
+#: screenlayout/gui.py:133
+msgid "_System"
+msgstr ""
+
+#: screenlayout/gui.py:134
+msgid "_Keybindings (Metacity)"
+msgstr ""
+
+#: screenlayout/gui.py:136
+msgid "_Help"
+msgstr ""
+
+#: screenlayout/gui.py:140
+msgid "1:4"
+msgstr ""
+
+#: screenlayout/gui.py:141
+msgid "1:8"
+msgstr ""
+
+#: screenlayout/gui.py:142
+msgid "1:16"
+msgstr ""
+
+#: screenlayout/gui.py:189
+msgid "Script Properties"
+msgstr ""
+
+#: screenlayout/gui.py:201
+msgid "Script"
+msgstr ""
+
+#: screenlayout/gui.py:217
+#, python-format
+msgid ""
+"XRandR failed:\n"
+"%s"
+msgstr ""
+
+#: screenlayout/gui.py:227
+msgid "Open Layout"
+msgstr ""
+
+#: screenlayout/gui.py:239
+msgid "Save Layout"
+msgstr ""
+
+#: screenlayout/meta.py:23
+msgid "ARandR Screen Layout Editor"
+msgstr ""
+
+#. # translators, please translate in the style of "Another XRandR GUI
+#. # (ein weiteres GUI für XRandR)" so users get both the explanation of
+#. # the acronym and a localized version.
+#: screenlayout/meta.py:27
+msgid "Another XRandR GUI"
+msgstr ""
+
+#: screenlayout/metacity.py:53
+msgid "Accelerator"
+msgstr ""
+
+#: screenlayout/metacity.py:54
+msgid "Action"
+msgstr ""
+
+#: screenlayout/metacity.py:120
+msgid "disabled"
+msgstr ""
+
+#: screenlayout/metacity.py:135
+msgid "New accelerator..."
+msgstr ""
+
+#: screenlayout/metacity.py:198
+msgid "no action"
+msgstr ""
+
+#: screenlayout/metacity.py:228
+msgid "incompatible configuration"
+msgstr ""
+
+#: screenlayout/metacity.py:235
+msgid "other application"
+msgstr ""
+
+#: screenlayout/metacity.py:255
+#, python-format
+msgid "No files in %(folder)r. Save a layout first."
+msgstr ""
+
+#: screenlayout/metacity.py:284
+msgid "gconf not available."
+msgstr ""
+
+#: screenlayout/metacity.py:285
+msgid ""
+"In order to configure metacity, you need to have the python gconf module "
+"installed."
+msgstr ""
+
+#: screenlayout/metacity.py:292
+msgid "Keybindings (via Metacity)"
+msgstr ""
+
+#: screenlayout/metacity.py:305
+msgid ""
+"Click on a button in the left column and press a key combination you want to "
+"bind to a certain screen layout. (Use backspace to clear accelerators, "
+"escape to abort editing.) Then, select one or more layouts in the right "
+"column.\n"
+"\n"
+"This will only work if you use metacity or another program reading its "
+"configuration."
+msgstr ""
+
+#: screenlayout/widget.py:61
+msgid ""
+"Your configuration does not include an active monitor. Do you want to apply "
+"the configuration?"
+msgstr ""
+
+#: screenlayout/widget.py:301
+msgid "Active"
+msgstr "Ενεργό"
+
+#: screenlayout/widget.py:319
+#, python-format
+msgid "Setting this resolution is not possible here: %s"
+msgstr ""
+
+#: screenlayout/widget.py:332
+#, python-format
+msgid "This orientation is not possible here: %s"
+msgstr ""
+
+#: screenlayout/widget.py:338
+msgid "Resolution"
+msgstr "Ανάλυση"
+
+#: screenlayout/widget.py:340
+msgid "Orientation"
+msgstr ""
+
+#: screenlayout/xrandr.py:222
+msgid "A part of an output is outside the virtual screen."
+msgstr ""
+
+#: screenlayout/xrandr.py:225
+msgid "An output is outside the virtual screen."
+msgstr ""
diff -Nru arandr-0.1.6/data/po/hu.po arandr-0.1.7.1/data/po/hu.po
--- arandr-0.1.6/data/po/hu.po	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/data/po/hu.po	2013-03-04 18:22:25.000000000 +0100
@@ -0,0 +1,198 @@
+# Hungarian translation for arandr
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the arandr package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: arandr\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-10-01 14:13+0200\n"
+"PO-Revision-Date: 2012-09-14 23:44+0000\n"
+"Last-Translator: Tamás Nagy <kisagy@gmail.com>\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-Launchpad-Export-Date: 2012-09-16 04:54+0000\n"
+"X-Generator: Launchpad (build 15944)\n"
+
+#: screenlayout/gui.py:117
+msgid "_Layout"
+msgstr "_Elrendezés"
+
+#: screenlayout/gui.py:128
+msgid "_View"
+msgstr "_Nézet"
+
+#: screenlayout/gui.py:130
+msgid "_Outputs"
+msgstr "_Kimenetek"
+
+#: screenlayout/gui.py:131
+msgid "Dummy"
+msgstr "Dummy"
+
+#: screenlayout/gui.py:133
+msgid "_System"
+msgstr "_Rendszer"
+
+#: screenlayout/gui.py:134
+msgid "_Keybindings (Metacity)"
+msgstr "_Gyorsbillentyűk"
+
+#: screenlayout/gui.py:136
+msgid "_Help"
+msgstr "_Súgó"
+
+#: screenlayout/gui.py:140
+msgid "1:4"
+msgstr "1:4"
+
+#: screenlayout/gui.py:141
+msgid "1:8"
+msgstr "1:8"
+
+#: screenlayout/gui.py:142
+msgid "1:16"
+msgstr "1:16"
+
+#: screenlayout/gui.py:189
+msgid "Script Properties"
+msgstr "Szkript beállítások"
+
+#: screenlayout/gui.py:201
+msgid "Script"
+msgstr "Parancsfájl"
+
+#: screenlayout/gui.py:217
+#, python-format
+msgid ""
+"XRandR failed:\n"
+"%s"
+msgstr ""
+"XRandR hiba:\n"
+"%s"
+
+#: screenlayout/gui.py:227
+msgid "Open Layout"
+msgstr "Megnyitás"
+
+#: screenlayout/gui.py:239
+msgid "Save Layout"
+msgstr "Mentés"
+
+#: screenlayout/meta.py:23
+msgid "ARandR Screen Layout Editor"
+msgstr "ARandR Kijelző elrendezésszerkesztő"
+
+#. # translators, please translate in the style of "Another XRandR GUI
+#. # (ein weiteres GUI für XRandR)" so users get both the explanation of
+#. # the acronym and a localized version.
+#: screenlayout/meta.py:27
+msgid "Another XRandR GUI"
+msgstr "Egy mAsik XRandR GUI"
+
+#: screenlayout/metacity.py:53
+msgid "Accelerator"
+msgstr "Gyorsbillentyű"
+
+#: screenlayout/metacity.py:54
+msgid "Action"
+msgstr "Művelet"
+
+#: screenlayout/metacity.py:120
+msgid "disabled"
+msgstr "kikapcsolva"
+
+#: screenlayout/metacity.py:135
+msgid "New accelerator..."
+msgstr "Új gyorsbillentyű…"
+
+#: screenlayout/metacity.py:198
+msgid "no action"
+msgstr "nincs művelet"
+
+#: screenlayout/metacity.py:228
+msgid "incompatible configuration"
+msgstr "Inkompatibilis konfiguráció"
+
+#: screenlayout/metacity.py:235
+msgid "other application"
+msgstr "másik alkalmazás"
+
+#: screenlayout/metacity.py:255
+#, python-format
+msgid "No files in %(folder)r. Save a layout first."
+msgstr "Itt nincs fájl: %(folder)r. Először mentsd el az elrendezést."
+
+#: screenlayout/metacity.py:284
+msgid "gconf not available."
+msgstr "gconf nem elérhető"
+
+#: screenlayout/metacity.py:285
+msgid ""
+"In order to configure metacity, you need to have the python gconf module "
+"installed."
+msgstr ""
+"A metacity konfigurálásához, telepítened kell a python gconf modulját."
+
+#: screenlayout/metacity.py:292
+msgid "Keybindings (via Metacity)"
+msgstr "Gyorsbillentyűk (Metacity-vel)"
+
+#: screenlayout/metacity.py:305
+msgid ""
+"Click on a button in the left column and press a key combination you want to "
+"bind to a certain screen layout. (Use backspace to clear accelerators, "
+"escape to abort editing.) Then, select one or more layouts in the right "
+"column.\n"
+"\n"
+"This will only work if you use metacity or another program reading its "
+"configuration."
+msgstr ""
+"Kattints a baloldali oszlopban lévő gombra, aztán nyomd meg azt a "
+"billentyűkombinációt, amihez hozzá szeretnéd rendelni a képernyőelrendezést "
+"(A Backspace törli a gyorsbillentyűt, az Escape kilép s szerkesztésből ). "
+"Ezután válassz ki egy vagy több elrendezést a jobboldali oszlopból.\n"
+"\n"
+"Ez a beállítás csak akkor működik, ha metacity-t használsz vagy egy másik "
+"alaklmazás használja a beállításait."
+
+#: screenlayout/widget.py:61
+msgid ""
+"Your configuration does not include an active monitor. Do you want to apply "
+"the configuration?"
+msgstr ""
+"Ebben a konfigurációban nincs bekapcsolt kijelző. Biztos hogy ezt akarod "
+"beállítani?"
+
+#: screenlayout/widget.py:301
+msgid "Active"
+msgstr "Bekapcsolva"
+
+#: screenlayout/widget.py:319
+#, python-format
+msgid "Setting this resolution is not possible here: %s"
+msgstr "Ez a felbontás itt nem lehetséges : %s"
+
+#: screenlayout/widget.py:332
+#, python-format
+msgid "This orientation is not possible here: %s"
+msgstr "Ilyen tájolás itt nem lehetséges: %s"
+
+#: screenlayout/widget.py:338
+msgid "Resolution"
+msgstr "Felbontás"
+
+#: screenlayout/widget.py:340
+msgid "Orientation"
+msgstr "Tájolás"
+
+#: screenlayout/xrandr.py:222
+msgid "A part of an output is outside the virtual screen."
+msgstr "Az egyik kimenet részben, a virtuális képernyőn kívűl van."
+
+#: screenlayout/xrandr.py:225
+msgid "An output is outside the virtual screen."
+msgstr "Az egyik kimenet a virtuális képernyőn kívűl van."
diff -Nru arandr-0.1.6/data/po/ko_KR.po arandr-0.1.7.1/data/po/ko_KR.po
--- arandr-0.1.6/data/po/ko_KR.po	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/data/po/ko_KR.po	2013-03-04 18:22:25.000000000 +0100
@@ -0,0 +1,183 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR chrysn
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# ParkJS <HeavensBus@gmail.com>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: ARandR\n"
+"Report-Msgid-Bugs-To: chrysn@fsfe.org\n"
+"POT-Creation-Date: 2011-10-01 14:13+0200\n"
+"PO-Revision-Date: 2013-02-27 00:36+0000\n"
+"Last-Translator: HeavensBus <HeavensBus@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ko_KR\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: screenlayout/gui.py:117
+msgid "_Layout"
+msgstr "_레이아웃"
+
+#: screenlayout/gui.py:128
+msgid "_View"
+msgstr "_뷰"
+
+#: screenlayout/gui.py:130
+msgid "_Outputs"
+msgstr "_출력"
+
+#: screenlayout/gui.py:131
+msgid "Dummy"
+msgstr "더미"
+
+#: screenlayout/gui.py:133
+msgid "_System"
+msgstr "_시스템"
+
+#: screenlayout/gui.py:134
+msgid "_Keybindings (Metacity)"
+msgstr "_단축키 연결 (Metacity)"
+
+#: screenlayout/gui.py:136
+msgid "_Help"
+msgstr "_도움말"
+
+#: screenlayout/gui.py:140
+msgid "1:4"
+msgstr "1:4"
+
+#: screenlayout/gui.py:141
+msgid "1:8"
+msgstr "1:4"
+
+#: screenlayout/gui.py:142
+msgid "1:16"
+msgstr "1:16"
+
+#: screenlayout/gui.py:189
+msgid "Script Properties"
+msgstr "스크립트 편집"
+
+#: screenlayout/gui.py:201
+msgid "Script"
+msgstr "스크립트"
+
+#: screenlayout/gui.py:217
+#, python-format
+msgid ""
+"XRandR failed:\n"
+"%s"
+msgstr "XRandR 실패:\n%s"
+
+#: screenlayout/gui.py:227
+msgid "Open Layout"
+msgstr "레이아웃 열기"
+
+#: screenlayout/gui.py:239
+msgid "Save Layout"
+msgstr "레이아웃 저장"
+
+#: screenlayout/meta.py:23
+msgid "ARandR Screen Layout Editor"
+msgstr "ARandR Screen Layout Editor"
+
+#. # translators, please translate in the style of "Another XRandR GUI
+#. # (ein weiteres GUI für XRandR)" so users get both the explanation of
+#. # the acronym and a localized version.
+#: screenlayout/meta.py:27
+msgid "Another XRandR GUI"
+msgstr "Another XRandR GUI"
+
+#: screenlayout/metacity.py:53
+msgid "Accelerator"
+msgstr "단축키"
+
+#: screenlayout/metacity.py:54
+msgid "Action"
+msgstr "액션"
+
+#: screenlayout/metacity.py:120
+msgid "disabled"
+msgstr "단축키 없음"
+
+#: screenlayout/metacity.py:135
+msgid "New accelerator..."
+msgstr "새로운 단축키..."
+
+#: screenlayout/metacity.py:198
+msgid "no action"
+msgstr "액션 없음"
+
+#: screenlayout/metacity.py:228
+msgid "incompatible configuration"
+msgstr "잘못된 설정"
+
+#: screenlayout/metacity.py:235
+msgid "other application"
+msgstr "기타 어플리케이션"
+
+#: screenlayout/metacity.py:255
+#, python-format
+msgid "No files in %(folder)r. Save a layout first."
+msgstr "%(folder)r폴더에 파일이 없습니다. 먼저 레이아웃 파일을 저장 하세요."
+
+#: screenlayout/metacity.py:284
+msgid "gconf not available."
+msgstr "gconf를 사용할 수 없습니다."
+
+#: screenlayout/metacity.py:285
+msgid ""
+"In order to configure metacity, you need to have the python gconf module "
+"installed."
+msgstr "단축키 설정창을 열기 위해서는 python gconf 모듈이 설치되어 있어야 합니다."
+
+#: screenlayout/metacity.py:292
+msgid "Keybindings (via Metacity)"
+msgstr "단축키 연결창 (Metacity 사용)"
+
+#: screenlayout/metacity.py:305
+msgid ""
+"Click on a button in the left column and press a key combination you want to bind to a certain screen layout. (Use backspace to clear accelerators, escape to abort editing.) Then, select one or more layouts in the right column.\n"
+"\n"
+"This will only work if you use metacity or another program reading its configuration."
+msgstr "특정 레이아웃에 단축키를 지정하려면 왼쪽 열에서 버튼을 클릭하고 키 조합을 입력 하세요. (단축키 설정을 취소 하려면 백 스페이스 키를 누르세요.) 그 다음 오른쪽 열에서 한 개 이상의 레이아웃을 선택 합니다.\n\n설정된 단축키가 이외 다른 프로그램 설정에서 중복되지 않는지 체크하세요.\n(번역 확인 요망. 원문 - This will only work if you use metacity or another program reading its configuration.)"
+
+#: screenlayout/widget.py:61
+msgid ""
+"Your configuration does not include an active monitor. Do you want to apply "
+"the configuration?"
+msgstr "현재 설정에는 활성된 모니터가 포함되어 있지 않습니다. 정말 이 설정을 적용 하시겠습니까?"
+
+#: screenlayout/widget.py:301
+msgid "Active"
+msgstr "활성"
+
+#: screenlayout/widget.py:319
+#, python-format
+msgid "Setting this resolution is not possible here: %s"
+msgstr "%s 해상도는 설정이 불가능 합니다. "
+
+#: screenlayout/widget.py:332
+#, python-format
+msgid "This orientation is not possible here: %s"
+msgstr "%s 방향은 설정이 불가능 합니다."
+
+#: screenlayout/widget.py:338
+msgid "Resolution"
+msgstr "해상도"
+
+#: screenlayout/widget.py:340
+msgid "Orientation"
+msgstr "방향"
+
+#: screenlayout/xrandr.py:222
+msgid "A part of an output is outside the virtual screen."
+msgstr "출력의 일부가 가상 화면 밖에 있습니다."
+
+#: screenlayout/xrandr.py:225
+msgid "An output is outside the virtual screen."
+msgstr "출력이 가상 화면 밖에 있습니다."
diff -Nru arandr-0.1.6/data/po/lt.po arandr-0.1.7.1/data/po/lt.po
--- arandr-0.1.6/data/po/lt.po	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/data/po/lt.po	2013-03-04 18:22:25.000000000 +0100
@@ -1,7 +1,7 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR chrysn
 # This file is distributed under the same license as the PACKAGE package.
-# 
+#
 # Translators:
 # Algimantas Margevičius <margevicius.algimantas@gmail.com>, 2012.
 # chrysn <chrysn@fsfe.org>, 2011.
@@ -10,14 +10,15 @@
 "Project-Id-Version: ARandR\n"
 "Report-Msgid-Bugs-To: chrysn@fsfe.org\n"
 "POT-Creation-Date: 2011-10-01 14:13+0200\n"
-"PO-Revision-Date: 2012-05-03 09:44+0000\n"
-"Last-Translator: Algimantas Margevičius <gymka@mail.ru>\n"
+"PO-Revision-Date: 2012-11-19 07:36+0000\n"
+"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-11-20 05:13+0000\n"
+"X-Generator: Launchpad (build 16286)\n"
 "Language: lt\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"
 
 #: screenlayout/gui.py:117
 msgid "_Layout"
@@ -45,7 +46,7 @@
 
 #: screenlayout/gui.py:136
 msgid "_Help"
-msgstr "Ž_inynas"
+msgstr "_Pagalba"
 
 #: screenlayout/gui.py:140
 msgid "1:4"
@@ -72,7 +73,9 @@
 msgid ""
 "XRandR failed:\n"
 "%s"
-msgstr "XRandR nepavyko:\n%s"
+msgstr ""
+"XRandR nepavyko:\n"
+"%s"
 
 #: screenlayout/gui.py:227
 msgid "Open Layout"
@@ -80,7 +83,7 @@
 
 #: screenlayout/gui.py:239
 msgid "Save Layout"
-msgstr "Išsaugoti išdėstymą"
+msgstr "Įrašyti išdėstymą"
 
 #: screenlayout/meta.py:23
 msgid "ARandR Screen Layout Editor"
@@ -124,7 +127,7 @@
 #: screenlayout/metacity.py:255
 #, python-format
 msgid "No files in %(folder)r. Save a layout first."
-msgstr "Aplanke %(folder)r failų nėra. Pirmiausia išsaugokite išdėstymą."
+msgstr "Aplanke %(folder)r failų nėra. Pirmiausia įrašykite išdėstymą."
 
 #: screenlayout/metacity.py:284
 msgid "gconf not available."
@@ -134,7 +137,8 @@
 msgid ""
 "In order to configure metacity, you need to have the python gconf module "
 "installed."
-msgstr "Norint konfigūruoti „metacity“, turi būti įdiegtas python gconf modulis."
+msgstr ""
+"Norint konfigūruoti „metacity“, turi būti įdiegtas python gconf modulis."
 
 #: screenlayout/metacity.py:292
 msgid "Keybindings (via Metacity)"
@@ -142,16 +146,30 @@
 
 #: screenlayout/metacity.py:305
 msgid ""
-"Click on a button in the left column and press a key combination you want to bind to a certain screen layout. (Use backspace to clear accelerators, escape to abort editing.) Then, select one or more layouts in the right column.\n"
+"Click on a button in the left column and press a key combination you want to "
+"bind to a certain screen layout. (Use backspace to clear accelerators, "
+"escape to abort editing.) Then, select one or more layouts in the right "
+"column.\n"
 "\n"
-"This will only work if you use metacity or another program reading its configuration."
-msgstr "Spragtelėkite ant mygtuko dešiniame stulpelyje ir paspauskite klavišų kombinaciją kurią norėsite naudoti tam ekranų išdėstymui. (Norėdami išvalyti spartųjį klavišą, paspauskite „Backspace“, „escape“ norėdami nutraukti redagavimą.) Tada pasirinkite vieną ar kelis išdėstymus, iš dešinio stulpelio.\n\nTai veiks tik tada jei naudojate „metacity“ ar kitą programą skaitančią tą konfigūraciją."
+"This will only work if you use metacity or another program reading its "
+"configuration."
+msgstr ""
+"Spustelėkite ant mygtuko dešiniame stulpelyje ir paspauskite klavišų "
+"kombinaciją kurią norėsite naudoti tam ekranų išdėstymui. (Sparčiojo klavišo "
+"išvalymui naudokite „Backspace“ klavišą, o redagavimo nutraukimui - "
+"„Escape“.) Tada pasirinkite vieną ar kelis išdėstymus, iš dešinio "
+"stulpelio.\n"
+"\n"
+"Tai veiks tik tada jei naudojate „metacity“ ar kitą langų tvarkyklę "
+"skaitančią tą konfigūraciją."
 
 #: screenlayout/widget.py:61
 msgid ""
 "Your configuration does not include an active monitor. Do you want to apply "
 "the configuration?"
-msgstr "Jūsų konfigūracijoje nėra aktyvaus monitoriaus. Ar norite pritaikyti šią konfigūraciją?"
+msgstr ""
+"Jūsų konfigūracijoje nėra aktyvaus monitoriaus. Ar norite pritaikyti šią "
+"konfigūraciją?"
 
 #: screenlayout/widget.py:301
 msgid "Active"
diff -Nru arandr-0.1.6/data/po/uk.po arandr-0.1.7.1/data/po/uk.po
--- arandr-0.1.6/data/po/uk.po	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/data/po/uk.po	2013-03-04 18:22:25.000000000 +0100
@@ -0,0 +1,195 @@
+# Ukrainian translation for arandr
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the arandr package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: arandr\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-10-01 14:13+0200\n"
+"PO-Revision-Date: 2012-06-19 11:51+0000\n"
+"Last-Translator: Rax <Unknown>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-06-20 05:07+0000\n"
+"X-Generator: Launchpad (build 15435)\n"
+
+#: screenlayout/gui.py:117
+msgid "_Layout"
+msgstr "_Компонування"
+
+#: screenlayout/gui.py:128
+msgid "_View"
+msgstr "_Масштаб"
+
+#: screenlayout/gui.py:130
+msgid "_Outputs"
+msgstr "_Вивід"
+
+#: screenlayout/gui.py:131
+msgid "Dummy"
+msgstr "Фіктивний"
+
+#: screenlayout/gui.py:133
+msgid "_System"
+msgstr "_Система"
+
+#: screenlayout/gui.py:134
+msgid "_Keybindings (Metacity)"
+msgstr "_Гарячі клавіші (Metacity)"
+
+#: screenlayout/gui.py:136
+msgid "_Help"
+msgstr "_Довідка"
+
+#: screenlayout/gui.py:140
+msgid "1:4"
+msgstr "1:4"
+
+#: screenlayout/gui.py:141
+msgid "1:8"
+msgstr "1:8"
+
+#: screenlayout/gui.py:142
+msgid "1:16"
+msgstr "1:16"
+
+#: screenlayout/gui.py:189
+msgid "Script Properties"
+msgstr "Властивості скрипту"
+
+#: screenlayout/gui.py:201
+msgid "Script"
+msgstr "Скрипт"
+
+#: screenlayout/gui.py:217
+#, python-format
+msgid ""
+"XRandR failed:\n"
+"%s"
+msgstr ""
+"XRandR зазнав невдачі:\n"
+"%s"
+
+#: screenlayout/gui.py:227
+msgid "Open Layout"
+msgstr "Відкрити компонування"
+
+#: screenlayout/gui.py:239
+msgid "Save Layout"
+msgstr "Зберегти компонування"
+
+#: screenlayout/meta.py:23
+msgid "ARandR Screen Layout Editor"
+msgstr "ARandR, редактор компонування екранів"
+
+#. # translators, please translate in the style of "Another XRandR GUI
+#. # (ein weiteres GUI für XRandR)" so users get both the explanation of
+#. # the acronym and a localized version.
+#: screenlayout/meta.py:27
+msgid "Another XRandR GUI"
+msgstr "«Another XRandR GUI» (черговий графічний інтерфейс для XRandR)"
+
+#: screenlayout/metacity.py:53
+msgid "Accelerator"
+msgstr "Комбінація клавіш"
+
+#: screenlayout/metacity.py:54
+msgid "Action"
+msgstr "Дія"
+
+#: screenlayout/metacity.py:120
+msgid "disabled"
+msgstr "вимкнено"
+
+#: screenlayout/metacity.py:135
+msgid "New accelerator..."
+msgstr "Введіть комбінацію клавіш."
+
+#: screenlayout/metacity.py:198
+msgid "no action"
+msgstr "дія відсутня"
+
+#: screenlayout/metacity.py:228
+msgid "incompatible configuration"
+msgstr "несумісна конфігурація"
+
+#: screenlayout/metacity.py:235
+msgid "other application"
+msgstr "інша програма"
+
+#: screenlayout/metacity.py:255
+#, python-format
+msgid "No files in %(folder)r. Save a layout first."
+msgstr "%(folder)r не містить файлів. Спершу збережіть компонування."
+
+#: screenlayout/metacity.py:284
+msgid "gconf not available."
+msgstr "gconf не існує."
+
+#: screenlayout/metacity.py:285
+msgid ""
+"In order to configure metacity, you need to have the python gconf module "
+"installed."
+msgstr "Щоб налаштувати Metacity, потрібно встановити Python-модуль «gconf»."
+
+#: screenlayout/metacity.py:292
+msgid "Keybindings (via Metacity)"
+msgstr "Гарячі клавіші (засобами Metacity)"
+
+#: screenlayout/metacity.py:305
+msgid ""
+"Click on a button in the left column and press a key combination you want to "
+"bind to a certain screen layout. (Use backspace to clear accelerators, "
+"escape to abort editing.) Then, select one or more layouts in the right "
+"column.\n"
+"\n"
+"This will only work if you use metacity or another program reading its "
+"configuration."
+msgstr ""
+"Натисніть на кнопку в лівій колонці та введіть комбінацію клавіш, щоб "
+"асоціювати її з певним компонування. (Замість введення натисніть backspace, "
+"щоб стерти комбінацію, або escape, щоб скасувати редагування). Тоді оберіть "
+"відповідне компонування в правій колонці.\n"
+"\n"
+"Це працюватиме лише за наявності Metacity чи програми, яка використовує його "
+"налаштування."
+
+#: screenlayout/widget.py:61
+msgid ""
+"Your configuration does not include an active monitor. Do you want to apply "
+"the configuration?"
+msgstr "Ваша конфігурація не має активного монітору. Все одно застосувати?"
+
+#: screenlayout/widget.py:301
+msgid "Active"
+msgstr "Активний"
+
+#: screenlayout/widget.py:319
+#, python-format
+msgid "Setting this resolution is not possible here: %s"
+msgstr "Використання цієї роздільності тут неможливе: %s"
+
+#: screenlayout/widget.py:332
+#, python-format
+msgid "This orientation is not possible here: %s"
+msgstr "Використання цієї орієнтації тут неможливе: %s"
+
+#: screenlayout/widget.py:338
+msgid "Resolution"
+msgstr "Роздільність"
+
+#: screenlayout/widget.py:340
+msgid "Orientation"
+msgstr "Орієнтація"
+
+#: screenlayout/xrandr.py:222
+msgid "A part of an output is outside the virtual screen."
+msgstr "Частина виводу знаходиться поза віртуальним екраном."
+
+#: screenlayout/xrandr.py:225
+msgid "An output is outside the virtual screen."
+msgstr "Вивід поза віртуальним екраном."
diff -Nru arandr-0.1.6/data/po/zh_CN.po arandr-0.1.7.1/data/po/zh_CN.po
--- arandr-0.1.6/data/po/zh_CN.po	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/data/po/zh_CN.po	2013-03-04 18:22:25.000000000 +0100
@@ -49,15 +49,15 @@
 
 #: screenlayout/gui.py:140
 msgid "1:4"
-msgstr ""
+msgstr "1:4"
 
 #: screenlayout/gui.py:141
 msgid "1:8"
-msgstr ""
+msgstr "1:8"
 
 #: screenlayout/gui.py:142
 msgid "1:16"
-msgstr ""
+msgstr "1:16"
 
 #: screenlayout/gui.py:189
 msgid "Script Properties"
diff -Nru arandr-0.1.6/debian/arandr.menu arandr-0.1.7.1/debian/arandr.menu
--- arandr-0.1.6/debian/arandr.menu	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/debian/arandr.menu	2015-01-17 14:15:27.000000000 +0100
@@ -0,0 +1 @@
+?package(arandr): needs="X11" section="Applications/System/Hardware" title="ARandR" longtitle="ARandR screen settings" command="arandr" hints="Monitors"
diff -Nru arandr-0.1.6/debian/changelog arandr-0.1.7.1/debian/changelog
--- arandr-0.1.6/debian/changelog	2012-06-02 16:15:26.000000000 +0200
+++ arandr-0.1.7.1/debian/changelog	2015-01-17 14:16:33.000000000 +0100
@@ -1,3 +1,22 @@
+arandr (0.1.7.1-1~deb7u1) stable; urgency=medium
+
+  * Rebuild for wheezy updates (no further changes, closes: #718366).
+
+ -- Christian M. Amsüss <chrysn@fsfe.org>  Sat, 17 Jan 2015 14:15:47 +0100
+
+arandr (0.1.7.1-1) unstable; urgency=low
+
+  * New upstream release
+    - Compatibility with non "<width>x<height" modes (Closes: #507521)
+    - Compatibility with xrandr client 1.4.0 ("primary" issue)
+    - New translations
+  * Note new translations and contributor in copyright file
+  * Change Standards-Version to 3.9.4 (no changes)
+    - Specify branch of Vcs-git field
+  * Add a Debian menu file (Closes: #692176)
+
+ -- Christian M. Amsüss <chrysn@fsfe.org>  Mon, 04 Mar 2013 19:11:30 +0100
+
 arandr (0.1.6-1) unstable; urgency=low
 
   * New upstream release
diff -Nru arandr-0.1.6/debian/control arandr-0.1.7.1/debian/control
--- arandr-0.1.6/debian/control	2012-06-02 16:15:26.000000000 +0200
+++ arandr-0.1.7.1/debian/control	2015-01-17 14:15:27.000000000 +0100
@@ -5,9 +5,9 @@
 Homepage: http://christian.amsuess.com/tools/arandr/
 Build-Depends: debhelper (>= 7), python (>= 2.6.6-3~)
 Build-Depends-Indep: gettext, python-docutils (>=0.6)
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
 Vcs-Browser: http://gitorious.org/arandr/arandr/commits/debian
-Vcs-git: git://gitorious.org/arandr/arandr.git/
+Vcs-git: git://gitorious.org/arandr/arandr.git/ -b debian
 X-Python-Version: >= 2.5
 
 Package: arandr
diff -Nru arandr-0.1.6/debian/copyright arandr-0.1.7.1/debian/copyright
--- arandr-0.1.6/debian/copyright	2012-06-02 16:15:26.000000000 +0200
+++ arandr-0.1.7.1/debian/copyright	2015-01-17 14:15:27.000000000 +0100
@@ -4,7 +4,12 @@
 Source: http://christian.amsuess.com/tools/arandr/
 
 Files: *
-Copyright: 2008–2012, chrysn <chrysn@fsfe.org>
+Copyright: 2008–2013, chrysn <chrysn@fsfe.org>
+License: GPL-3+
+
+Files: screenlayout/xrandr.py
+Copyright: 2008–2013, chrysn <chrysn@fsfe.org>
+           2011, Себастьян Gli ţa Κατινα
 License: GPL-3+
 
 Files: data/po/da.po
@@ -98,6 +103,7 @@
 Files: data/po/lt.po
 Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
            2012, Algimantas Margevičius <margevicius.algimantas@gmail.com>
+           2012, Mantas Kriaučiūnas <mantas@akl.lt>
 License: GPL-3+
 
 Files: data/po/gl.po
@@ -105,7 +111,7 @@
            2012, Miguel Anxo Bouzada <mbouzada@gmail.com>
 License: GPL-3+
 
-Files: data/po/jp.po
+Files: data/po/ja.po
 Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
            2012, o-157
 License: GPL-3+
@@ -120,6 +126,26 @@
            2012, Semsudin Abdic <abdic88@gmail.com>
 License: GPL-3+
 
+Files: data/po/uk.po
+Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
+           2012, Rax Garfield
+License: GPL-3+
+
+Files: data/po/hu.po
+Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
+           2012, Tamás Nagy <kisagy@gmail.com>
+License: GPL-3+
+
+Files: data/po/el.po
+Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
+           2012, Dimitris Giouroukis
+License: GPL-3+
+
+Files: data/po/ko_KR.po
+Copyright: 2008–2010, chrysn <chrysn@fsfe.org>
+           2013, ParkJS <HeavensBus@gmail.com>
+License: GPL-3+
+
 License: GPL-3+
  The full text of the GPL is distributed as COPYING in arandr's source, and is
  distributed in /usr/share/common-licenses/GPL-3 on Debian systems.
diff -Nru arandr-0.1.6/debian/gbp.conf arandr-0.1.7.1/debian/gbp.conf
--- arandr-0.1.6/debian/gbp.conf	1970-01-01 01:00:00.000000000 +0100
+++ arandr-0.1.7.1/debian/gbp.conf	2015-01-17 14:17:47.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+debian-branch = deb7u1
+upstream-branch = release
+pristine-tar = true
diff -Nru arandr-0.1.6/NEWS arandr-0.1.7.1/NEWS
--- arandr-0.1.6/NEWS	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/NEWS	2013-03-04 18:22:25.000000000 +0100
@@ -1,3 +1,22 @@
+Version 0.1.7.1
+* Build even with no translations present
+* Fix AttributeError when modes with same name have different resolutions
+* Show the entire output submenu as disabled instead of the "Active" checkbox
+
+Version 0.1.7
+* Fix the 'primary' issue
+  - ignores the primary keyword
+  - makes ARandR compatible with xrandr 1.4.0
+* Merged parts of the cglita branch
+  - solves ValueError / "1080p" issue
+* New translations:
+  - Ukrainian (by Rax Garfield)
+  - Hungarian (by Tamás Nagy)
+  - Greek (by Dimitris Giouroukis)
+  - Korean (by ParkJS)
+* Updated translations:
+  - Lithuanian (by Mantas Kriaučiūnas)
+
 Version 0.1.6
 * New translations:
   - Breton (by Belvar)
diff -Nru arandr-0.1.6/README arandr-0.1.7.1/README
--- arandr-0.1.6/README	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/README	2013-03-04 18:22:25.000000000 +0100
@@ -42,9 +42,11 @@
 
     * Gentoo_::
 
-        ACCEPT_KEYWORDS="~x86" emerge arandr
+        emerge arandr
 
-      (or ``ACCEPT_KEYWORDS="~amd64" ...`` for 64-bit systems)
+    * Fedora_::
+
+        yum install arandr
 
 * From source:
 
@@ -52,9 +54,9 @@
 
         * the `latest release`_::
 
-            wget http://christian.amsuess.com/tools/arandr/files/arandr-0.1.6.tar.gz
-            tar xzf arandr-0.1.6.tar.gz
-            cd arandr-0.1.6
+            wget http://christian.amsuess.com/tools/arandr/files/arandr-0.1.7.1.tar.gz
+            tar xzf arandr-0.1.7.1.tar.gz
+            cd arandr-0.1.7.1
 
         * or get it directly from GIT (`hosted on gitorious`_)::
 
@@ -85,23 +87,36 @@
 --------------
 
  * Changes while running are not caught.
- * Depends on all modes to have a <width>x<height> name (see `debian bug #507521`_).
+ * Versions before 0.1.7 depended on all modes to have a <width>x<height> name (see `debian bug #507521`_); if ARandR does not start up, please install the latest version. (On different bugtrackers, this is called the ValueError / "1080p" / "1024x768i" problem).
+ * See TODO_ for planned features.
 
-   * cglita wrote a patch that solves the problem. Until a version is released that includes the changes, use his version if the above does not work for you::
 
-         git clone git://gitorious.org/arandr/arandr.git
-         cd arandr
-         git checkout cglita
-         ./arandr
+Similar projects
+----------------
 
- * See TODO_ for planned features.
+A number of other programs exist that cover similar functionality, often
+bundled with a particular desktop environment. Those I know of are, in
+alphabetical order:
+
+* Gnome's ``gnome-control-center display``, notable for its ``~/.config/monitors.xml`` `persistence <https://live.gnome.org/RandR#Storage_of_RANDR_configurations>`_
+* `grandr <ftp://ftp.freedesktop.org/pub/individual/app/>`_
+* `grandr-applet <http://dekorte.homeip.net/download/grandr-applet/>`_ (which seems not to be related to grandr)
+* KDE's RandR tool ``krandrtray``, notable for being the only listed program to be Qt based
+* LXDE's `LXRandR <http://wiki.lxde.org/en/LXRandR>`_, notable for storing configuration in ``~/.config/autostart/lxrandr-autostart``
+* `urandr <http://www.albertomilone.com/urandr.html>`_
+* `zarfy <http://sourceforge.net/projects/zarfy/>`_, notable for its nice use of a current screenshot
+* cglita wrote a patch that solved the ValueError / "1080p" problem. His patches went a little further and include more precise mode line selection; I keep it around, and you can try it like this::
+
+    git clone git://gitorious.org/arandr/arandr.git -b cglita
+    cd arandr
+    ./arandr
 
 
 
 Contributing
 ------------
 
-If you are fluent with languages not yet supported, you can add translations to ARandR using gettext_. An easy way to do this is `ARandR's transifex site`_ or on `its Launchpad translation site`_.
+If you are fluent with languages not yet supported, you can add translations to ARandR using gettext_. An easy way to do this is `ARandR's page on hosted Weblate`_. (Transifex and Launchpad translations were discontinued for lack of SCM integration and associated problems with attributing contributions).
 
 Please send bug reports, suggestions, patches and git pull requests to me_.
 
@@ -109,7 +124,7 @@
 About
 -----
 
-Copyright © chrysn_ <chrysn@fsfe.org> 2008–2012, published under GPLv3_ or any later version.
+Copyright © chrysn_ <chrysn@fsfe.org> 2008–2013, Себастьян Gli ţa Κατινα 2011, published under GPLv3_ or any later version.
 
 Inspired by the `dual head sketch`_ in the ThinkWiki_.
 
@@ -132,18 +147,23 @@
 * Slavko (Slovak)
 * Alireza Savand (Persian)
 * Belvar (Breton)
-* Algimantas Margevičius (Lithunian)
+* Algimantas Margevičius (Lithuanian)
 * Miguel Anxo Bouzada (Galician, Spanish)
 * o-157 (Japanese)
 * Ingemar Karlsson (Swedish)
 * Semsudin Abdic (Bosnian)
+* Rax Garfield (Ukrainian)
+* Tamás Nagy (Hungarian)
+* Mantas Kriaučiūnas (Lithuanian)
+* Dimitris Giouroukis (Greek)
+* ParkJS (Korean)
 * chrysn (German, English)
 
 
  .. _XRandR: http://www.x.org/wiki/Projects/XRandR
  .. _xsetwacom: http://linuxwacom.sourceforge.net/index.php/howto/xsetwacom
  .. _TODO: ./TODO
- .. _`latest release`: http://christian.amsuess.com/tools/arandr/files/arandr-0.1.6.tar.gz
+ .. _`latest release`: http://christian.amsuess.com/tools/arandr/files/arandr-0.1.7.1.tar.gz
  .. _archlinux: http://www.archlinux.org/packages/community/any/arandr/
  .. _chrysn: http://christian.amsuess.com
  .. _GPLv3: http://www.gnu.org/licenses/gpl-3.0.txt
@@ -153,12 +173,12 @@
  .. _Debian: http://packages.debian.org/arandr
  .. _Ubuntu: http://packages.ubuntu.com/arandr
  .. _gettext: http://www.gnu.org/software/gettext/
- .. _`ARandR's transifex site`: https://transifex.net/projects/p/arandr/
- .. _`its Launchpad translation site`: https://translations.launchpad.net/arandr
+ .. _`ARandR's page on hosted Weblate`: http://hosted.weblate.org/projects/arandr/translations/
  .. _me: mailto:chrysn@fsfe.org
  .. _python: http://www.python.org/
  .. _PyGTK: http://www.pygtk.org/
  .. _`slackbuild by PhantomX`: http://github.com/PhantomX/slackbuilds/tree/master/arandr/
  .. _Gentoo: http://packages.gentoo.org/package/x11-misc/arandr
+ .. _Fedora: https://admin.fedoraproject.org/pkgdb/applications/Arandr
  .. _docutils: http://docutils.sourceforge.net/
  .. _`debian bug #507521`: http://bugs.debian.org/507521
diff -Nru arandr-0.1.6/screenlayout/auxiliary.py arandr-0.1.7.1/screenlayout/auxiliary.py
--- arandr-0.1.6/screenlayout/auxiliary.py	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/screenlayout/auxiliary.py	2013-03-04 18:22:25.000000000 +0100
@@ -59,6 +59,29 @@
     def __str__(self):
         return "%dx%d"%self
 
+class NamedSize(object):
+    """Object that behaves like a size, but has an additional name attribute"""
+    def __init__(self, size, name):
+        self._size = size
+        self.name = name
+
+    width = property(lambda self:self[0])
+    height = property(lambda self:self[1])
+    def __str__(self):
+        if "%dx%d"%(self.width, self.height) in self.name:
+            return self.name
+        else:
+            return "%s (%dx%d)"%(self.name, self.width, self.height)
+
+    def __iter__(self):
+        return self._size.__iter__()
+
+    def __getitem__(self, i):
+        return self._size[i]
+
+    def __len__(self):
+        return 2
+
 class Position(tuple):
     """2-tuple of left and top that can be created from a '<left>x<top>' string"""
     def __new__(cls, arg):
diff -Nru arandr-0.1.6/screenlayout/meta.py arandr-0.1.7.1/screenlayout/meta.py
--- arandr-0.1.6/screenlayout/meta.py	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/screenlayout/meta.py	2013-03-04 18:22:25.000000000 +0100
@@ -19,13 +19,13 @@
 import gettext
 gettext.install('arandr')
 
-__version__ = '0.1.6'
+__version__ = '0.1.7.1'
 PROGRAMNAME = _(u'ARandR Screen Layout Editor')
 ## translators, please translate in the style of "Another XRandR GUI
 ## (ein weiteres GUI für XRandR)" so users get both the explanation of
 ## the acronym and a localized version.
 PROGRAMDESCRIPTION = _(u'Another XRandR GUI')
-COPYRIGHT = u'© chrysn 2008 – 2012'
+COPYRIGHT = u'© chrysn 2008 – 2013, Себастьян Gli ţa Κατινα 2011'
 
 TRANSLATORS = [
         'chrysn <chrysn@fsfe.org>',
@@ -53,4 +53,9 @@
         'o-157',
         'Ingemar Karlsson <ingemar@ingk.se>',
         'Semsudin Abdic <abdic88@gmail.com>',
+        'Rax Garfield',
+        'Tamás Nagy <kisagy@gmail.com>',
+        'Mantas Kriaučiūnas <mantas@akl.lt>',
+        'Dimitris Giouroukis',
+        'ParkJS <HeavensBus@gmail.com>',
         ]
diff -Nru arandr-0.1.6/screenlayout/widget.py arandr-0.1.7.1/screenlayout/widget.py
--- arandr-0.1.6/screenlayout/widget.py	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/screenlayout/widget.py	2013-03-04 18:22:25.000000000 +0100
@@ -196,7 +196,7 @@
             o = cfg.outputs[on]
             if not o.active: continue
 
-            rect = (o.tentative_position if hasattr(o, 'tentative_position') else o.position) + o.size
+            rect = (o.tentative_position if hasattr(o, 'tentative_position') else o.position) + tuple(o.size)
             center = rect[0]+rect[2]/2, rect[1]+rect[3]/2
 
             # paint rectangle
@@ -287,9 +287,15 @@
     def contextmenu(self):
         m = gtk.Menu()
         for on in self._xrandr.outputs:
+            oc = self._xrandr.configuration.outputs[on]
+            os = self._xrandr.state.outputs[on]
+
             i = gtk.MenuItem(on)
             i.props.submenu = self._contextmenu(on)
             m.add(i)
+
+            if not oc.active and not os.connected:
+                i.props.sensitive = False
         m.show_all()
         return m
 
@@ -300,8 +306,6 @@
 
         enabled = gtk.CheckMenuItem(_("Active"))
         enabled.props.active = oc.active
-        if not oc.active and not os.connected:
-            enabled.props.sensitive = False
         enabled.connect('activate', lambda menuitem: self.set_active(on, menuitem.props.active))
 
         m.add(enabled)
@@ -309,9 +313,9 @@
         if oc.active:
             res_m = gtk.Menu()
             for r in os.modes:
-                i = gtk.CheckMenuItem("%sx%s"%r)
+                i = gtk.CheckMenuItem(str(r))
                 i.props.draw_as_radio = True
-                i.props.active = (oc.mode == r)
+                i.props.active = (oc.mode.name == r.name)
                 def _res_set(menuitem, on, r):
                     try:
                         self.set_resolution(on, r)
diff -Nru arandr-0.1.6/screenlayout/xrandr.py arandr-0.1.7.1/screenlayout/xrandr.py
--- arandr-0.1.6/screenlayout/xrandr.py	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/screenlayout/xrandr.py	2013-03-04 18:22:25.000000000 +0100
@@ -20,7 +20,7 @@
 import subprocess
 import warnings
 
-from .auxiliary import BetterList, Size, Position, Geometry, FileLoadError, FileSyntaxError, InadequateConfiguration, Rotation, ROTATIONS, NORMAL
+from .auxiliary import BetterList, Size, Position, Geometry, FileLoadError, FileSyntaxError, InadequateConfiguration, Rotation, ROTATIONS, NORMAL, NamedSize
 
 import gettext
 gettext.install('arandr')
@@ -38,7 +38,7 @@
             self.environ['DISPLAY'] = display
 
         version_output = self._output("--version")
-        if not ("1.2" in version_output or "1.3" in version_output) and not force_version:
+        if not ("1.2" in version_output or "1.3" in version_output or "1.4" in version_output) and not force_version:
             raise Exception("XRandR 1.2/1.3 required.")
 
     def _get_outputs(self):
@@ -91,6 +91,7 @@
 
         for on,oa in options.items():
             o = self.configuration.outputs[on]
+            os = self.state.outputs[on]
             if oa == ['--off']:
                 o.active = False
             else:
@@ -99,7 +100,12 @@
                 parts = [(oa[2*i],oa[2*i+1]) for i in range(len(oa)//2)]
                 for p in parts:
                     if p[0] == '--mode':
-                        o.mode = Size(p[1])
+                        for namedmode in os.modes:
+                            if namedmode.name == p[1]:
+                                o.mode = namedmode
+                                break
+                        else:
+                            raise FileLoadError("Not a known mode: %s"%p[1])
                     elif p[0] == '--pos':
                         o.position = Position(p[1])
                     elif p[0] == '--rotate':
@@ -110,7 +116,7 @@
                         raise FileSyntaxError()
                 o.active = True
 
-    def load_from_x(self): # FIXME -- use --verbose or, better, a library
+    def load_from_x(self): # FIXME -- use a library
         self.configuration = self.Configuration()
         self.state = self.State()
 
@@ -129,16 +135,22 @@
 
             o.connected = (hsplit[1] in ('connected', 'unknown-connection'))
 
+            if 'primary' in hsplit:
+                hsplit.remove('primary')
+
             if not hsplit[2].startswith("("):
                 active = True
 
                 geometry = Geometry(hsplit[2])
 
-                if hsplit[3] in ROTATIONS: rotation = Rotation(hsplit[3])
+                modeid = hsplit[3].strip("()")
+
+                if hsplit[4] in ROTATIONS: rotation = Rotation(hsplit[4])
                 else: rotation = NORMAL
             else:
                 active = False
                 geometry = None
+                modeid = None
                 rotation = None
 
             o.rotations = set()
@@ -146,22 +158,48 @@
                 if r in headline:
                     o.rotations.add(r)
 
-            for d in details:
-                o.modes.append(Size(int(a) for a in d.strip().split(" ")[0].split("x")))
+            currentname = None
+            for d, w, h in details:
+                n, m = d[0:2]
+                k = m.strip("()")
+                try:
+                    r = Size([int(w), int(h)])
+                except ValueError:
+                    raise Exception("Output %s parse error: modename %s modeid %s."%(o.name, n,k))
+                if "*current" in d:
+                    currentname = n
+                for x in [ "+preferred", "*current" ]:
+                    if x in d: d.remove(x)
+
+                for old_mode in o.modes:
+                    if old_mode.name == n:
+                        if tuple(old_mode) != tuple(r):
+                            warnings.warn("Supressing duplicate mode %s even though it has different resolutions (%s, %s)."%(n, r, old_mode))
+                        break
+                else:
+                    # the mode is really new
+                    o.modes.append(NamedSize(r, name=n))
 
             self.state.outputs[o.name] = o
-            self.configuration.outputs[o.name] = self.configuration.OutputConfiguration(active, geometry, rotation)
+            self.configuration.outputs[o.name] = self.configuration.OutputConfiguration(active, geometry, rotation, currentname)
 
     def _load_raw_lines(self):
-        output = self._output("-q")
+        output = self._output("--verbose")
         items = []
         screenline = None
         for l in output.split('\n'):
             if l.startswith("Screen "):
                 assert screenline is None
                 screenline = l
-            elif l.startswith("   "): # mode
-                items[-1][1].append(l)
+            elif l.startswith('\t'):
+                continue
+            elif l.startswith(2*' '): # [mode, width, height]
+                l = l.strip()
+                if reduce(bool.__or__, [l.startswith(x+':') for x in "hv"]):
+                    l = l[-len(l):l.index(" start")-len(l)]
+                    items[-1][1][-1].append(l[l.rindex(' '):])
+                else: # mode
+                    items[-1][1].append([l.split()])
             else:
                 items.append([l, []])
         return screenline, items
@@ -248,7 +286,7 @@
                 return '<%s %r (%d modes)>'%(type(self).__name__, self.name, len(self.modes))
 
     class Configuration(object):
-        """Represents everything that can be set by xrand (and is therefore subject to saving and loading from files)"""
+        """Represents everything that can be set by xrandr (and is therefore subject to saving and loading from files)"""
         def __init__(self):
             self.outputs = {}
 
@@ -264,7 +302,7 @@
                     args.append("--off")
                 else:
                     args.append("--mode")
-                    args.append(str(o.mode))
+                    args.append(str(o.mode.name))
                     args.append("--pos")
                     args.append(str(o.position))
                     args.append("--rotate")
@@ -272,13 +310,13 @@
             return args
 
         class OutputConfiguration(object):
-            def __init__(self, active, geometry, rotation):
+            def __init__(self, active, geometry, rotation, modename):
                 self.active = active
                 if active:
                     self.position = geometry.position
                     self.rotation = rotation
                     if rotation.is_odd:
-                        self.mode = Size(reversed(geometry.size))
+                        self.mode = NamedSize(Size(reversed(geometry.size)), name=modename)
                     else:
-                        self.mode = geometry.size
-            size = property(lambda self: Size(reversed(self.mode)) if self.rotation.is_odd else self.mode)
+                        self.mode = NamedSize(geometry.size, name=modename)
+            size = property(lambda self: NamedSize(Size(reversed(self.mode)), name=self.mode.name) if self.rotation.is_odd else self.mode)
diff -Nru arandr-0.1.6/setup.py arandr-0.1.7.1/setup.py
--- arandr-0.1.6/setup.py	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/setup.py	2013-03-04 18:22:25.000000000 +0100
@@ -41,7 +41,7 @@
 POT_FILE = os.path.join(PO_DIR, 'messages.pot')
 
 PACKAGENAME = "arandr"
-PACKAGEVERSION = "0.1.6"
+PACKAGEVERSION = "0.1.7.1"
 AUTHOR = "chrysn"
 AUTHOR_MAIL = "chrysn@fsfe.org"
 URL = "http://christian.amsuess.com/tools/arandr/";
@@ -79,6 +79,7 @@
     description = 'Compile .po files into .mo files'
 
     def run(self):
+        self.mkpath(os.path.join("build", "locale")) # create directory even if there are no files, otherwise install would complain
         for po in glob.glob(os.path.join(PO_DIR,'*.po')):
             lang = os.path.basename(po[:-3])
             mo = os.path.join('build', 'locale', lang, 'LC_MESSAGES', 'arandr.mo')
diff -Nru arandr-0.1.6/TODO arandr-0.1.7.1/TODO
--- arandr-0.1.6/TODO	2012-06-02 15:55:36.000000000 +0200
+++ arandr-0.1.7.1/TODO	2013-03-04 18:22:25.000000000 +0100
@@ -7,6 +7,7 @@
 * receive notifications on changes (XRRScreenChangeNotify)
 
     * useful resources: <http://www.mail-archive.com/sawfish-list@gnome.org/msg03630.html> (a patch to sawfish for xrandr event support), Xrandr.c (that defines XRRSelectInput), SelInput.c (compare XSelectInput /XRRSelectInput), ./eventdemo.py
+    * use x-on-resize (http://keithp.com/blogs/x-on-resize/)
 
 * don't reset displays moved over edges; instead, move as far as possible
 * allow setting dpi
@@ -26,6 +27,9 @@
        5. arandr knows what he sees and can position displays and offer to apply a matrix
 
 * be more intelligent about future xrandr versions (cf debian #523903)
+
+  * parse versions instead of just looking for a string -- '1.3' in output_string won't help detecting an 1.4 client that spews new keywords
+
 * read --props, parse edid (using parse-edid from read-edid; dispcalGUI has dispcalGUI/edid.py with a parse_edid that just works), maybe even offer setting properties
 
     * sigrok has a pure python implementation at http://sigrok.git.sourceforge.net/git/gitweb.cgi?p=sigrok/sigrok;a=blob;f=libsigrokdecode/decoders/edid/edid.py
@@ -75,7 +79,6 @@
 
 * integrate xvattr for mirror mode (cf http://wiki.debian.org/XStrikeForce/HowToRandR12 section "XV Overlay on only one display") -- but is this still alive at all?
 * integrate --randr-display in gui configuration and add more options than "DISPLAY=${} xrandr" (for example "ssh some-server xrandr", maybe even with zeroconf detection of ssh hosts, but i digress)
-* rewrite parser to --verbose
 * use distutils translation build system instead of custom one (compare hotot package)
-* debian packaging: use dh_python2 (/ dh_python3) instead of python-support
 * optional "timeout" for applying setting ("does this work? click ok, otherwise it will revert in...")
+* add an option for setting sth at startup (compare https://bugs.launchpad.net/ubuntu/+source/arandr/+bug/1015933)

Attachment: signature.asc
Description: Digital signature


Reply to: