diff options
32 files changed, 918 insertions, 430 deletions
@@ -48,12 +48,14 @@ Garreciq Gaurav Kumar Gayathri Das Geoff Paul +GiannosOB Giorgio Berardi Guntitat Sawadwuthikul Gvlfm78 Habib Rohman Hemanta Sharma Himanshu Awasthi +Hugo Carvalho Iago Emanuel Iain Lane Ihaveapiece @@ -114,6 +116,7 @@ Mohsen Sorny Mutaz Tayyeb AbuSaad Mwileczka Nader Jafari +Naikhon Nathan Nicola Lombardi Nirmal Manoj C @@ -127,6 +130,7 @@ Pierluigi Ghinello Pierre Soubourou Prachi Joshi Pratchaya Chatuphian +Putta Anantha Lakshmi Quentin PAGÈS Rafael Henrique Mendes De Oliv Remus-Gabriel Chelu @@ -1,6 +1,140 @@ +2025-05-26 Mike Gabriel + + * Release 0.99.9.4 (HEAD -> master, tag: 0.99.9.4) + * Merge branch 'tari01-pr/menubar-shadow' (42d74db) + +2025-05-23 Robert Tari + + * Make menubar shadow configurable (8cef7f0) + +2025-05-23 Mike Gabriel + + * Release 0.99.9.3 (b9170bd) (tag: 0.99.9.3) + * data/org.ArcticaProject.arctica-greeter.gschema.xml: Set + menubar-alpha default to 0.3. (Originally 0.2, changed to + 0.5 as part of 2bc439d3, now back to a compromise). + (fba0c2d) + +2025-05-22 Mike Gabriel + + * Merge branch 'tari01-pr/menubar-alpha' (608890b) + +2025-05-22 Robert Tari + + * Apply custom menubar transparency even if theme background is used + (9991f3e) + +2025-05-22 Mike Gabriel + + * Merge branch 'tari01-pr/menubar-osd-bg' (7daa7f8) + +2025-05-21 Robert Tari + + * Use the theme menubar background colour if no custom colour is + specified (2bc439d) + +2025-05-20 naikhon + + * Translated using Weblate (Burmese) (eb2e110) + +2025-05-15 Mike Gabriel + + * Release 0.99.9.2 (df04358) (tag: 0.99.9.2) + * Merge branch 'tari01-pr/add-background-position' (800eaa1) + +2025-05-12 Robert Tari + + * Add background image position (5086318) + +2025-05-08 Putta Anantha Lakshmi + + * Translated using Weblate (Telugu) (d1d8d80) + +2025-05-05 Mike Gabriel + + * Release 0.99.9.1 (09061b1) (tag: 0.99.9.1) + * Merge branch 'tari01-pr/group-filters' (17054d5) + +2025-05-05 Robert Tari + + * src/Makefile.am: Remove arctica_greeter_vala.stamp - it keeps + sending config.h to valac (936f8fa) + * src/animate-timer.vala: EasingFunc cannot be a GLib.Object property + - turn it into a public variable (562b318) + * Allow filtering out users from hidden groups (d32c62a) + +2025-05-02 Hugo Carvalho + + * Translated using Weblate (Portuguese) (bef6d1f) + +2025-04-30 Mike Gabriel + + * Release 0.99.9.0 (0b9b963) (tag: 0.99.9.0) + * src/menubar.vala: Also apply menubar-bgcolor to menubar's shadow + style. (01b31d5) + * src/menubar.vala: Set LC_NUMERIC to C.UTF-8 more globally. + (17ab293) + * Merge branch 'tari01-pr/error-below-entry' (e6d5a9c) + +2025-04-28 Robert Tari + + * Fix and future-proof the menubar (e221a64) + * Allow error label to be displayed below the login entry (652c4d7) + +2025-04-28 Mike Gabriel + + * Release 0.99.8.11 (c6e0758) (tag: 0.99.8.11) + * Merge branch 'tari01-pr/message-wrap' (ca471e8) + +2025-04-27 Robert Tari + + * Rewrite Gtk.Alignment (0e7e568) + * src/prompt-box.vala: Add manual text wrapping (ead00fb) + +2025-04-24 தமிழ்நேரம் + + * Translated using Weblate (Tamil) (bb6492c) + +2025-04-24 GiannosOB + + * Translated using Weblate (Greek) (ef40d14) + +2025-04-24 Mike Gabriel + + * Release 0.99.8.10 (43a3900) (tag: 0.99.8.10) + +2025-04-22 Mike Gabriel + + * Merge branch 'tari01-pr/prompt-box-tweaks' (2d6ade9) + +2025-04-11 Robert Tari + + * src/settings.vala: Drop unused safe_get_boolean (66148f4) + * Fix deprecated colour overrides (f270371) + * Add logo positioning tweaks (4d10346) + +2025-04-10 Robert Tari + + * Add prompt box tweaks (33ec57f) + +2025-04-10 Mike Gabriel + + * Merge branch 'tari01-pr/size-position-fix' (65ccc9a) + +2025-04-08 Robert Tari + + * src/shutdown-dialog: Fix possible null warning (9153eef) + * src/arctica-greeter.vala: Drop unused wm_message_pid (88c789a) + * src/main-window.vala: Drop deprecated Gdk.Screen.get_* functions + (c2bc2ca) + * src/main-window.vala: Fix content_box.margin_right and margin_left + (a0e8568) + * src/main-window.vala: Fix DBusConnection.call (b5c6f85) + * Fix size and position of elements (e0acacd) + 2025-04-08 Mike Gabriel - * Release 0.99.8.9 (HEAD -> master, tag: 0.99.8.9) + * Release 0.99.8.9 (81c3c04) (tag: 0.99.8.9) * Merge branch 'tari01-pr/greeter-accelerators' (908972c) 2025-04-07 Quentin PAGÈS @@ -1,3 +1,58 @@ +Overview of changes in arctica-greeter 0.99.9.4 + + - Make menubar shadow configurable. + +Overview of changes in arctica-greeter 0.99.9.3 + + - data/org.ArcticaProject.arctica-greeter.gschema.xml: Set + menubar-alpha default to 0.3. (Originally 0.2, changed to 0.5 as + part of 2bc439d3, now back to a compromise). + - Apply custom menubar transparency even if theme background is used. + - Use the theme menubar background colour if no custom colour is + specified. + - Translation updates (thanks to all contributors on + hosted.weblate.org). + +Overview of changes in arctica-greeter 0.99.9.2 + + - Add background image position. + - Translation updates (thanks to all contributors on + hosted.weblate.org). + +Overview of changes in arctica-greeter 0.99.9.1 + + - Allow filtering out users from hidden groups. + - Translation updates (thanks to all contributors on + hosted.weblate.org). + +Overview of changes in arctica-greeter 0.99.9.0 + + - Allow error label to be displayed below the login entry. + - Fix and future-proof the menubar. + - src/menubar.vala: Also apply menubar-bgcolor to menubar's shadow + style. + - src/menubar.vala: Set LC_NUMERIC to C.UTF-8 more globally. + +Overview of changes in arctica-greeter 0.99.8.11 + + - Rewrite Gtk.Alignment. + - src/prompt-box.vala: Add manual text wrapping. + - Translation updates (thanks to all contributors on + hosted.weblate.org). + +Overview of changes in arctica-greeter 0.99.8.10 + + - src/settings.vala: Drop unused safe_get_boolean. + - Fix deprecated colour overrides. + - Add logo positioning tweaks. + - Add prompt box tweaks. + - src/shutdown-dialog: Fix possible null warning. + - src/arctica-greeter.vala: Drop unused wm_message_pid. + - src/main-window.vala: Drop deprecated Gdk.Screen.get_* functions. + - src/main-window.vala: Fix content_box.margin_right and margin_left. + - src/main-window.vala: Fix DBusConnection.call. + - Fix size and position of elements. + Overview of changes in arctica-greeter 0.99.8.9 - src/main-window.vala: Toggle a11y states when accelerators are diff --git a/configure.ac b/configure.ac index 154113b..4e0a491 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(arctica-greeter, 0.99.8.9) +AC_INIT(arctica-greeter, 0.99.9.4) AC_CONFIG_MACRO_DIR(m4) AM_INIT_AUTOMAKE(subdir-objects) AM_PROG_CC_C_O diff --git a/data/arctica-greeter-check-hidpi.1 b/data/arctica-greeter-check-hidpi.1 index 4745719..e3b0226 100644 --- a/data/arctica-greeter-check-hidpi.1 +++ b/data/arctica-greeter-check-hidpi.1 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 1 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 1 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter-check-hidpi \- Check for HiDPI display in Arctica Greeter .SH SYNOPSIS diff --git a/data/arctica-greeter-enable-tap-to-click.1 b/data/arctica-greeter-enable-tap-to-click.1 index d9b5e21..c99c3ed 100644 --- a/data/arctica-greeter-enable-tap-to-click.1 +++ b/data/arctica-greeter-enable-tap-to-click.1 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 1 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 1 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter-enable-tap-to-click \- Enable tap-to-click in Arctica Greeter .SH SYNOPSIS diff --git a/data/arctica-greeter-guest-account-script.8 b/data/arctica-greeter-guest-account-script.8 index ca06500..6c2a0ac 100644 --- a/data/arctica-greeter-guest-account-script.8 +++ b/data/arctica-greeter-guest-account-script.8 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 8 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 8 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter-guest-account-script \- Create temp user for an Arctica Greeter's Guest Session .SH SYNOPSIS diff --git a/data/arctica-greeter-magnifier.1 b/data/arctica-greeter-magnifier.1 index 7f9beea..6c015ed 100644 --- a/data/arctica-greeter-magnifier.1 +++ b/data/arctica-greeter-magnifier.1 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 1 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 1 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter-magnifier \- Magnifying glass for Arctica Greeter .SH SYNOPSIS diff --git a/data/arctica-greeter-set-keyboard-layout.1 b/data/arctica-greeter-set-keyboard-layout.1 index c8a4834..066fb1f 100644 --- a/data/arctica-greeter-set-keyboard-layout.1 +++ b/data/arctica-greeter-set-keyboard-layout.1 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 1 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 1 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter-set-keyboard-layout \- Tool to set the keyboard layout in Arctica Greeter .SH SYNOPSIS diff --git a/data/arctica-greeter.1 b/data/arctica-greeter.1 index 2819138..a7014ac 100644 --- a/data/arctica-greeter.1 +++ b/data/arctica-greeter.1 @@ -1,4 +1,4 @@ -.TH ARCTICA-GREETER 1 "Apr 2025" "Version 0.99.8.9" "LightDM Greeter" +.TH ARCTICA-GREETER 1 "May 2025" "Version 0.99.9.4" "LightDM Greeter" .SH NAME arctica-greeter \- LightDM greeter for the modern desktop .SH SYNOPSIS diff --git a/data/org.ArcticaProject.arctica-greeter.gschema.xml b/data/org.ArcticaProject.arctica-greeter.gschema.xml index 68a2522..f6448c1 100644 --- a/data/org.ArcticaProject.arctica-greeter.gschema.xml +++ b/data/org.ArcticaProject.arctica-greeter.gschema.xml @@ -193,6 +193,10 @@ <default>[]</default> <summary>List of usernames that are hidden from the userlist until a special key combination is hit.</summary> </key> + <key name="hidden-groups" type="as"> + <default>[]</default> + <summary>List of user groups that are hidden from the userlist until a special key combination is hit.</summary> + </key> <key name="user-filter" type="as"> <default>[]</default> <summary>List of usernames that are to be shown in the userlist only.</summary> @@ -227,8 +231,8 @@ <summary>Scaling factor for fonts that can be used to adjust the greeter's font sizes.</summary> </key> <key name="menubar-alpha" type="d"> - <default>0.5</default> - <summary>Alpha value for menubar, multiplied with the theme-provided transparency value. Not used in high contrast mode.</summary> + <default>0.3</default> + <summary>Alpha value for menubar. Not used in high contrast mode.</summary> </key> <key name="remote-service-configure-uri" type="s"> <default>''</default> @@ -295,5 +299,72 @@ <default>'left'</default> <summary>Alignment of the main content</summary> </key> + <key name="dash-box-bgcolor" type="s"> + <default>'#1A1A1A'</default> + <summary>The background color of the dash box in #RRGGBB format.</summary> + </key> + <key name="dash-box-opacity" type="d"> + <range min="0.1" max="1.0"/> + <default>0.4</default> + <summary>The opacity of the dash box.</summary> + </key> + <key name="prompt-box-color-normal" type="s"> + <default>'#ffffff'</default> + <summary>The normal text color of the prompt box in #RRGGBB format.</summary> + </key> + <key name="prompt-box-color-error" type="s"> + <default>'#820900'</default> + <summary>The error text color of the prompt box in #RRGGBB format.</summary> + </key> + <key name="prompt-box-error-bg-opacity" type="d"> + <range min="0.0" max="1.0"/> + <default>1.0</default> + <summary>The background opacity of the error message in the prompt box.</summary> + </key> + <key name="logo-position" type="s"> + <choices> + <choice value='top-left'/> + <choice value='top-right'/> + <choice value='bottom-left'/> + <choice value='bottom-right'/> + </choices> + <default>'bottom-left'</default> + <summary>The position of the logo.</summary> + </key> + <key name="logo-offset-horizontal" type="i"> + <default>2</default> + <summary>The horizontal offset of the logo from the edge of the screen in grid units.</summary> + </key> + <key name="logo-offset-vertical" type="i"> + <default>1</default> + <summary>The vertical offset of the logo from the edge of the screen in grid units.</summary> + </key> + <key name="error-below-entry" type="b"> + <default>false</default> + <summary>Whether to display the error label below the login entry.</summary> + </key> + <key name="menubar-bgcolor" type="s"> + <default>''</default> + <summary>The background color of the menubar in #RRGGBB format. An empty string will attempt to use the OSD background of the theme.</summary> + </key> + <key name="background-position" type="s"> + <choices> + <choice value='center'/> + <choice value='top-left'/> + <choice value='top-right'/> + <choice value='bottom-left'/> + <choice value='bottom-right'/> + </choices> + <default>'center'</default> + <summary>The position of the background image.</summary> + </key> + <key name="menubar-shadow-color" type="s"> + <default>''</default> + <summary>The color of the menubar's shadow in #RRGGBB format. An empty string will attempt to use the OSD background of the theme.</summary> + </key> + <key name="menubar-shadow-alpha" type="d"> + <default>0.3</default> + <summary>Opacity of the menubar's shadow.</summary> + </key> </schema> </schemalist> diff --git a/debian/changelog b/debian/changelog index 607e819..f312a9e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,52 @@ +arctica-greeter (0.99.9.4) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Mon, 26 May 2025 12:14:29 +0200 + +arctica-greeter (0.99.9.3) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Fri, 23 May 2025 10:49:15 +0200 + +arctica-greeter (0.99.9.2) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Thu, 15 May 2025 10:20:49 +0200 + +arctica-greeter (0.99.9.1) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Mon, 05 May 2025 09:36:47 +0200 + +arctica-greeter (0.99.9.0) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Wed, 30 Apr 2025 15:45:50 +0200 + +arctica-greeter (0.99.8.11) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Mon, 28 Apr 2025 09:41:20 +0200 + +arctica-greeter (0.99.8.10) unstable; urgency=medium + + * Upstream-provided Debian package for arctica-greeter. See upstream + ChangeLog for recent changes. + + -- UBports developers <developers@ubports.com> Thu, 24 Apr 2025 09:57:09 +0200 + arctica-greeter (0.99.8.9) unstable; urgency=medium * Upstream-provided Debian package for arctica-greeter. See upstream @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:13+0200\n" -"PO-Revision-Date: 2021-02-09 16:50+0000\n" -"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n" +"PO-Revision-Date: 2025-04-24 14:06+0000\n" +"Last-Translator: GiannosOB <giannos2105@gmail.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/arctica-framework/" "greeter/el/>\n" "Language: el\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 5.11.1-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 @@ -27,7 +27,7 @@ msgstr "Εισάγετε κωδικό για %s" #: ../src/greeter-list.vala:308 msgid "Enter your username" -msgstr "" +msgstr "Εισάγετε το όνομα χρήστη σας" #: ../src/greeter-list.vala:837 ../src/user-list.vala:761 msgid "Password:" @@ -38,9 +38,8 @@ msgid "Username:" msgstr "Όνομα χρήστη:" #: ../src/greeter-list.vala:906 -#, fuzzy msgid "Invalid username or password, please try again" -msgstr "Λανθασμένος κωδικός, παρακαλώ δοκιμάστε ξανά" +msgstr "Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης, δοκιμάστε ξανά" #: ../src/greeter-list.vala:917 msgid "Failed to authenticate" @@ -105,14 +104,17 @@ msgstr "Επανεκκίνηση" #. Fun begins here, actually trigger option. #: ../src/shutdown-dialog.vala:297 msgid "Executing selected action now." -msgstr "" +msgstr "Εκτέλεση της επιλεγμένης ενέργειας τώρα." #: ../src/shutdown-dialog.vala:331 #, c-format msgid "Waiting one more second before executing selected action …" msgid_plural "Waiting %u seconds before executing selected action …" msgstr[0] "" +"Αναμονή ενός ακόμη δευτερολέπτου πριν από την εκτέλεση της επιλεγμένης " +"ενέργειας …" msgstr[1] "" +"Αναμονή %u δευτερολέπτων πριν από την εκτέλεση της επιλεγμένης ενέργειας …" #. Translators: %s is a session name like KDE or Ubuntu #: ../src/toggle-box.vala:205 @@ -134,6 +136,8 @@ msgstr "Εκτέλεση σε λειτουργία δοκιμής" #: ../src/arctica-greeter.vala:1000 msgid "Run in test mode with a11y highcontrast theme enabled" msgstr "" +"Εκτέλεση σε δοκιμαστική λειτουργία με ενεργοποιημένο το θέμα υψηλής " +"αντίθεσης a11y" #. Arguments and description for --help text #: ../src/arctica-greeter.vala:1006 @@ -184,8 +188,8 @@ msgid "" "You need a Remote Logon account to use this service. Would you like to set " "up an account now?" msgstr "" -"Χρειάζεστε ένα λογαριασμό Απομακρυσμένης σύνδεσης για να χρησιμοποιήσετε " -"αυτή την υπηρεσία. Θα θέλατε να δημιουργήσετε ένα λογαριασμό τώρα;" +"Χρειάζεστε έναν λογαριασμό απομακρυσμένης σύνδεσης για να χρησιμοποιήσετε " +"αυτή την υπηρεσία. Θα θέλατε να δημιουργήσετε έναν λογαριασμό τώρα;" #: ../src/user-list.vala:613 msgid "OK" @@ -273,8 +277,8 @@ msgid "" "Another alternative is to save files in the\n" "/var/guest-data folder." msgstr "" -"Μία εναλλακτική λύση είναι να αποθηκεύσετε τα αρχεία στον φάκελο /var/guest-" -"data." +"Μια άλλη εναλλακτική λύση είναι να αποθηκεύετε αρχεία στο\n" +"/var/guest-data." #: ../data/arctica-greeter.desktop.in.h:1 msgid "Arctica Greeter" @@ -284,260 +288,315 @@ msgstr "Arctica Greeter" msgid "" "Background image file to use, either an image path or a color (e.g. #772953)." msgstr "" +"Αρχείο εικόνας φόντου που θέλετε να χρησιμοποιήσετε, είτε μια διαδρομή " +"εικόνας είτε ένα χρώμα (π.χ. #772953)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:2 msgid "Background color (e.g. #772953), set before wallpaper is seen." msgstr "" +"Χρώμα φόντου (π.χ. #772953), που ορίζεται πριν από την εμφάνιση της " +"ταπετσαρίας." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:3 msgid "Background color (e.g. #000000 or #FFFFFF) for high contrast mode." -msgstr "" +msgstr "Χρώμα φόντου (π.χ. #000000 ή #FFFFFF) για λειτουργία υψηλής αντίθεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:4 msgid "" "Font foreground color (e.g. #A0A0A0) for non-active/-hovered and non-" "selected session names in the session list." msgstr "" +"Χρώμα προσκηνίου γραμματοσειράς (π.χ. #A0A0A0) για τα ονόματα μη ενεργών/" +"υπερυψωμένων και μη επιλεγμένων συνόδων στη λίστα συνόδων." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:5 msgid "" "Font foreground color (e.g. #A0A0A0) for the active/hovered-above session " "name in the session list." msgstr "" +"Χρώμα προσκηνίου γραμματοσειράς (π.χ. #A0A0A0) για το όνομα της ενεργής/" +"υπέρτατης συνεδρίας στη λίστα συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:6 msgid "" "Font foreground color (e.g. #A0A0A0) for the selected session name in the " "session list." msgstr "" +"Χρώμα προσκηνίου γραμματοσειράς (π.χ. #A0A0A0) για το επιλεγμένο όνομα " +"συνεδρίας στη λίστα συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:7 msgid "" "Background color (e.g. #391C31) for non-active/-hovered and non-selected " "session names in the session list." msgstr "" +"Χρώμα φόντου (π.χ. #391C31) για τα ονόματα μη ενεργών/υπερυψωμένων και μη " +"επιλεγμένων συνόδων στη λίστα συνόδων." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:8 msgid "" "Background color (e.g. #391C31) for the active/hovered-above session name in " "the session list." msgstr "" +"Χρώμα φόντου (π.χ. #391C31) για το όνομα της ενεργής/υπέρτατης συνεδρίας στη " +"λίστα συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:9 msgid "" "Background color (e.g. #391C31) for the selected session name in the session " "list." msgstr "" +"Χρώμα φόντου (π.χ. #391C31) για το επιλεγμένο όνομα συνεδρίας στη λίστα " +"συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:10 msgid "" "Border color (e.g. #391C31) for non-active/-hovered and non-selected session " "names in the session list." msgstr "" +"Χρώμα περιθωρίου (π.χ. #391C31) για τα ονόματα μη ενεργών/υπερυψωμένων και " +"μη επιλεγμένων συνόδων στη λίστα συνόδων." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:11 msgid "" "Border color (e.g. #391C31) for the active/hovered-above session name in the " "session list." msgstr "" +"Χρώμα περιθωρίου (π.χ. #391C31) για το ενεργό/υπέρτατο όνομα συνεδρίας στη " +"λίστα συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:12 msgid "" "Border color (e.g. #391C31) for the selected session name in the session " "list." msgstr "" +"Χρώμα περιθωρίου (π.χ. #391C31) για το επιλεγμένο όνομα συνεδρίας στη λίστα " +"συνεδριών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:13 msgid "" "Background color (e.g. #391C31) of flat buttons (e.g. the session chooser " "icon)." msgstr "" +"Χρώμα φόντου (π.χ. #391C31) των επίπεδων κουμπιών (π.χ. το εικονίδιο " +"επιλογής συνεδρίας)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:14 msgid "" "Border color (e.g. #391C31) of flat buttons (e.g. the session chooser icon)." msgstr "" +"Χρώμα περιγράμματος (π.χ. #391C31) των επίπεδων κουμπιών (π.χ. το εικονίδιο " +"επιλογής συνεδρίας)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:15 msgid "Determines how the background image is rendered." -msgstr "" +msgstr "Καθορίζει τον τρόπο απόδοσης της εικόνας φόντου." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:16 msgid "Whether to draw user backgrounds." -msgstr "" +msgstr "Αν θα σχεδιάζονται φόντα χρηστών." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:17 msgid "Whether to draw an overlay grid." -msgstr "" +msgstr "Εάν θέλετε να σχεδιάσετε ένα πλέγμα επικάλυψης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:18 msgid "Whether to show the hostname in the menubar." -msgstr "" +msgstr "Εάν θα εμφανίζεται το όνομα κεντρικού υπολογιστή στη γραμμή μενού." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:19 msgid "" "Whether to show 'Username:' and 'Password:' labels (etc.) in the login box." msgstr "" +"Αν θα εμφανίζονται οι ετικέτες 'Όνομα χρήστη:' και 'Κωδικός πρόσβασης:' " +"(κ.λπ.) στο πλαίσιο σύνδεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:20 msgid "Logo file to use." -msgstr "" +msgstr "Αρχείο λογότυπου προς χρήση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:21 msgid "Alpha value for blending the logo onto the background." -msgstr "" +msgstr "Τιμή άλφα για την ανάμειξη του λογότυπου στο φόντο." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:22 msgid "GTK+ theme to use." -msgstr "" +msgstr "Θέμα GTK+ για χρήση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:23 msgid "GTK+ theme to use in high contrast mode." -msgstr "" +msgstr "Θέμα GTK+ για χρήση σε λειτουργία υψηλής αντίθεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:24 msgid "Icon theme to use." -msgstr "" +msgstr "Θέμα εικονιδίων για χρήση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:25 msgid "Icon theme to use in high contrast mode." -msgstr "" +msgstr "Θέμα εικονιδίων για χρήση σε λειτουργία υψηλής αντίθεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:26 msgid "Cursor theme to use." -msgstr "" +msgstr "Θέμα δρομέα για χρήση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:27 msgid "Size to use for cursors." -msgstr "" +msgstr "Μέγεθος που χρησιμοποιείται για τους δρομείς." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:28 msgid "Font to use." -msgstr "" +msgstr "Γραμματοσειρά προς χρήση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:29 msgid "Whether to antialias Xft fonts." -msgstr "" +msgstr "Αν θέλετε να κάνετε antialias στις γραμματοσειρές Xft." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:30 msgid "Resolution for Xft in dots per inch." -msgstr "" +msgstr "Ανάλυση για το Xft σε κουκκίδες ανά ίντσα." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:31 msgid "What degree of hinting to use." -msgstr "" +msgstr "Ποιος βαθμός υπαινιγμού πρέπει να χρησιμοποιηθεί." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:32 msgid "Type of subpixel antialiasing." -msgstr "" +msgstr "Τύπος αντιδιαστολής υποεικονοστοιχείων." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:33 msgid "Whether to enable the onscreen keyboard." -msgstr "" +msgstr "Ενεργοποίηση του πληκτρολογίου οθόνης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:34 msgid "Whether to use a high contrast theme." -msgstr "" +msgstr "Αν θα χρησιμοποιήσετε ένα θέμα υψηλής αντίθεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:35 msgid "Whether to enable the screen reader." -msgstr "" +msgstr "Εάν θέλετε να ενεργοποιήσετε το πρόγραμμα ανάγνωσης οθόνης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:36 msgid "Whether to play sound when greeter is ready." -msgstr "" +msgstr "Αν θα αναπαράγεται ήχος όταν ο χαιρετιστής είναι έτοιμος." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:37 msgid "Which indicators to load." -msgstr "" +msgstr "Ποιους δείκτες να φορτώσετε." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:38 msgid "" "List of usernames that are hidden until a special key combination is hit." msgstr "" +"Λίστα με ονόματα χρηστών που είναι κρυμμένα μέχρι να πατηθεί ένας ειδικός " +"συνδυασμός πλήκτρων." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:39 msgid "" "List of groups that users must be part of to be shown (empty list shows all " "users)." msgstr "" +"Λίστα των ομάδων στις οποίες πρέπει να ανήκουν οι χρήστες για να " +"εμφανίζονται (η κενή λίστα εμφανίζει όλους τους χρήστες)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:40 msgid "" "Number of seconds of inactivity before blanking the screen. Set to 0 to " "never timeout." msgstr "" +"Αριθμός δευτερολέπτων αδράνειας πριν από το σβήσιμο της οθόνης. Ορίστε την " +"τιμή 0 για να μην υπάρχει ποτέ timeout." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:41 msgid "Whether to enable HiDPI support" -msgstr "" +msgstr "Ενεργοποίηση της υποστήριξης HiDPI" #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:42 msgid "" "Scaling factor for fonts that can be used to adjust the greeter's font sizes." msgstr "" +"Συντελεστής κλιμάκωσης για γραμματοσειρές που μπορεί να χρησιμοποιηθεί για " +"την προσαρμογή των μεγεθών γραμματοσειράς του χαιρετιστή." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:43 msgid "" "Alpha value for menubar, multiplied with the theme-provided transparency " "value. Not used in high contrast mode." msgstr "" +"Τιμή άλφα για τη γραμμή μενού, πολλαπλασιασμένη με την τιμή διαφάνειας που " +"παρέχεται από το θέμα. Δεν χρησιμοποιείται σε λειτουργία υψηλής αντίθεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:44 msgid "Default FQDN for host offering Remote Logon Service." msgstr "" +"Προεπιλεγμένο FQDN για τον κεντρικό υπολογιστή που προσφέρει την υπηρεσία " +"απομακρυσμένης σύνδεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:45 msgid "" "Whether to activate numlock. This features requires the installation of " "numlockx." msgstr "" +"Εάν θα ενεργοποιηθεί το numlock. Αυτή η λειτουργία απαιτεί την εγκατάσταση " +"του numlockx." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:46 msgid "Monitor on which to show the Login GUI." -msgstr "" +msgstr "Οθόνη στην οποία θα εμφανιστεί το γραφικό περιβάλλον σύνδεσης." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:47 msgid "" "Name of the onscreen keyboard layout (see /usr/share/onboard/layouts/*." "onboard for available layout names)." msgstr "" +"Όνομα της διάταξης πληκτρολογίου οθόνης (δείτε /usr/share/onboard/layouts/*" +".onboard για τα διαθέσιμα ονόματα διάταξης)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:48 msgid "" "Name of the onscreen keyboard theme (see /usr/share/onboard/themes/*.theme " "for available theme names)." msgstr "" +"Όνομα του θέματος του πληκτρολογίου οθόνης (δείτε /usr/share/onboard/themes/*" +".theme για τα διαθέσιμα ονόματα θεμάτων)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:49 msgid "" "Name of the onscreen keyboard theme when in high contrast mode (see /usr/" "share/onboard/themes/*.theme for available theme names)." msgstr "" +"Όνομα του θέματος του πληκτρολογίου οθόνης όταν βρίσκεται σε λειτουργία " +"υψηλής αντίθεσης (δείτε /usr/share/onboard/themes/*.theme για τα διαθέσιμα " +"ονόματα θεμάτων)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:50 msgid "Whether to hide the 'lightdm-xsession' default X11 session type." msgstr "" +"Εάν θέλετε να αποκρύψετε τον προεπιλεγμένο τύπο συνόδου X11 'lightdm-" +"xsession'." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:51 msgid "Whether to hide X11 sessions." -msgstr "" +msgstr "Εάν θέλετε να αποκρύψετε συνεδρίες X11." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:52 msgid "Whether to hide Wayland sessions." -msgstr "" +msgstr "Εάν θέλετε να αποκρύψετε συνεδρίες Wayland." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:53 msgid "" "Ordered list of preferred desktop sessions (for detecting the default " "session type)." msgstr "" +"Ταξινομημένος κατάλογος προτιμώμενων συνόδων εργασίας (για τον εντοπισμό του " +"προεπιλεγμένου τύπου συνόδου)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:54 msgid "" "Time in seconds until the shutdown dialog forcefully selects the default " "action. Set to 0 to disable." msgstr "" +"Χρόνος σε δευτερόλεπτα έως ότου το παράθυρο διαλόγου τερματισμού επιλέξει " +"αναγκαστικά την προεπιλεγμένη ενέργεια. Ορίστε την τιμή 0 για απενεργοποίηση." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:55 msgid "" @@ -545,6 +604,10 @@ msgid "" "explicitly listed sessions types will be offered by the greeter). Takes " "precedence over the excluded-sessions list." msgstr "" +"Μη διατεταγμένη λίστα των συνόδων επιφάνειας εργασίας που περιλαμβάνουν μόνο " +"τις συνεδρίες (αν δεν είναι κενές, μόνο οι τύποι συνεδριών που αναφέρονται " +"ρητά θα προσφερθούν από την υπηρεσία υποδοχής). Έχει προτεραιότητα έναντι " +"της λίστας excluded-sessions." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:56 msgid "" @@ -552,6 +615,9 @@ msgid "" "types will not be offered by the greeter). Only used if includeonly-sessions " "is empty." msgstr "" +"Μη διατεταγμένη λίστα των αποκλεισμένων συνόδων γραφείου (αν δεν είναι κενή, " +"οι τύποι συνόδων που παρατίθενται δεν θα προσφέρονται από την υπηρεσία " +"υποδοχής). Χρησιμοποιείται μόνο αν το includeonly-sessions είναι κενό." #~ msgid "Onscreen keyboard" #~ msgstr "Πληκτρολόγιο οθόνης" @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2022-04-22 17:10+0000\n" -"Last-Translator: Michael Kha <michaelkha69@gmail.com>\n" -"Language-Team: Burmese <https://hosted.weblate.org/projects/arctica-" -"framework/greeter/my/>\n" +"PO-Revision-Date: 2025-05-20 10:10+0000\n" +"Last-Translator: naikhon <naikhon5@gmail.com>\n" +"Language-Team: Burmese <https://hosted.weblate.org/projects/" +"arctica-framework/greeter/my/>\n" "Language: my\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: Weblate 4.12.1-dev\n" +"X-Generator: Weblate 5.12-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 @@ -72,7 +72,7 @@ msgstr "desktop ပုံစံရွေးရန်" #: ../src/shutdown-dialog.vala:146 msgid "Goodbye. Would you like to…" -msgstr "" +msgstr "သွားတော့မယ်။ သင် လဲသွားချင်ပါသလား…" #: ../src/shutdown-dialog.vala:152 ../src/shutdown-dialog.vala:252 msgid "Shut Down" @@ -105,7 +105,7 @@ msgstr "အစမှ ပြန်ဖွင့်မည်" #. Fun begins here, actually trigger option. #: ../src/shutdown-dialog.vala:297 msgid "Executing selected action now." -msgstr "" +msgstr "ရွေးချယ်ထားသောလုပ်ဆောင်ချက်ကို ယခုလုပ်ဆောင်နေပါသည်။" #: ../src/shutdown-dialog.vala:331 #, c-format @@ -122,22 +122,23 @@ msgstr "%s (မူလ)" #. Help string for command line --version flag #: ../src/arctica-greeter.vala:994 msgid "Show release version" -msgstr "" +msgstr "ထွက်ရှိသည့်ဗားရှင်းကိုပြသပါ။" #. Help string for command line --test-mode flag #: ../src/arctica-greeter.vala:997 msgid "Run in test mode" -msgstr "" +msgstr "စမ်းသပ်မုဒ်တွင် လုပ်ဆောင်ပါ။" #. Help string for command line --test-highcontrast flag #: ../src/arctica-greeter.vala:1000 msgid "Run in test mode with a11y highcontrast theme enabled" msgstr "" +"a11y high contrast အပြင်အဆင်ကို ဖွင့်ထားခြင်းဖြင့် စမ်းသပ်မုဒ်တွင် လုပ်ဆောင်ပါ။" #. Arguments and description for --help text #: ../src/arctica-greeter.vala:1006 msgid "- Arctica Greeter" -msgstr "Arctica Greeter" +msgstr "အာတိတ် နှုတ်ဆက်စကား" #. Text printed out when an unknown command-line argument provided #: ../src/arctica-greeter.vala:1029 @@ -174,7 +175,7 @@ msgstr "ပယ်ဖျက်မည်" #: ../src/user-list.vala:607 msgid "Set Up…" -msgstr "အကောင့် ဖွင့် ခြင်း ...." +msgstr "အကောင့် ဖွင့် ခြင်း .…" #: ../src/user-list.vala:609 #, fuzzy @@ -222,7 +223,7 @@ msgstr "ဒိုမိန်း -" #: ../src/user-list.vala:849 msgid "Account ID" -msgstr "" +msgstr "အကောင့် ID" #. 'Log In' here is the button for logging in. #: ../src/user-list.vala:898 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2024-10-08 19:16+0000\n" -"Last-Translator: ssantos <ssantos@web.de>\n" +"PO-Revision-Date: 2025-05-02 16:54+0000\n" +"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/" "arctica-framework/greeter/pt/>\n" "Language: pt\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.12-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 @@ -153,7 +153,7 @@ msgstr "Sessão de Convidado" #: ../src/user-list.vala:480 msgid "Please enter a complete e-mail address" -msgstr "Por favor, insira um endereço de e-mail completo" +msgstr "Insira um endereço de e-mail completo" #: ../src/user-list.vala:569 msgid "Incorrect e-mail address or password" @@ -203,8 +203,8 @@ msgid "" "You need a Remote Logon account to use this service. Please ask your site " "administrator for details." msgstr "" -"Precisa de uma conta de 'Acesso Remoto'para utilizar este serviço. Por " -"favor, peça detalhes ao administrador do seu site." +"Precisa de uma conta de 'Acesso Remoto' para utilizar este serviço. Peça " +"detalhes ao administrador do seu site." #: ../src/user-list.vala:739 msgid "Server type not supported." @@ -220,7 +220,7 @@ msgstr "Domínio:" #: ../src/user-list.vala:849 msgid "Account ID" -msgstr "Id. da Conta" +msgstr "ID da Conta" #. 'Log In' here is the button for logging in. #: ../src/user-list.vala:898 @@ -261,7 +261,7 @@ msgstr "" "Todos os dados criados durante esta sessão de convidado\n" "serão eliminados quando terminar a sessão e as definições\n" "serão redefinidas para as predefinições. Por favor, grave\n" -"os ficheiros num aparelho externo, por exemplo, uma\n" +"os ficheiros num dispositivo externo, por exemplo, uma\n" "pen USB, se pretender aceder aos mesmos mais tarde." #: ../arctica-greeter-guest-session-auto.sh:40 @@ -281,6 +281,8 @@ msgstr "Bem-vindo ao Arctica" msgid "" "Background image file to use, either an image path or a color (e.g. #772953)." msgstr "" +"Ficheiro de imagem de fundo a utilizar, seja um caminho de imagem ou uma cor " +"(por exemplo, #772953)." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:2 msgid "Background color (e.g. #772953), set before wallpaper is seen." @@ -297,6 +299,8 @@ msgid "" "Font foreground color (e.g. #A0A0A0) for non-active/-hovered and non-" "selected session names in the session list." msgstr "" +"Cor do tipo de letra em primeiro plano (por exemplo, #A0A0A0) para nomes de " +"sessões não ativas/-hovered e não selecionadas na lista de sessões." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:5 msgid "" @@ -359,11 +363,11 @@ msgstr "" #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:15 msgid "Determines how the background image is rendered." -msgstr "" +msgstr "Determina a forma como a imagem de fundo é apresentada." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:16 msgid "Whether to draw user backgrounds." -msgstr "" +msgstr "Se deve desenhar os fundos do utilizador." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:17 msgid "Whether to draw an overlay grid." @@ -380,51 +384,51 @@ msgstr "" #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:20 msgid "Logo file to use." -msgstr "" +msgstr "Ficheiro do logótipo a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:21 msgid "Alpha value for blending the logo onto the background." -msgstr "" +msgstr "Valor alfa para misturar o logótipo com o fundo." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:22 msgid "GTK+ theme to use." -msgstr "" +msgstr "Tema GTK+ a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:23 msgid "GTK+ theme to use in high contrast mode." -msgstr "" +msgstr "Tema GTK+ a utilizar no modo de alto contraste." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:24 msgid "Icon theme to use." -msgstr "" +msgstr "Tema de ícones a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:25 msgid "Icon theme to use in high contrast mode." -msgstr "" +msgstr "Tema de ícones a utilizar no modo de alto contraste." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:26 msgid "Cursor theme to use." -msgstr "" +msgstr "Tema do cursor a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:27 msgid "Size to use for cursors." -msgstr "" +msgstr "Tamanho a utilizar para os cursores." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:28 msgid "Font to use." -msgstr "" +msgstr "Tipo de letra a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:29 msgid "Whether to antialias Xft fonts." -msgstr "" +msgstr "Se é necessário anti-alias de tipos de letra Xft." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:30 msgid "Resolution for Xft in dots per inch." -msgstr "" +msgstr "Resolução para Xft em pontos por polegada." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:31 msgid "What degree of hinting to use." -msgstr "" +msgstr "Qual o grau de sugestão a utilizar." #: ../data/org.ArcticaProject.arctica-greeter.gschema.xml:32 msgid "Type of subpixel antialiasing." @@ -8,15 +8,17 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2012-01-24 16:14+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Sindhi <sd@li.org>\n" +"PO-Revision-Date: 2025-06-26 19:03+0000\n" +"Last-Translator: Javaid Ahmed Solangi <jasolangi786@gmail.com>\n" +"Language-Team: Sindhi <https://hosted.weblate.org/projects/arctica-framework/" +"greeter/sd/>\n" "Language: sd\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: Weblate 5.13-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" -"X-Generator: Launchpad (build 17656)\n" #: ../src/greeter-list.vala:306 #, c-format @@ -50,7 +52,7 @@ msgstr "" #: ../src/greeter-list.vala:979 msgid "Logging in…" -msgstr "داخل ٿيندي..." +msgstr "داخل ٿيندي…" #: ../src/main-window.vala:56 msgid "Login Screen" @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2024-11-09 13:00+0000\n" +"PO-Revision-Date: 2025-04-25 09:29+0000\n" "Last-Translator: தமிழ்நேரம் <anishprabu.t@gmail.com>\n" "Language-Team: Tamil <https://hosted.weblate.org/projects/arctica-framework/" "greeter/ta/>\n" @@ -17,13 +17,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.8.2\n" +"X-Generator: Weblate 5.11.1-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 #, c-format msgid "Enter password for %s" -msgstr "%S க்கு கடவுச்சொல்லை உள்ளிடவும்" +msgstr "%s க்கு கடவுச்சொல்லை உள்ளிடவும்" #: ../src/greeter-list.vala:308 msgid "Enter your username" @@ -31,7 +31,7 @@ msgstr "உங்கள் பயனர்பெயரை உள்ளிடவ #: ../src/greeter-list.vala:837 ../src/user-list.vala:761 msgid "Password:" -msgstr "கடவு சொல்" +msgstr "கடவுசொல்:" #: ../src/greeter-list.vala:842 ../src/user-list.vala:755 msgid "Username:" @@ -51,7 +51,7 @@ msgstr "அமர்வை தொடக்குவதில் தோல் #: ../src/greeter-list.vala:979 msgid "Logging in…" -msgstr "உள்நுழைகிறது..." +msgstr "உள்நுழைகிறது…" #: ../src/main-window.vala:56 msgid "Login Screen" @@ -71,7 +71,7 @@ msgstr "திசைமேசை சூளலை தேர்ந்தெடு" #: ../src/shutdown-dialog.vala:146 msgid "Goodbye. Would you like to…" -msgstr "நன்றி வணக்கம். நீங்கள் விரும்புகிறீர்களா..." +msgstr "நன்றி வணக்கம். நீங்கள் விரும்புகிறீர்களா…" #: ../src/shutdown-dialog.vala:152 ../src/shutdown-dialog.vala:252 msgid "Shut Down" @@ -177,7 +177,7 @@ msgstr "இரத்துசெய்" #: ../src/user-list.vala:607 msgid "Set Up…" -msgstr "அமைக்க..." +msgstr "அமைக்க…" #: ../src/user-list.vala:609 msgid "" @@ -207,7 +207,7 @@ msgstr "" #: ../src/user-list.vala:739 msgid "Server type not supported." -msgstr "சேவகன் வகை ஆதரிக்கப்படதாதது" +msgstr "சேவகன் வகை ஆதரிக்கப்படதாதது." #: ../src/user-list.vala:767 msgid "X2Go Session:" @@ -229,7 +229,7 @@ msgstr "புகுபதிகை" #: ../src/user-list.vala:899 #, c-format msgid "Login as %s" -msgstr "%S ஆக உள்நுழைக" +msgstr "%s ஆக உள்நுழைக" #: ../src/user-list.vala:903 msgid "Retry" @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2018-05-31 20:46+0000\n" -"Last-Translator: Aashish Chenna <aashish.chenna@outlook.com>\n" +"PO-Revision-Date: 2025-05-09 05:01+0000\n" +"Last-Translator: Putta Anantha Lakshmi <2300033218@kluniversity.in>\n" "Language-Team: Telugu <https://hosted.weblate.org/projects/arctica-framework/" "greeter/te/>\n" "Language: te\n" @@ -17,50 +17,49 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.0-dev\n" +"X-Generator: Weblate 5.12-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 #, c-format msgid "Enter password for %s" -msgstr "%s కొరకు పాస్ వర్డ్ వ్రాయండి" +msgstr "%s కోసం పాస్ వర్డ్ ప్రవేశించండి" #: ../src/greeter-list.vala:308 msgid "Enter your username" -msgstr "" +msgstr "మీ వినియోగదారు పేరును నమోదు చేయండి" #: ../src/greeter-list.vala:837 ../src/user-list.vala:761 msgid "Password:" -msgstr "పాస్ వర్డ్:" +msgstr "సంకేతపదం:" #: ../src/greeter-list.vala:842 ../src/user-list.vala:755 msgid "Username:" -msgstr "వాడుక పేరు:" +msgstr "వినియోగదారు పేరు:" #: ../src/greeter-list.vala:906 -#, fuzzy msgid "Invalid username or password, please try again" -msgstr "గుర్తింపు పదము/పాస్ వర్డ్ తప్పు, మళ్ళీ ప్రయత్నించండి" +msgstr "చెల్లని వినియోగదారు పేరు లేదా సంకేతపదం, దయచేసి మళ్లీ ప్రయత్నించండి" #: ../src/greeter-list.vala:917 msgid "Failed to authenticate" -msgstr "దీనిని ధ్రువీకరించలేము" +msgstr "ధృవీకరణ విఫలమైంది" #: ../src/greeter-list.vala:965 msgid "Failed to start session" -msgstr "సమావేశం మొదలు పెట్టటం విఫలమైంది" +msgstr "\"సెషన్ ప్రారంభించడంలో విఫలమైంది\"" #: ../src/greeter-list.vala:979 msgid "Logging in…" -msgstr "లాగిన్/ప్రవేశ చేయబడుతుంది…" +msgstr "లాగిన్ చేయబడుతుంది…" #: ../src/main-window.vala:56 msgid "Login Screen" -msgstr "లాగిన్/ప్రవేశ తెర" +msgstr "ప్రవేశపెట్టే పటం" #: ../src/main-window.vala:107 msgid "Back" -msgstr "వెనుకకి" +msgstr "తిరిగి" #: ../src/prompt-box.vala:305 msgid "Session Options" @@ -68,49 +67,51 @@ msgstr "సమావేశ ఎంపికలు" #: ../src/session-list.vala:36 msgid "Select desktop environment" -msgstr "డెస్క్టాప్ వాతావరణాన్ని ఎంచుకో" +msgstr "డెస్క్టాప్ పరిసరాన్ని ఎంచుకోండి" #: ../src/shutdown-dialog.vala:146 msgid "Goodbye. Would you like to…" -msgstr "సెలవు. మీరు…" +msgstr "వీడ్కోలు. మీరు ... చేయాలనుకుంటున్నారా?" #: ../src/shutdown-dialog.vala:152 ../src/shutdown-dialog.vala:252 msgid "Shut Down" -msgstr "మూసివేయి" +msgstr "ఆపివేయి" #: ../src/shutdown-dialog.vala:156 msgid "Are you sure you want to shut down the computer?" -msgstr "మీరు ఖచ్చితంగా మూసివేయాలని కోరుతున్నారా?" +msgstr "మీరు కంప్యూటర్ను మూసివేయాలనుకుంటున్నారా?" #: ../src/shutdown-dialog.vala:181 msgid "" "Other users are currently logged in to this computer, shutting down now will " "also close these other sessions." -msgstr "వేరే వాడుకదారి ప్రస్తుతం లాగిన్ చేసి ఉన్నారు. ఇప్పుడు మూసివేస్తే వారి సమావేశాలు కూడా మూసివేయబడతాయి." +msgstr "" +"ఈ కంప్యూటర్లో ప్రస్తుతం ఇతర వినియోగదారులు లాగిన్ అయ్యారు, ఇప్పుడు మూసివేయడం అనగా ఈ ఇతర సెషన్లను " +"కూడా మూసివేస్తుంది." #: ../src/shutdown-dialog.vala:198 msgid "Suspend" -msgstr "తాత్కాలికంగా మూసివేయి" +msgstr "నిలిపివేయి" #: ../src/shutdown-dialog.vala:215 msgid "Hibernate" -msgstr "సోమరి" +msgstr "శిధిలావస్థలోకి వెళ్లి" #: ../src/shutdown-dialog.vala:233 msgid "Restart" -msgstr "మరల ప్రారంభించు" +msgstr "మళ్లీ ప్రారంభించు" #. Fun begins here, actually trigger option. #: ../src/shutdown-dialog.vala:297 msgid "Executing selected action now." -msgstr "" +msgstr "ప్రస్తుతం ఎంపిక చేసిన చర్యను అమలు చేస్తున్నాము." #: ../src/shutdown-dialog.vala:331 #, c-format msgid "Waiting one more second before executing selected action …" msgid_plural "Waiting %u seconds before executing selected action …" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ఒకవేళ: ఎంపిక చేసిన చర్యను అమలు చేసేముందు మరొక సెకనుకు వేచివున్నాను…" +msgstr[1] "బహువచన: ఎంపిక చేసిన చర్యను అమలు చేసేముందు %u సెకన్లపాటు వేచివున్నాను…" #. Translators: %s is a session name like KDE or Ubuntu #: ../src/toggle-box.vala:205 @@ -121,36 +122,36 @@ msgstr "%s (డిఫాల్ట్)" #. Help string for command line --version flag #: ../src/arctica-greeter.vala:994 msgid "Show release version" -msgstr "విడుదల వెర్షన్ను చూపించు" +msgstr "విడుదల వెర్షన్ను చూపించు" #. Help string for command line --test-mode flag #: ../src/arctica-greeter.vala:997 msgid "Run in test mode" -msgstr "శోధన స్థితిలో నడిపించు" +msgstr "పరీక్ష మోదులో నడుపు" #. Help string for command line --test-highcontrast flag #: ../src/arctica-greeter.vala:1000 msgid "Run in test mode with a11y highcontrast theme enabled" -msgstr "" +msgstr "పరీక్ష మోదులో a11y హై కాంట్రాస్ట్ థీమ్ను ప్రారంభించి నడుపు" #. Arguments and description for --help text #: ../src/arctica-greeter.vala:1006 msgid "- Arctica Greeter" -msgstr "- అర్క్టికా గ్రీటర్" +msgstr "- ఆర్క్టికా ఆహ్వానికుడు" #. Text printed out when an unknown command-line argument provided #: ../src/arctica-greeter.vala:1029 #, c-format msgid "Run '%s --help' to see a full list of available command line options." -msgstr "పూర్తి కమాండ్ లైన్ విషయసూచిక కొరకు '%s --help' ను నడపండి." +msgstr "లభ్యమైన కమాండ్ లైన్ ఎంపికల పూర్తి జాబితాを見るには '%s --help' ను నడపండి." #: ../src/user-list.vala:49 msgid "Guest Session" -msgstr "అతిధి సమావేశం" +msgstr "అతిథి సెషన్" #: ../src/user-list.vala:480 msgid "Please enter a complete e-mail address" -msgstr "దయచేసి పూర్తి ఈమెయిల్ అడ్డ్రెస్ రాయండి" +msgstr "దయచేసి పూర్తిగా ఇమెయిల్ చిరునామాను నమోదు చేయండి" #: ../src/user-list.vala:569 msgid "Incorrect e-mail address or password" @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: arctica-greeter\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 22:14+0200\n" -"PO-Revision-Date: 2021-09-30 11:35+0000\n" -"Last-Translator: Civil 056DB <ashoksada.spj1986@gmail.com>\n" +"PO-Revision-Date: 2025-06-26 19:03+0000\n" +"Last-Translator: Javaid Ahmed Solangi <jasolangi786@gmail.com>\n" "Language-Team: Urdu <https://hosted.weblate.org/projects/arctica-framework/" "greeter/ur/>\n" "Language: ur\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 5.13-dev\n" "X-Launchpad-Export-Date: 2015-08-05 05:27+0000\n" #: ../src/greeter-list.vala:306 @@ -39,9 +39,8 @@ msgid "Username:" msgstr "صارف نام:" #: ../src/greeter-list.vala:906 -#, fuzzy msgid "Invalid username or password, please try again" -msgstr "غلط حروف شناخت، براہ کرم درست حروف شناخت مہیا کر کے دوبارہ کوشش کریں" +msgstr "غلط حروف شناخت، براہ کرم درست حروف شناخت مہیا کر کے دوبارہ کوشش کریں" #: ../src/greeter-list.vala:917 msgid "Failed to authenticate" @@ -49,7 +48,7 @@ msgstr "توثیق کرنے میں ناکامی ہوئی" #: ../src/greeter-list.vala:965 msgid "Failed to start session" -msgstr "سیشن شروع کرنے میں ناکام۔" +msgstr "سیشن شروع کرنے میں ناکام" #: ../src/greeter-list.vala:979 msgid "Logging in…" @@ -61,7 +60,7 @@ msgstr "لاگ ان سکرین" #: ../src/main-window.vala:107 msgid "Back" -msgstr "لاگ ان ہو رہا ہے…" +msgstr "پیچھے" #: ../src/prompt-box.vala:305 msgid "Session Options" @@ -69,15 +68,15 @@ msgstr "دورانیہ کے اختیارات" #: ../src/session-list.vala:36 msgid "Select desktop environment" -msgstr "ڈیسک ٹاپ ماحول منتخب کریں۔" +msgstr "ڈیسک ٹاپ ماحول منتخب کریں" #: ../src/shutdown-dialog.vala:146 msgid "Goodbye. Would you like to…" -msgstr "خدا حافظ. کیا آپ پسند کریں گے…" +msgstr "خدا حافظ. کیا آپ پسند کریں گے…" #: ../src/shutdown-dialog.vala:152 ../src/shutdown-dialog.vala:252 msgid "Shut Down" -msgstr "شٹ ڈاؤن۔" +msgstr "شٹ ڈاؤن" #: ../src/shutdown-dialog.vala:156 msgid "Are you sure you want to shut down the computer?" @@ -106,20 +105,20 @@ msgstr "دوبارہ شروع کریں" #. Fun begins here, actually trigger option. #: ../src/shutdown-dialog.vala:297 msgid "Executing selected action now." -msgstr "" +msgstr "اب منتخب کردہ کارروائی کو انجام دیا جا رہا ہے۔" #: ../src/shutdown-dialog.vala:331 #, c-format msgid "Waiting one more second before executing selected action …" msgid_plural "Waiting %u seconds before executing selected action …" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "منتخب کارروائی کو انجام دینے سے پہلے ایک سیکنڈ اور انتظار کر رہے ہیں…" +msgstr[1] "منتخب عمل کو انجام دینے سے پہلے %u سیکنڈ انتظار کر رہے ہیں…" #. Translators: %s is a session name like KDE or Ubuntu #: ../src/toggle-box.vala:205 #, c-format msgid "%s (Default)" -msgstr "٪ s (ڈیفالٹ)" +msgstr "%s(ڈیفالٹ)" #. Help string for command line --version flag #: ../src/arctica-greeter.vala:994 @@ -134,7 +133,7 @@ msgstr "آزمائشی انداز میں چلائیں" #. Help string for command line --test-highcontrast flag #: ../src/arctica-greeter.vala:1000 msgid "Run in test mode with a11y highcontrast theme enabled" -msgstr "" +msgstr "A11y ہائی کنٹراسٹ تھیم کے ساتھ ٹیسٹ موڈ میں چلائیں" #. Arguments and description for --help text #: ../src/arctica-greeter.vala:1006 @@ -153,11 +152,11 @@ msgstr "مِہمان کا دورانیہ" #: ../src/user-list.vala:480 msgid "Please enter a complete e-mail address" -msgstr "براہ کرم ایک مکمل ای میل پتہ درج کریں۔" +msgstr "براہ کرم ایک مکمل ای میل پتہ درج کریں" #: ../src/user-list.vala:569 msgid "Incorrect e-mail address or password" -msgstr "غلط ای میل پتہ یا پاس ورڈ۔" +msgstr "غلط ای میل پتہ یا پاس ورڈ" #. dialog.secondary_text = _("If you have an account on an RDP or Citrix server, Remote Login lets you run applications from that server."); #. For 12.10 we still don't support Citrix @@ -182,8 +181,8 @@ msgid "" "You need a Remote Logon account to use this service. Would you like to set " "up an account now?" msgstr "" -"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ کیا " -"آپ ابھی ایک اکاؤنٹ ترتیب دینا چاہیں گے؟" +"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ کیا آپ " +"ابھی ایک اکاؤنٹ ترتیب دینا چاہیں گے؟" #: ../src/user-list.vala:613 msgid "OK" @@ -195,15 +194,15 @@ msgid "" "You need a Remote Logon account to use this service. Visit %s to request an " "account." msgstr "" -"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ " -"اکاؤنٹ کی درخواست کرنے کے لیے٪ s ملاحظہ کریں۔" +"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ اکاؤنٹ " +"کی درخواست کرنے کے لیے %s ملاحظہ کریں۔" #: ../src/user-list.vala:617 msgid "" "You need a Remote Logon account to use this service. Please ask your site " "administrator for details." msgstr "" -"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ براہ " +"اس سروس کو استعمال کرنے کے لیے آپ کو ریموٹ لاگ ان اکاؤنٹ کی ضرورت ہے۔ براہ " "کرم تفصیلات کے لیے اپنی سائٹ کے منتظم سے پوچھیں۔" #: ../src/user-list.vala:739 @@ -225,7 +224,7 @@ msgstr "اکاؤنٹ کی شناخت" #. 'Log In' here is the button for logging in. #: ../src/user-list.vala:898 msgid "Log In" -msgstr "لاگ ان" +msgstr "لاگ ان کریں" #: ../src/user-list.vala:899 #, c-format @@ -239,7 +238,7 @@ msgstr "دوبارہ کوشش" #: ../src/user-list.vala:904 #, c-format msgid "Retry as %s" -msgstr "٪ s کے طور پر دوبارہ کوشش کریں" +msgstr "%s کے طور پر دوبارہ کوشش کریں" #: ../src/user-list.vala:948 msgid "Login" @@ -248,7 +247,7 @@ msgstr "لاگ ان" #: ../arctica-greeter-guest-session-auto.sh:35 #, sh-format msgid "Temporary Guest Session" -msgstr "عارضی مہمان سیشن۔" +msgstr "عارضی مہمان سیشن" #: ../arctica-greeter-guest-session-auto.sh:36 #, sh-format diff --git a/src/Makefile.am b/src/Makefile.am index bb91f59..7ddcf57 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -91,7 +91,5 @@ arctica_greeter_LDADD = \ logo_generator_LDADD = $(arctica_greeter_LDADD) -arctica_greeter_vala.stamp: $(top_srcdir)/config.h - DISTCLEANFILES = \ Makefile.in diff --git a/src/animate-timer.vala b/src/animate-timer.vala index 9f92448..4879cb0 100644 --- a/src/animate-timer.vala +++ b/src/animate-timer.vala @@ -2,6 +2,7 @@ * * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> + * Copyright (C) 2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -18,6 +19,7 @@ * Authors: Robert Ancell <robert.ancell@canonical.com> * Michael Terry <michael.terry@canonical.com> * Mike Gabriel <mike.gabriel@das-netzwerkteam.de> + * Robert Tari <robert@tari.in> */ private class AnimateTimer : Object @@ -32,7 +34,7 @@ private class AnimateTimer : Object public const int SLOW = 1000; /* Good for animations that convey information that is only presented in the animation */ /* speed is in milliseconds */ - public unowned EasingFunc easing_func { get; private set; } + public unowned EasingFunc easing_func; public int speed { get; set; } public bool is_running { get { return timeout != 0; } } public double progress { get; private set; } diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala index 93c88e2..5eb8a59 100644 --- a/src/arctica-greeter.vala +++ b/src/arctica-greeter.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2011 Canonical Ltd * Copyright (C) 2015-2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - * Copyright (C) 2023-2024 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -1144,7 +1144,6 @@ public class ArcticaGreeter : Object try { string[] argv; - Pid wm_message_pid = 0; Shell.parse_argv ("%s-message disable-keybindings".printf(wm), out argv); diff --git a/src/background.vala b/src/background.vala index e6d52fa..07dce7e 100644 --- a/src/background.vala +++ b/src/background.vala @@ -2,6 +2,7 @@ * * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015-2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> + * Copyright (C) 2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -18,6 +19,7 @@ * Authors: Robert Ancell <robert.ancell@canonical.com> * Michael Terry <michael.terry@canonical.com> * Mike Gabriel <mike.gabriel@das-netzwerkteam.de> + * Robert Tari <robert@tari.in> */ class BackgroundLoader : Object @@ -171,17 +173,43 @@ class BackgroundLoader : Object var target_aspect = (double) width / height; var aspect = (double) image.width / image.height; double scale, offset_x = 0, offset_y = 0; + string sPosition = AGSettings.get_string (AGSettings.KEY_BACKGROUND_POSITION); + if (aspect > target_aspect) { /* Fit height and trim sides */ scale = (double) height / image.height; - offset_x = (image.width * scale - width) / 2; + + if (sPosition == "center") + { + offset_x = (image.width * scale - width) / 2; + } + else if (sPosition == "top-left" || sPosition == "bottom-left") + { + offset_x = 0; + } + else if (sPosition == "top-right" || sPosition == "bottom-right") + { + offset_x = (image.width * scale - width); + } } else { /* Fit width and trim top and bottom */ scale = (double) width / image.width; - offset_y = (image.height * scale - height) / 2; + + if (sPosition == "center") + { + offset_y = (image.height * scale - height) / 2; + } + else if (sPosition == "top-left" || sPosition == "top-right") + { + offset_y = 0; + } + else if (sPosition == "bottom-left" || sPosition == "bottom-right") + { + offset_y = (image.height * scale - height); + } } var scaled_image = new Gdk.Pixbuf (image.colorspace, image.has_alpha, image.bits_per_sample, width, height); @@ -207,8 +235,31 @@ class BackgroundLoader : Object if (logo != null) { bc.save (); - var x = (int) (grid_x_offset + 2 * greeter.grid_size); - var y = (int) (image.height - 1 * greeter.grid_size - logo_height + grid_y_offset); + string sPosition = AGSettings.get_string (AGSettings.KEY_LOGO_POSITION); + int x = AGSettings.get_integer (AGSettings.KEY_LOGO_OFFSET_HORIZONTAL); + int y = AGSettings.get_integer (AGSettings.KEY_LOGO_OFFSET_VERTICAL); + + if (sPosition == "top-left") + { + x = (int) (grid_x_offset + (x * greeter.grid_size)); + y = (int) (grid_y_offset + ((y + 1) * greeter.grid_size)); + } + else if (sPosition == "top-right") + { + x = (int) (image.width - (x * greeter.grid_size) - logo_width + grid_x_offset); + y = (int) (grid_y_offset + ((y + 1) * greeter.grid_size)); + } + else if (sPosition == "bottom-left") + { + x = (int) (grid_x_offset + (x * greeter.grid_size)); + y = (int) (image.height - (y * greeter.grid_size) - logo_height + grid_y_offset); + } + else if (sPosition == "bottom-right") + { + x = (int) (image.width - (x * greeter.grid_size) - logo_width + grid_x_offset); + y = (int) (image.height - (y * greeter.grid_size) - logo_height + grid_y_offset); + } + bc.translate (x, y); bc.set_source_surface (logo, 0, 0); bc.paint_with_alpha (AGSettings.get_double (AGSettings.KEY_LOGO_ALPHA)); diff --git a/src/dash-box.vala b/src/dash-box.vala index 0772e3f..52dd7d4 100644 --- a/src/dash-box.vala +++ b/src/dash-box.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -237,7 +237,11 @@ public class DashBox : Gtk.Box } else { - c.set_source_rgba (0.1, 0.1, 0.1, 0.4); + string sBackGround = AGSettings.get_string (AGSettings.KEY_DASHBOX_BGCOLOR); + Gdk.RGBA cBackground = {1.0, 1.0, 1.0, 1.0}; + cBackground.parse (sBackGround); + double fOpacity = AGSettings.get_double (AGSettings.KEY_DASHBOX_OPACITY); + c.set_source_rgba (cBackground.red, cBackground.green, cBackground.blue, fOpacity); } c.fill_preserve (); diff --git a/src/greeter-list.vala b/src/greeter-list.vala index 04d4ed4..da4f3e9 100644 --- a/src/greeter-list.vala +++ b/src/greeter-list.vala @@ -283,7 +283,6 @@ public abstract class GreeterList : FadableBox protected void redraw_greeter_box () { - queue_allocate (); Gtk.Allocation allocation; greeter_box.get_allocation (out allocation); queue_draw_area (allocation.x, allocation.y, allocation.width, allocation.height); @@ -298,7 +297,6 @@ public abstract class GreeterList : FadableBox } selected_entry.add_message (text, is_error); - redraw_greeter_box (); } public DashEntry add_prompt (string text, bool secret = false) @@ -870,6 +868,7 @@ public abstract class GreeterList : FadableBox /* Limit the number of characters in case a cat is sitting on the keyboard... */ entry.max_length = MAX_FIELD_SIZE; + queue_resize (); } protected virtual void authentication_complete_cb () diff --git a/src/list-stack.vala b/src/list-stack.vala index d87b37a..4f74ea7 100644 --- a/src/list-stack.vala +++ b/src/list-stack.vala @@ -1,7 +1,7 @@ /* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 4 -*- * * Copyright (C) 2011,2012 Canonical Ltd - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -35,6 +35,7 @@ public class ListStack : Gtk.Fixed construct { + resize_mode = Gtk.ResizeMode.QUEUE; var greeter = new ArcticaGreeter(); width = greeter.grid_size * GreeterList.BOX_WIDTH; diff --git a/src/main-window.vala b/src/main-window.vala index fc8d95a..621b115 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -70,9 +70,21 @@ public class MainWindow : Gtk.Window var accel_group = new Gtk.AccelGroup (); add_accel_group (accel_group); - var bg_color = Gdk.RGBA (); - bg_color.parse (AGSettings.get_string (AGSettings.KEY_BACKGROUND_COLOR)); - override_background_color (Gtk.StateFlags.NORMAL, bg_color); + Gtk.StyleContext pContext = get_style_context (); + Gtk.CssProvider pProvider = new Gtk.CssProvider (); + string sColour = AGSettings.get_string (AGSettings.KEY_BACKGROUND_COLOR); + string sCss = "* {background-color: %s;}".printf (sColour); + + try + { + pProvider.load_from_data (sCss, -1); + pContext.add_provider (pProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + } + catch (Error pError) + { + warning ("Panic: Error loading style for main window: %s", pError.message); + } + get_accessible ().set_name (_("Login Screen")); ArcticaGreeter.add_style_class (this); @@ -117,39 +129,30 @@ public class MainWindow : Gtk.Window login_box.add (content_box); var content_align = AGSettings.get_string(AGSettings.KEY_CONTENT_ALIGN); - var x_align = 0.5f; + var x_align = Gtk.Align.CENTER; if (content_align == "left") { - x_align = 0.0f; + x_align = Gtk.Align.START; } else if (content_align == "right") { - x_align = 1.0f; + x_align = Gtk.Align.END; } - var align = new Gtk.Alignment (x_align, 0.0f, 0.0f, 1.0f); + hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); + hbox.expand = true; + hbox.show (); + hbox.halign = x_align; + hbox.valign = Gtk.Align.CENTER; if (content_align == "center") { // offset for back button - align.margin_right = greeter.grid_size; + hbox.margin_end = greeter.grid_size; } - align.show (); - content_box.add (align); - - hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); - hbox.expand = true; - hbox.show (); - align.add (hbox); - - align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f); - align.set_size_request (greeter.grid_size, -1); - align.margin_bottom = greeter.menubar_height; /* offset for menubar at top */ - align.show (); - hbox.add (align); - + content_box.add (hbox); back_button = new FlatButton (); back_button.get_accessible ().set_name (_("Back")); Gtk.button_set_focus_on_click (back_button, false); @@ -178,8 +181,14 @@ public class MainWindow : Gtk.Window back_button.add (image); back_button.clicked.connect (pop_list); - - align.add (back_button); + back_button.halign = Gtk.Align.CENTER; + back_button.valign = Gtk.Align.CENTER; + back_button.hexpand = false; + back_button.vexpand = false; + back_button.resize_mode = Gtk.ResizeMode.QUEUE; + back_button.set_size_request (greeter.grid_size, -1); + back_button.margin_bottom = greeter.menubar_height; + hbox.add (back_button); stack = new ListStack (); stack.show (); @@ -251,8 +260,8 @@ public class MainWindow : Gtk.Window if (content_box != null) { var content_align = AGSettings.get_string(AGSettings.KEY_CONTENT_ALIGN); - content_box.margin_left = get_grid_offset (get_allocated_width ()) + (content_align == "left" ? greeter.grid_size : 0); - content_box.margin_right = get_grid_offset (get_allocated_width ()) + (content_align == "right" ? greeter.grid_size : 0); + content_box.margin_start = get_grid_offset (get_allocated_width ()) + (content_align == "left" ? greeter.grid_size : 0); + content_box.margin_end = get_grid_offset (get_allocated_width ()) + (content_align == "right" ? greeter.grid_size : 0); content_box.margin_top = get_grid_offset (get_allocated_height ()); content_box.margin_bottom = get_grid_offset (get_allocated_height ()); } @@ -273,6 +282,39 @@ public class MainWindow : Gtk.Window _set_struts (MenubarPositions.TOP, greeter.menubar_height); } + private void getScreenSize (out int nScreenWidth, out int nScreenHeight) + { + Gdk.Display pDisplay = Gdk.Display.get_default (); + int nMonitors = pDisplay.get_n_monitors (); + + if (nMonitors == 0) + { + nScreenWidth = 0; + nScreenHeight = 0; + + return; + } + + int x0 = int.MAX; + int y0 = int.MAX; + int x1 = int.MIN; + int y1 = int.MIN; + + for (int nMonitor = 0; nMonitor < nMonitors; nMonitor++) + { + Gdk.Monitor pMonitor = pDisplay.get_monitor (nMonitor); + Gdk.Rectangle cRectangle = pMonitor.get_geometry (); + + x0 = int.min (x0, cRectangle.x); + y0 = int.min (y0, cRectangle.y); + x1 = int.max (x1, cRectangle.x + cRectangle.width); + y1 = int.max (y1, cRectangle.y + cRectangle.height); + } + + nScreenWidth = x1 - x0; + nScreenHeight = y1 - y0; + } + private void _set_struts (uint position, long menubar_size) { if (!get_realized()) { @@ -291,6 +333,10 @@ public class MainWindow : Gtk.Window /* Subtract (non-scaled) 5px border + 2px extra spacing (to make indicator menus render nicely below menubar) */ menubar_size = menubar_size - 7; + int nScreenWidth = 0; + int nScreenHeight = 0; + getScreenSize (out nScreenWidth, out nScreenHeight); + // Struts dependent on position switch (position) { case MenubarPositions.TOP: @@ -304,13 +350,13 @@ public class MainWindow : Gtk.Window struts[Struts.LEFT_END] = (primary_monitor.y + primary_monitor.height) * scale - 1; break; case MenubarPositions.RIGHT: - struts[Struts.RIGHT] = (menubar_size + screen.get_width() - primary_monitor.x - primary_monitor.width) * scale; + struts[Struts.RIGHT] = (menubar_size + nScreenWidth - primary_monitor.x - primary_monitor.width) * scale; struts[Struts.RIGHT_START] = primary_monitor.y * scale; struts[Struts.RIGHT_END] = (primary_monitor.y + primary_monitor.height) * scale - 1; break; case MenubarPositions.BOTTOM: default: - struts[Struts.BOTTOM] = (menubar_size + screen.get_height() - primary_monitor.y - primary_monitor.height) * scale; + struts[Struts.BOTTOM] = (menubar_size + nScreenHeight - primary_monitor.y - primary_monitor.height) * scale; struts[Struts.BOTTOM_START] = primary_monitor.x * scale; struts[Struts.BOTTOM_END] = (primary_monitor.x + primary_monitor.width) * scale - 1; break; @@ -565,7 +611,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "onboard", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -589,7 +635,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "contrast", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -612,7 +658,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "orca", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -635,7 +681,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "magnifier", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { diff --git a/src/menubar.vala b/src/menubar.vala index 8ce73d7..0ba2903 100644 --- a/src/menubar.vala +++ b/src/menubar.vala @@ -101,7 +101,7 @@ private class IndicatorMenuItem : Gtk.MenuItem } } -public class MenuBar : Gtk.MenuBar +public class MenuBar : Gtk.Grid { public Background? background { get; construct; default = null; } public Gtk.Window? keyboard_window { get; private set; default = null; } @@ -112,70 +112,6 @@ public class MenuBar : Gtk.MenuBar Object (background: bg, accel_group: ag); } - public override bool draw (Cairo.Context c) - { - if (background != null) - { - /* Disable background drawing to see how it changes the visuals. */ - /* - int x, y; - background.translate_coordinates (this, 0, 0, out x, out y); - c.save (); - c.translate (x, y); - background.draw_full (c, Background.DrawFlags.NONE); - c.restore (); - */ - } - - /* Get the style and dimensions. */ - var style_ctx = this.get_style_context (); - - var w = this.get_allocated_width (); - var h = this.get_allocated_height (); - - /* Add a group. */ - c.push_group (); - - /* Draw the background normally. */ - style_ctx.render_background (c, 0, 0, w, h); - - /* Draw the frame normally. */ - style_ctx.render_frame (c, 0, 0, w, h); - - /* Go back to the original widget. */ - c.pop_group_to_source (); - - var agsettings = new AGSettings (); - if (agsettings.high_contrast) { - /* - * In case the high contrast mode is enabled, do not add any - * transparency. While the GTK theme might define one (even though - * it better should not, given that we are also switching to a - * high contrast theme), we certainly do not want to make the look - * fuzzy. - */ - c.paint (); - } - else { - /* - * And finally repaint it with additional transparency. - * Note that most GTK styles already define a transparency for OSD - * menus. We want to have something more transparent, but also - * make sure that it is not too transparent, so do not choose a - * value that is too low here - certainly not your desired final - * alpha value. - */ - c.paint_with_alpha (AGSettings.get_double (AGSettings.KEY_MENUBAR_ALPHA)); - } - - foreach (var child in get_children ()) - { - propagate_draw (child, c); - } - - return false; - } - public static void add_style_class (Gtk.Widget widget) { /* @@ -187,132 +123,64 @@ public class MenuBar : Gtk.MenuBar } private List<Indicator.Object> indicator_objects; + private Gtk.MenuBar pMenubar; construct { + // Assure that printf operates in C.UTF-8 locale for float-to-string conversions. + Intl.setlocale(LocaleCategory.NUMERIC, "C.UTF-8"); + + this.pMenubar = new Gtk.MenuBar (); + this.pMenubar.halign = Gtk.Align.END; + this.pMenubar.hexpand = true; + this.pMenubar.pack_direction = Gtk.PackDirection.RTL; + this.pMenubar.show (); + this.attach (this.pMenubar, 1, 0, 1, 1); + this.show (); add_style_class (this); - - /* Handle high contrast background color */ - var menubar_style = new Gtk.CssProvider (); + Gtk.CssProvider pGridProvider = new Gtk.CssProvider (); + Gtk.StyleContext pGridContext = this.get_style_context (); + Gdk.RGBA pBackground = getBackground (pGridContext, AGSettings.KEY_MENUBAR_BGCOLOR, AGSettings.KEY_MENUBAR_ALPHA); + int nBackgroundRed = (int)(pBackground.red * 255.0); + int nBackgroundGreen = (int)(pBackground.green * 255.0); + int nBackgroundBlue = (int)(pBackground.blue * 255.0); + Gdk.RGBA pShadow = getBackground (pGridContext, AGSettings.KEY_MENUBAR_SHADOW_COLOR, AGSettings.KEY_MENUBAR_SHADOW_ALPHA); + int nShadowRed = (int)(pShadow.red * 255.0); + int nShadowGreen = (int)(pShadow.green * 255.0); + int nShadowBlue = (int)(pShadow.blue * 255.0); + string sBackground = "* {background-color: rgba(%i, %i, %i, %f); border: none; box-shadow: 0px 5px 5px -5px rgba(%i, %i, %i, %f);}".printf (nBackgroundRed, nBackgroundGreen, nBackgroundBlue, pBackground.alpha, nShadowRed, nShadowGreen, nShadowBlue, pShadow.alpha); try { - menubar_style.load_from_data ("*.high_contrast { background-color: #ffffff; }", -1); + pGridProvider.load_from_data (sBackground + " *.high_contrast {background-color: #ffffff; color: #000000; text-shadow: none; box-shadow: none;}", -1); } catch (Error pError) { - error ("Panic: Failed adding high contrast background-color: %s", pError.message); + error ("Panic: Failed loading menubar grid colours: %s", pError.message); } - this.get_style_context ().add_provider (menubar_style, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - /* Add shadow. */ - var shadow_style = new Gtk.CssProvider (); + pGridContext.add_provider (pGridProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + + Gtk.CssProvider pMenubarProvider = new Gtk.CssProvider (); try { - Intl.setlocale(LocaleCategory.NUMERIC, "C.UTF-8"); - shadow_style.load_from_data ("* { box-shadow: 0px 0px 5px 5px rgba(0.2,0.2,0.2,%f); }".printf(AGSettings.get_double (AGSettings.KEY_MENUBAR_ALPHA)), -1); + pMenubarProvider.load_from_data ("* { background-color: transparent; } *.high_contrast { color: #000000; text-shadow: none; }", -1); } catch (Error pError) { - error ("Panic: Failed adding shadow: %s", pError.message); + error ("Panic: Failed loading menubar colours: %s", pError.message); } - this.get_style_context ().add_provider (shadow_style, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - - pack_direction = Gtk.PackDirection.RTL; + this.pMenubar.get_style_context ().add_provider (pMenubarProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); if (AGSettings.get_boolean (AGSettings.KEY_SHOW_HOSTNAME)) { - var hostname_item = new Gtk.MenuItem.with_label (Posix.utsname ().nodename); - append (hostname_item); - hostname_item.show (); - - /* - * Even though this (menu) item is insensitive, we want its label - * text to have the sensitive color as to not look out of place - * and difficult to read. - * - * There's a really weird bug that leads to always fetch the - * sensitive color after the widget (menuitem in this case) has - * been set to insensitive once - at least in this constructor. - * - * I haven't found a way to fix that, or, for that matter, what is - * actually causing the issue. Even waiting on the main event loop - * until all events are processed didn't help. - * - * We'll work around this issue by fetching the color before - * setting the widget to insensitive and call it proper. - */ - var insensitive_override_style = new Gtk.CssProvider (); - - /* - * First, fetch the associated GtkStyleContext and save the state, - * we'll override the state later on. - */ - var hostname_item_ctx = hostname_item.get_style_context (); - hostname_item_ctx.save (); - - try { - /* Get the actual color. */ - var sensitive_color = hostname_item_ctx.get_color (Gtk.StateFlags.NORMAL); - debug ("Directly fetched sensitive color: %s", sensitive_color.to_string ()); - - insensitive_override_style.load_from_data ("*:disabled { color: %s; } - *.high_contrast:disabled { color: #000000; }".printf(sensitive_color.to_string ()), -1); - } - catch (Error e) - { - debug ("Internal error loading hostname menu item text color: %s", e.message); - } - finally { - /* - * Restore the context, which we might have changed through the - * previous get_color () call. - */ - hostname_item_ctx.restore (); - } - - try { - /* And finally override the insensitive color. */ - hostname_item_ctx.add_provider (insensitive_override_style, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - - /* - * Just overriding the color for the Gtk.MenuItem widget - * doesn't help, we'll also apply it to the children. - * - * In theory, we could just use the get_child () method to - * fetch the only child we should ever have on that widget, - * namely a GtkAccelLabel, but that isn't future-proof enough, - * especially if that is ever extended into having a submenu. - * - * Thus, iterate over all children and override the style for - * all of them. - */ - if (gtk_is_container (hostname_item)) { - var children = hostname_item.get_children (); - foreach (Gtk.Widget element in children) { - var child_ctx = element.get_style_context (); - debug ("Adding override style provider to child widget %s", element.name); - child_ctx.add_provider (insensitive_override_style, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - } - } - } - catch (Error e) - { - debug ("Internal error overriding hostname menu item text color: %s", e.message); - } - - hostname_item.set_sensitive (false); - - /* The below does not work, so for now we need to stick to "set_right_justified" - hostname_item.set_hexpand (true); - hostname_item.set_halign (Gtk.Align.END);*/ - hostname_item.set_right_justified (true); + Gtk.Label pLabel = new Gtk.Label (Posix.utsname ().nodename); + pLabel.vexpand = true; + pLabel.margin_start = 6; + pLabel.show (); + this.attach (pLabel, 0, 0, 1, 1); } /* Prevent dragging the window by the menubar */ @@ -320,7 +188,7 @@ public class MenuBar : Gtk.MenuBar { var style = new Gtk.CssProvider (); style.load_from_data ("* {-GtkWidget-window-dragging: false;}", -1); - get_style_context ().add_provider (style, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + this.pMenubar.get_style_context ().add_provider (style, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); } catch (Error e) { @@ -330,6 +198,11 @@ public class MenuBar : Gtk.MenuBar setup_indicators (); } + public void select_first (bool bSearchSensitive) + { + this.pMenubar.select_first (bSearchSensitive); + } + public override void get_preferred_height (out int min, out int nat) { var greeter = new ArcticaGreeter (); @@ -337,6 +210,42 @@ public class MenuBar : Gtk.MenuBar nat = (int)Math.round(greeter.menubar_height - 8); } + private Gdk.RGBA getBackground (Gtk.StyleContext pContext, string sBackgroundKey, string sAlphaKey) + { + string sBackground = AGSettings.get_string (sBackgroundKey); + Gdk.RGBA pBackground; + + if (sBackground != "") + { + pBackground = Gdk.RGBA (); + pBackground.parse (sBackground); + } + else + { + bool bFound = pContext.lookup_color ("osd_bg", out pBackground); + + if (!bFound) + { + bFound = pContext.lookup_color ("dark_bg_color", out pBackground); + + if (!bFound) + { + pBackground = Gdk.RGBA (); + pBackground.parse ("#444444"); + debug ("Failed to retrieve osd_bg and dark_bg_color for %s - falling back to #444444", sBackgroundKey); + } + else + { + debug ("Failed to retrieve osd_bg for %s - falling back to dark_bg_color", sBackgroundKey); + } + } + } + + pBackground.alpha = AGSettings.get_double (sAlphaKey); + + return pBackground; + } + private Indicator.Object? load_indicator_file (string indicator_name) { string dir = Config.INDICATOR_FILE_DIR; @@ -482,7 +391,7 @@ public class MenuBar : Gtk.MenuBar { var index = get_indicator_index (object); var pos = 0; - foreach (var child in get_children ()) + foreach (var child in this.pMenubar.get_children ()) { if (!(child is IndicatorMenuItem)) break; @@ -499,19 +408,19 @@ public class MenuBar : Gtk.MenuBar var menuitem = new IndicatorMenuItem (entry); menuitem.set_data ("indicator-object", object); - insert (menuitem, pos); + this.pMenubar.insert (menuitem, pos); } private void indicator_removed_cb (Indicator.Object object, Indicator.ObjectEntry entry) { debug ("Removing indicator object %p", entry); - foreach (var child in get_children ()) + foreach (var child in this.pMenubar.get_children ()) { var menuitem = (IndicatorMenuItem) child; if (menuitem.entry == entry) { - remove (child); + this.pMenubar.remove (child); return; } } diff --git a/src/prompt-box.vala b/src/prompt-box.vala index 1254d14..fb3d4ab 100644 --- a/src/prompt-box.vala +++ b/src/prompt-box.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015,2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -96,6 +96,7 @@ public class PromptBox : FadableBox construct { + resize_mode = Gtk.ResizeMode.QUEUE; var greeter = new ArcticaGreeter(); set_start_row (); @@ -222,8 +223,8 @@ public class PromptBox : FadableBox try { var color_provider = new Gtk.CssProvider (); - var css = "* { color: rgba(255, 255, 255, 1.0); }\n" + - ".high_contrast { color: rgba (0, 0, 0, 1.0); }"; + string sColor = AGSettings.get_string (AGSettings.KEY_PROMPTBOX_COLOR_NORMAL); + var css = "* { color: %s; } .high_contrast { color: rgba (0, 0, 0, 1.0); }".printf (sColor); color_provider.load_from_data (css, -1); style_ctx.add_provider (color_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -246,13 +247,12 @@ public class PromptBox : FadableBox message_image = new CachedImage (null); message_image.set_from_icon_name("mail-unread", Gtk.IconSize.BUTTON); - - var align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f); - align.valign = Gtk.Align.START; - align.set_size_request (-1, greeter.grid_size); - align.add (message_image); - align.show (); - name_grid.attach (align, COL_NAME_MESSAGE, ROW_NAME, 1, 1); + message_image.halign = Gtk.Align.CENTER; + message_image.valign = Gtk.Align.START; + message_image.hexpand = false; + message_image.vexpand = false; + message_image.set_size_request (-1, greeter.grid_size); + name_grid.attach (message_image, COL_NAME_MESSAGE, ROW_NAME, 1, 1); option_button = new FlatButton (); var option_button_ctx = option_button.get_style_context (); @@ -321,7 +321,7 @@ public class PromptBox : FadableBox try { var font_provider = new Gtk.CssProvider (); - var css = "* {font-family: %s; font-size: %dpt;}".printf (font_family, font_size); + var css = "* {color: #FFFFFF; font-family: %s; font-size: %dpt;}".printf (font_family, font_size); font_provider.load_from_data (css, -1); style_ctx.add_provider (font_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -333,7 +333,6 @@ public class PromptBox : FadableBox var greeter = new ArcticaGreeter(); - small_name_label.override_color (Gtk.StateFlags.NORMAL, { 1.0f, 1.0f, 1.0f, 1.0f }); small_name_label.yalign = 0.5f; small_name_label.xalign = 0.0f; small_name_label.margin_start = 2; @@ -343,12 +342,12 @@ public class PromptBox : FadableBox small_message_image = new CachedImage (null); small_message_image.set_from_icon_name("mail-unread", Gtk.IconSize.BUTTON); - - var align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f); - align.set_size_request (-1, greeter.grid_size); - align.add (small_message_image); - align.show (); - small_name_grid.attach (align, 2, 0, 1, 1); + small_message_image.halign = Gtk.Align.CENTER; + small_message_image.valign = Gtk.Align.CENTER; + small_message_image.hexpand = false; + small_message_image.vexpand = false; + small_message_image.set_size_request (-1, greeter.grid_size); + small_name_grid.attach (small_message_image, 2, 0, 1, 1); small_name_grid.show (); return small_name_grid; @@ -560,7 +559,19 @@ public class PromptBox : FadableBox ArcticaGreeter.add_style_class (w); last_row += 1; - box_grid.attach (w, COL_ENTRIES_START, last_row, COL_ENTRIES_WIDTH, 1); + bool bErrorBelow = AGSettings.get_boolean (AGSettings.KEY_ERROR_BELOW_ENTRY); + + if (has_errors && bErrorBelow) + { + Gtk.Widget pChild = box_grid.get_child_at (COL_ENTRIES_START, last_row-1); + box_grid.remove (pChild); + box_grid.attach (w, COL_ENTRIES_START, last_row-1, COL_ENTRIES_WIDTH, 1); + box_grid.attach (pChild, COL_ENTRIES_START, last_row, COL_ENTRIES_WIDTH, 1); + } + else + { + box_grid.attach (w, COL_ENTRIES_START, last_row, COL_ENTRIES_WIDTH, 1); + } update_prompt_visibility (w); queue_resize (); @@ -568,16 +579,27 @@ public class PromptBox : FadableBox public void add_message (string text, bool is_error) { - var label = new FadingLabel (text); - label.set_line_wrap (true); + var label = new FadingLabel (""); var style_ctx = label.get_style_context(); try { var font_provider = new Gtk.CssProvider (); - var css = "* {font-family: %s; font-size: %dpt; color: white} - *.high_contrast {color: black; }".printf (font_family, font_size-1); + var css = ""; + + if (is_error) + { + string sColor = AGSettings.get_string (AGSettings.KEY_PROMPTBOX_COLOR_ERROR); + double fOpacity = AGSettings.get_double (AGSettings.KEY_PROMPTBOX_ERROR_BG_OPACITY); + css = "* {font-family: %s; font-size: %dpt; color: %s; background-color: rgba(255, 255, 255, %f); text-shadow: none;}".printf (font_family, font_size-1, sColor, fOpacity); + } + else + { + string sColor = AGSettings.get_string (AGSettings.KEY_PROMPTBOX_COLOR_NORMAL); + css = "* {font-family: %s; font-size: %dpt; color: %s;} *.high_contrast {color: black; }".printf (font_family, font_size-1, sColor); + } + font_provider.load_from_data (css, -1); style_ctx.add_provider (font_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -587,25 +609,42 @@ public class PromptBox : FadableBox debug ("Internal error loading font style (%s, %dpt): %s", font_family, font_size-1, e.message); } - if (is_error) { + label.xalign = 0.0f; + label.set_data<bool> ("prompt-box-is-error", is_error); - /* red */ - Gdk.RGBA color = { 1.0f, 1.0f, 1.0f, 1.0f }; - color.parse ("#820900"); + // Wrap the text if needed + ArcticaGreeter pGreeter = new ArcticaGreeter (); + Pango.Context pContext = label.get_pango_context (); + Pango.Layout pLayout = new Pango.Layout (pContext); + Pango.FontDescription pDescription = null; + Gtk.StateFlags nFlags = style_ctx.get_state (); + style_ctx.get (nFlags, "font", out pDescription, null); + pLayout.set_font_description (pDescription); + StringBuilder pBuilder = new StringBuilder (); + string[] lWords = text.split (" "); + string sLine = ""; + + foreach (string sWord in lWords) + { + string sTest = sLine == "" ? sWord : sLine + " " + sWord; + pLayout.set_text (sTest, -1); + int nWidth = 0; + pLayout.get_size (out nWidth, null); - /* - * Overriding the background color will look ugly, but at least - * always make the text readable, which is probably important for - * error messages. - * We probably want to find a better way of handling this. - */ - Gdk.RGBA bg_color = { 1.0f, 1.0f, 1.0f, 1.0f }; - label.override_background_color (Gtk.StateFlags.NORMAL, bg_color); - label.override_color (Gtk.StateFlags.NORMAL, color); + if (nWidth / Pango.SCALE > (pGreeter.grid_size * GreeterList.BOX_WIDTH - (int)(GreeterList.BORDER * pGreeter.scaling_factor_widgets * 8)) && sLine != "") + { + pBuilder.append (sLine + "\n"); + sLine = sWord; + } + else + { + sLine = sTest; + } } - label.xalign = 0.0f; - label.set_data<bool> ("prompt-box-is-error", is_error); + pBuilder.append (sLine); + label.set_text (pBuilder.str); + //~Wrap the text if needed attach_item (label); @@ -683,6 +722,31 @@ public class PromptBox : FadableBox } entry.respond.connect (entry_activate_cb); + Gtk.StyleContext pContext = entry.get_style_context (); + Gtk.CssProvider pProvider = new Gtk.CssProvider (); + string sKey = ""; + + if (has_errors) + { + sKey = AGSettings.KEY_PROMPTBOX_COLOR_ERROR; + } + else + { + sKey = AGSettings.KEY_PROMPTBOX_COLOR_NORMAL; + } + + string sColor = AGSettings.get_string (sKey); + string sCss = "entry {border: none; outline: none; box-shadow: 1px 0 %s inset, 0 1px %s inset, -1px 0 %s inset, 0 -1px %s inset;}".printf (sColor, sColor, sColor, sColor); + + try + { + pProvider.load_from_data (sCss, -1); + pContext.add_provider (pProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + } + catch (Error pError) + { + warning ("Panic: Error setting DashEntry border colour: %s", pError.message); + } attach_item (entry); diff --git a/src/settings.vala b/src/settings.vala index 1f046d4..2a89c38 100644 --- a/src/settings.vala +++ b/src/settings.vala @@ -3,7 +3,7 @@ * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015,2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> * Copyright (C) 2022 Mihai Moldovan <ionic@ionic.de> - * Copyright (C) 2023-2024 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -57,6 +57,7 @@ public class AGSettings : Object public const string KEY_PLAY_READY_SOUND = "play-ready-sound"; public const string KEY_INDICATORS = "indicators"; public const string KEY_HIDDEN_USERS = "hidden-users"; + public const string KEY_HIDDEN_GROUPS = "hidden-groups"; public const string KEY_USER_FILTER= "user-filter"; public const string KEY_USER_FILTER_ALWAYS = "user-filter-always"; public const string KEY_GROUP_FILTER = "group-filter"; @@ -90,6 +91,19 @@ public class AGSettings : Object public const string KEY_MAGNIFIER = "magnifier"; public const string KEY_CONTENT_ALIGN = "content-align"; public const string KEY_MAGNIFIER_POSITION = "magnifier-position"; + public const string KEY_DASHBOX_BGCOLOR = "dash-box-bgcolor"; + public const string KEY_DASHBOX_OPACITY = "dash-box-opacity"; + public const string KEY_PROMPTBOX_COLOR_NORMAL = "prompt-box-color-normal"; + public const string KEY_PROMPTBOX_COLOR_ERROR = "prompt-box-color-error"; + public const string KEY_PROMPTBOX_ERROR_BG_OPACITY = "prompt-box-error-bg-opacity"; + public const string KEY_LOGO_POSITION = "logo-position"; + public const string KEY_LOGO_OFFSET_HORIZONTAL = "logo-offset-horizontal"; + public const string KEY_LOGO_OFFSET_VERTICAL = "logo-offset-vertical"; + public const string KEY_ERROR_BELOW_ENTRY = "error-below-entry"; + public const string KEY_MENUBAR_BGCOLOR = "menubar-bgcolor"; + public const string KEY_BACKGROUND_POSITION = "background-position"; + public const string KEY_MENUBAR_SHADOW_COLOR = "menubar-shadow-color"; + public const string KEY_MENUBAR_SHADOW_ALPHA = "menubar-shadow-alpha"; public static bool get_boolean (string key) { @@ -97,19 +111,6 @@ public class AGSettings : Object return gsettings.get_boolean (key); } - /* LP: 1006497 - utility function to make sure we have the key before trying to read it (which will segfault if the key isn't there) */ - public static bool safe_get_boolean (string key, bool default) - { - var gsettings = new Settings (SCHEMA); - string[] keys = gsettings.list_keys (); - foreach (var k in keys) - if (k == key) - return gsettings.get_boolean (key); - - /* key not in child list */ - return default; - } - public static int get_integer (string key) { var gsettings = new Settings (SCHEMA); diff --git a/src/shutdown-dialog.vala b/src/shutdown-dialog.vala index d243188..fd568d7 100644 --- a/src/shutdown-dialog.vala +++ b/src/shutdown-dialog.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2013 Canonical Ltd * Copyright (C) 2015,2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -306,7 +306,8 @@ public class ShutdownDialog : Gtk.Fixed var focused = pWindow.get_focus (); if ((null != focused) && (focused is DialogButton)) { - (focused as DialogButton).clicked (); + DialogButton pButton = (DialogButton) focused; + pButton.clicked (); } --default_action_time_supplemental; @@ -695,7 +696,7 @@ private class DialogButton : Gtk.Button try { var font_provider = new Gtk.CssProvider (); - var css = "* {font-family: %s; font-size: %dpt;}".printf(font_family, font_size); + var css = "* {color: #FFFFFF; font-family: %s; font-size: %dpt;}".printf(font_family, font_size); font_provider.load_from_data (css, -1); style_ctx.add_provider (font_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -705,9 +706,6 @@ private class DialogButton : Gtk.Button debug ("Internal error loading font style (%s, %dpt): %s", font_family, font_size, e.message); } - l.override_color (Gtk.StateFlags.NORMAL, { 1.0f, 1.0f, 1.0f, 0.0f }); - l.override_color (Gtk.StateFlags.FOCUSED, { 1.0f, 1.0f, 1.0f, 1.0f }); - l.override_color (Gtk.StateFlags.ACTIVE, { 1.0f, 1.0f, 1.0f, 1.0f }); this.get_accessible ().set_name (l.get_text ()); } diff --git a/src/user-list.vala b/src/user-list.vala index 3936768..3abfb06 100644 --- a/src/user-list.vala +++ b/src/user-list.vala @@ -87,10 +87,28 @@ public class UserList : GreeterList } var hidden_users = AGSettings.get_strv (AGSettings.KEY_HIDDEN_USERS); + string[] lHiddenGroups = AGSettings.get_strv (AGSettings.KEY_HIDDEN_GROUPS); + if (!value) { foreach (var username in hidden_users) remove_entry (username); + + foreach (string sGroup in lHiddenGroups) + { + LightDM.UserList lUsers = LightDM.UserList.get_instance (); + + foreach (LightDM.User pUser in lUsers.users) + { + bool bInGroup = in_group (sGroup, pUser.name); + + if (bInGroup) + { + remove_entry (pUser.name); + } + } + } + return; } @@ -1126,6 +1144,18 @@ public class UserList : GreeterList foreach (var username in hidden_users) if (username == user.name) return; + + string[] lHiddenGroups = AGSettings.get_strv (AGSettings.KEY_HIDDEN_GROUPS); + + foreach (string sGroup in lHiddenGroups) + { + bool bInGroup = in_group (sGroup, user.name); + + if (bInGroup) + { + return; + } + } } var user_filter = AGSettings.get_strv (AGSettings.KEY_USER_FILTER); |