Merge lp:~fabiozaramella/slingshot/add-logout-lock-actions into lp:~elementary-pantheon/slingshot/trunk

Proposed by Fabio Zaramella
Status: Merged
Approved by: Danielle Foré
Approved revision: 730
Merged at revision: 729
Proposed branch: lp:~fabiozaramella/slingshot/add-logout-lock-actions
Merge into: lp:~elementary-pantheon/slingshot/trunk
Diff against target: 557 lines (+198/-139)
2 files modified
lib/synapse-plugins/system-managment.vala (+90/-49)
po/slingshot.pot (+108/-90)
To merge this branch: bzr merge lp:~fabiozaramella/slingshot/add-logout-lock-actions
Reviewer Review Type Date Requested Status
Danielle Foré Approve
Review via email: mp+316022@code.launchpad.net

Commit message

Add lock and logout actions

Description of the change

This branch adds logout and lock actions.

To post a comment you must log in.
Revision history for this message
Danielle Foré (danrabbit) wrote :

Instead of "Lock your computer", we should probably use device-agnostic terms and avoid questions about formal/informal "you" in translations with "Lock this device".

Revision history for this message
Danielle Foré (danrabbit) wrote :

I can confirm that both the lock and logout functions work as expected. Nice work :)

review: Approve
730. By Fabio Zaramella

Use correct terminology

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/synapse-plugins/system-managment.vala'
--- lib/synapse-plugins/system-managment.vala 2017-01-26 19:54:30 +0000
+++ lib/synapse-plugins/system-managment.vala 2017-01-31 18:58:37 +0000
@@ -45,6 +45,23 @@
45 public abstract async bool can_stop () throws IOError;45 public abstract async bool can_stop () throws IOError;
46 }46 }
4747
48 [DBus (name = "org.freedesktop.ScreenSaver")]
49 public interface LockObject : Object {
50 public const string UNIQUE_NAME = "org.freedesktop.ScreenSaver";
51 public const string OBJECT_PATH = "/org/freedesktop/ScreenSaver";
52
53 public abstract void lock () throws IOError;
54 public abstract bool get_active () throws IOError;
55 }
56
57 [DBus (name = "org.freedesktop.login1.User")]
58 interface LogOutObject : Object {
59 public const string UNIQUE_NAME = "org.freedesktop.login1";
60 public const string OBJECT_PATH = "/org/freedesktop/login1/user/self";
61
62 public abstract void terminate () throws IOError;
63 }
64
48 [DBus (name = "org.freedesktop.login1.Manager")]65 [DBus (name = "org.freedesktop.login1.Manager")]
49 public interface SystemdObject : Object {66 public interface SystemdObject : Object {
50 public const string UNIQUE_NAME = "org.freedesktop.login1";67 public const string UNIQUE_NAME = "org.freedesktop.login1";
@@ -85,6 +102,60 @@
85 }102 }
86 }103 }
87104
105 private class LockAction : SystemAction {
106 public LockAction () {
107 Object (title: _("Lock"), match_type: MatchType.ACTION,
108 description: _("Lock this device"),
109 icon_name: "system-lock-screen", has_thumbnail: false);
110 }
111
112 public override bool action_allowed () {
113 return true;
114 }
115
116 private async void do_lock () {
117 try {
118 LockObject dbus_interface = Bus.get_proxy_sync (BusType.SESSION, LockObject.UNIQUE_NAME, LockObject.OBJECT_PATH);
119
120 dbus_interface.lock ();
121 return;
122 } catch (IOError err) {
123 warning ("%s", err.message);
124 }
125 }
126
127 public override void do_action () {
128 do_lock.begin ();
129 }
130 }
131
132 private class LogOutAction : SystemAction {
133 public LogOutAction () {
134 Object (title: _("Log Out"), match_type: MatchType.ACTION,
135 description: _("Close all open applications and quit"),
136 icon_name: "system-log-out", has_thumbnail: false);
137 }
138
139 public override bool action_allowed () {
140 return true;
141 }
142
143 private async void do_log_out () {
144 try {
145 LogOutObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, LogOutObject.UNIQUE_NAME, LogOutObject.OBJECT_PATH);
146
147 dbus_interface.terminate ();
148 return;
149 } catch (IOError err) {
150 warning ("%s", err.message);
151 }
152 }
153
154 public override void do_action () {
155 do_log_out.begin ();
156 }
157 }
158
88 private class SuspendAction : SystemAction {159 private class SuspendAction : SystemAction {
89 public SuspendAction () {160 public SuspendAction () {
90 Object (title: _("Suspend"), match_type: MatchType.ACTION,161 Object (title: _("Suspend"), match_type: MatchType.ACTION,
@@ -98,9 +169,7 @@
98169
99 private async void check_allowed (){170 private async void check_allowed (){
100 try {171 try {
101 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,172 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
102 SystemdObject.UNIQUE_NAME,
103 SystemdObject.OBJECT_PATH);
104173
105 allowed = (dbus_interface.can_suspend () == "yes");174 allowed = (dbus_interface.can_suspend () == "yes");
106 return;175 return;
@@ -110,9 +179,7 @@
110 }179 }
111180
112 try {181 try {
113 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,182 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, UPowerObject.UNIQUE_NAME, UPowerObject.OBJECT_PATH);
114 UPowerObject.UNIQUE_NAME,
115 UPowerObject.OBJECT_PATH);
116183
117 allowed = yield dbus_interface.suspend_allowed ();184 allowed = yield dbus_interface.suspend_allowed ();
118 } catch (IOError err) {185 } catch (IOError err) {
@@ -129,9 +196,7 @@
129196
130 private async void do_suspend () {197 private async void do_suspend () {
131 try {198 try {
132 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,199 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
133 SystemdObject.UNIQUE_NAME,
134 SystemdObject.OBJECT_PATH);
135200
136 dbus_interface.suspend (true);201 dbus_interface.suspend (true);
137 return;202 return;
@@ -140,9 +205,7 @@
140 }205 }
141206
142 try {207 try {
143 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,208 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, UPowerObject.UNIQUE_NAME, UPowerObject.OBJECT_PATH);
144 UPowerObject.UNIQUE_NAME,
145 UPowerObject.OBJECT_PATH);
146209
147 try {210 try {
148 yield dbus_interface.about_to_sleep ();211 yield dbus_interface.about_to_sleep ();
@@ -177,9 +240,7 @@
177240
178 private async void check_allowed () {241 private async void check_allowed () {
179 try {242 try {
180 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,243 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
181 SystemdObject.UNIQUE_NAME,
182 SystemdObject.OBJECT_PATH);
183244
184 allowed = (dbus_interface.can_hibernate () == "yes");245 allowed = (dbus_interface.can_hibernate () == "yes");
185 return;246 return;
@@ -189,9 +250,7 @@
189 }250 }
190251
191 try {252 try {
192 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,253 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, UPowerObject.UNIQUE_NAME, UPowerObject.OBJECT_PATH);
193 UPowerObject.UNIQUE_NAME,
194 UPowerObject.OBJECT_PATH);
195254
196 allowed = yield dbus_interface.hibernate_allowed ();255 allowed = yield dbus_interface.hibernate_allowed ();
197 } catch (IOError err) {256 } catch (IOError err) {
@@ -208,9 +267,7 @@
208267
209 private async void do_hibernate () {268 private async void do_hibernate () {
210 try {269 try {
211 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,270 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
212 SystemdObject.UNIQUE_NAME,
213 SystemdObject.OBJECT_PATH);
214271
215 dbus_interface.hibernate (true);272 dbus_interface.hibernate (true);
216 return;273 return;
@@ -219,9 +276,7 @@
219 }276 }
220277
221 try {278 try {
222 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,279 UPowerObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, UPowerObject.UNIQUE_NAME, UPowerObject.OBJECT_PATH);
223 UPowerObject.UNIQUE_NAME,
224 UPowerObject.OBJECT_PATH);
225280
226 try {281 try {
227 yield dbus_interface.about_to_sleep ();282 yield dbus_interface.about_to_sleep ();
@@ -255,9 +310,7 @@
255310
256 private async void check_allowed () {311 private async void check_allowed () {
257 try {312 try {
258 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,313 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
259 SystemdObject.UNIQUE_NAME,
260 SystemdObject.OBJECT_PATH);
261314
262 allowed = (dbus_interface.can_power_off () == "yes");315 allowed = (dbus_interface.can_power_off () == "yes");
263 return;316 return;
@@ -267,9 +320,7 @@
267 }320 }
268321
269 try {322 try {
270 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,323 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, ConsoleKitObject.UNIQUE_NAME, ConsoleKitObject.OBJECT_PATH);
271 ConsoleKitObject.UNIQUE_NAME,
272 ConsoleKitObject.OBJECT_PATH);
273324
274 allowed = yield dbus_interface.can_stop ();325 allowed = yield dbus_interface.can_stop ();
275 } catch (IOError err) {326 } catch (IOError err) {
@@ -286,9 +337,7 @@
286337
287 public override void do_action () {338 public override void do_action () {
288 try {339 try {
289 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,340 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
290 SystemdObject.UNIQUE_NAME,
291 SystemdObject.OBJECT_PATH);
292341
293 dbus_interface.power_off (true);342 dbus_interface.power_off (true);
294 return;343 return;
@@ -297,9 +346,7 @@
297 }346 }
298347
299 try {348 try {
300 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,349 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, ConsoleKitObject.UNIQUE_NAME, ConsoleKitObject.OBJECT_PATH);
301 ConsoleKitObject.UNIQUE_NAME,
302 ConsoleKitObject.OBJECT_PATH);
303350
304 dbus_interface.stop ();351 dbus_interface.stop ();
305 } catch (IOError err) {352 } catch (IOError err) {
@@ -321,9 +368,7 @@
321368
322 private async void check_allowed () {369 private async void check_allowed () {
323 try {370 try {
324 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,371 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
325 SystemdObject.UNIQUE_NAME,
326 SystemdObject.OBJECT_PATH);
327372
328 allowed = (dbus_interface.can_reboot () == "yes");373 allowed = (dbus_interface.can_reboot () == "yes");
329 return;374 return;
@@ -333,9 +378,7 @@
333 }378 }
334379
335 try {380 try {
336 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,381 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, ConsoleKitObject.UNIQUE_NAME, ConsoleKitObject.OBJECT_PATH);
337 ConsoleKitObject.UNIQUE_NAME,
338 ConsoleKitObject.OBJECT_PATH);
339382
340 allowed = yield dbus_interface.can_restart ();383 allowed = yield dbus_interface.can_restart ();
341 } catch (IOError err) {384 } catch (IOError err) {
@@ -352,9 +395,7 @@
352395
353 public override void do_action () {396 public override void do_action () {
354 try {397 try {
355 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,398 SystemdObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, SystemdObject.UNIQUE_NAME, SystemdObject.OBJECT_PATH);
356 SystemdObject.UNIQUE_NAME,
357 SystemdObject.OBJECT_PATH);
358399
359 dbus_interface.reboot (true);400 dbus_interface.reboot (true);
360 return;401 return;
@@ -363,9 +404,7 @@
363 }404 }
364405
365 try {406 try {
366 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM,407 ConsoleKitObject dbus_interface = Bus.get_proxy_sync (BusType.SYSTEM, ConsoleKitObject.UNIQUE_NAME, ConsoleKitObject.OBJECT_PATH);
367 ConsoleKitObject.UNIQUE_NAME,
368 ConsoleKitObject.OBJECT_PATH);
369408
370 dbus_interface.restart ();409 dbus_interface.restart ();
371 } catch (IOError err) {410 } catch (IOError err) {
@@ -377,7 +416,7 @@
377 static void register_plugin () {416 static void register_plugin () {
378 DataSink.PluginRegistry.get_default ().register_plugin (typeof (SystemManagementPlugin),417 DataSink.PluginRegistry.get_default ().register_plugin (typeof (SystemManagementPlugin),
379 "System Management",418 "System Management",
380 _("Suspend, hibernate, restart or shutdown your computer."),419 _("Lock the session or Log Out from it. Suspend, hibernate, restart or shutdown your computer."),
381 "system-restart",420 "system-restart",
382 register_plugin,421 register_plugin,
383 DBusService.get_default ().service_is_available (SystemdObject.UNIQUE_NAME) ||422 DBusService.get_default ().service_is_available (SystemdObject.UNIQUE_NAME) ||
@@ -393,6 +432,8 @@
393432
394 construct {433 construct {
395 actions = new Gee.LinkedList<SystemAction> ();434 actions = new Gee.LinkedList<SystemAction> ();
435 actions.add (new LockAction ());
436 actions.add (new LogOutAction ());
396 actions.add (new SuspendAction ());437 actions.add (new SuspendAction ());
397 actions.add (new HibernateAction ());438 actions.add (new HibernateAction ());
398 actions.add (new ShutdownAction ());439 actions.add (new ShutdownAction ());
399440
=== modified file 'po/slingshot.pot'
--- po/slingshot.pot 2017-01-24 20:34:49 +0000
+++ po/slingshot.pot 2017-01-31 18:58:37 +0000
@@ -8,7 +8,7 @@
8msgstr ""8msgstr ""
9"Project-Id-Version: PACKAGE VERSION\n"9"Project-Id-Version: PACKAGE VERSION\n"
10"Report-Msgid-Bugs-To: \n"10"Report-Msgid-Bugs-To: \n"
11"POT-Creation-Date: 2017-01-24 21:34+0100\n"11"POT-Creation-Date: 2017-01-31 19:56+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,18 @@
17"Content-Type: text/plain; charset=UTF-8\n"17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"18"Content-Transfer-Encoding: 8bit\n"
1919
20#: ../src/Slingshot.vala:31
21msgid "Slingshot"
22msgstr ""
23
24#: ../src/Slingshot.vala:32
25msgid "The app-menu indicator"
26msgstr ""
27
28#: ../src/Slingshot.vala:67 ../src/Widgets/SearchView.vala:222
29msgid "Applications"
30msgstr ""
31
20#: ../src/SlingshotView.vala:16132#: ../src/SlingshotView.vala:161
21msgid "View as Grid"33msgid "View as Grid"
22msgstr ""34msgstr ""
@@ -37,6 +49,14 @@
37msgid "Add to _Dock"49msgid "Add to _Dock"
38msgstr ""50msgstr ""
3951
52#: ../src/Widgets/CategoryView.vala:27
53msgid "All Applications"
54msgstr ""
55
56#: ../src/Widgets/CategoryView.vala:28
57msgid "Create a new Filter"
58msgstr ""
59
40#: ../src/Widgets/SearchView.vala:11060#: ../src/Widgets/SearchView.vala:110
41msgid "Try changing search terms."61msgid "Try changing search terms."
42msgstr ""62msgstr ""
@@ -49,10 +69,6 @@
49msgid "Text"69msgid "Text"
50msgstr ""70msgstr ""
5171
52#: ../src/Widgets/SearchView.vala:222 ../src/Slingshot.vala:67
53msgid "Applications"
54msgstr ""
55
56#: ../src/Widgets/SearchView.vala:22572#: ../src/Widgets/SearchView.vala:225
57msgid "Files"73msgid "Files"
58msgstr ""74msgstr ""
@@ -85,22 +101,6 @@
85msgid "Other"101msgid "Other"
86msgstr ""102msgstr ""
87103
88#: ../src/Widgets/CategoryView.vala:27
89msgid "All Applications"
90msgstr ""
91
92#: ../src/Widgets/CategoryView.vala:28
93msgid "Create a new Filter"
94msgstr ""
95
96#: ../src/Slingshot.vala:31
97msgid "Slingshot"
98msgstr ""
99
100#: ../src/Slingshot.vala:32
101msgid "The app-menu indicator"
102msgstr ""
103
104#: ../src/Backend/App.vala:91104#: ../src/Backend/App.vala:91
105msgid "Run this command…"105msgid "Run this command…"
106msgstr ""106msgstr ""
@@ -145,106 +145,124 @@
145msgid "Copy selection to clipboard"145msgid "Copy selection to clipboard"
146msgstr ""146msgstr ""
147147
148#: ../lib/synapse-plugins/link-plugin.vala:46148#: ../lib/synapse-plugins/desktop-file-plugin.vala:127
149msgid "Open %s in default web browser"149msgid "Search for and run applications on your computer."
150msgstr ""150msgstr ""
151151
152#: ../lib/synapse-plugins/link-plugin.vala:51152#: ../lib/synapse-plugins/desktop-file-plugin.vala:332
153msgid "Open %s in %s"153msgid "Open with %s"
154msgstr ""154msgstr ""
155155
156#: ../lib/synapse-plugins/link-plugin.vala:57156#: ../lib/synapse-plugins/desktop-file-plugin.vala:334
157msgid "Open this link in default browser"157msgid "Opens current selection using %s"
158msgstr ""158msgstr ""
159159
160#: ../lib/synapse-plugins/link-plugin.vala:79160#: ../lib/synapse-plugins/calculator-plugin.vala:51
161msgid "Link"161msgid "Calculator"
162msgstr ""162msgstr ""
163163
164#: ../lib/synapse-plugins/link-plugin.vala:80164#: ../lib/synapse-plugins/calculator-plugin.vala:52
165msgid "Open link in default browser"165msgid "Calculate basic expressions."
166msgstr ""166msgstr ""
167167
168#: ../lib/synapse-plugins/system-managment.vala:89168#: ../lib/synapse-plugins/calculator-plugin.vala:56
169msgid "bc is not installed"
170msgstr ""
171
172#: ../lib/synapse-plugins/command-plugin.vala:47
173msgid "Execute '%s'"
174msgstr ""
175
176#: ../lib/synapse-plugins/command-plugin.vala:47
177msgid "Run command"
178msgstr ""
179
180#: ../lib/synapse-plugins/command-plugin.vala:63
181msgid "Find and execute arbitrary commands."
182msgstr ""
183
184#: ../lib/synapse-plugins/system-managment.vala:107
185msgid "Lock"
186msgstr ""
187
188#: ../lib/synapse-plugins/system-managment.vala:108
189msgid "Lock this device"
190msgstr ""
191
192#: ../lib/synapse-plugins/system-managment.vala:134
193msgid "Log Out"
194msgstr ""
195
196#: ../lib/synapse-plugins/system-managment.vala:135
197msgid "Close all open applications and quit"
198msgstr ""
199
200#: ../lib/synapse-plugins/system-managment.vala:161
169msgid "Suspend"201msgid "Suspend"
170msgstr ""202msgstr ""
171203
172#: ../lib/synapse-plugins/system-managment.vala:90204#: ../lib/synapse-plugins/system-managment.vala:162
173msgid "Put your computer into suspend mode"205msgid "Put your computer into suspend mode"
174msgstr ""206msgstr ""
175207
176#: ../lib/synapse-plugins/system-managment.vala:168208#: ../lib/synapse-plugins/system-managment.vala:232
177msgid "Hibernate"209msgid "Hibernate"
178msgstr ""210msgstr ""
179211
180#: ../lib/synapse-plugins/system-managment.vala:169212#: ../lib/synapse-plugins/system-managment.vala:233
181msgid "Put your computer into hibernation mode"213msgid "Put your computer into hibernation mode"
182msgstr ""214msgstr ""
183215
184#: ../lib/synapse-plugins/system-managment.vala:246216#: ../lib/synapse-plugins/system-managment.vala:302
185msgid "Shut Down"217msgid "Shut Down"
186msgstr ""218msgstr ""
187219
188#: ../lib/synapse-plugins/system-managment.vala:247220#: ../lib/synapse-plugins/system-managment.vala:303
189msgid "Turn your computer off"221msgid "Turn your computer off"
190msgstr ""222msgstr ""
191223
192#: ../lib/synapse-plugins/system-managment.vala:312224#: ../lib/synapse-plugins/system-managment.vala:360
193msgid "Restart"225msgid "Restart"
194msgstr ""226msgstr ""
195227
196#: ../lib/synapse-plugins/system-managment.vala:313228#: ../lib/synapse-plugins/system-managment.vala:361
197msgid "Restart your computer"229msgid "Restart your computer"
198msgstr ""230msgstr ""
199231
200#: ../lib/synapse-plugins/system-managment.vala:379232#: ../lib/synapse-plugins/system-managment.vala:419
201msgid "Suspend, hibernate, restart or shutdown your computer."233msgid ""
234"Lock the session or Log Out from it. Suspend, hibernate, restart or shutdown "
235"your computer."
202msgstr ""236msgstr ""
203237
204#: ../lib/synapse-plugins/system-managment.vala:384238#: ../lib/synapse-plugins/system-managment.vala:424
205msgid "ConsoleKit wasn't found"239msgid "ConsoleKit wasn't found"
206msgstr ""240msgstr ""
207241
208#: ../lib/synapse-plugins/calculator-plugin.vala:50242#: ../lib/synapse-plugins/link-plugin.vala:47
209msgid "Calculator"243msgid "Open %s in default web browser"
210msgstr ""244msgstr ""
211245
212#: ../lib/synapse-plugins/calculator-plugin.vala:51246#: ../lib/synapse-plugins/link-plugin.vala:52
213msgid "Calculate basic expressions."247msgid "Open %s in %s"
214msgstr ""248msgstr ""
215249
216#: ../lib/synapse-plugins/calculator-plugin.vala:55250#: ../lib/synapse-plugins/link-plugin.vala:58
217msgid "bc is not installed"251msgid "Open this link in default browser"
218msgstr ""252msgstr ""
219253
220#: ../lib/synapse-plugins/desktop-file-plugin.vala:126254#: ../lib/synapse-plugins/link-plugin.vala:80
221msgid "Search for and run applications on your computer."255msgid "Link"
222msgstr ""256msgstr ""
223257
224#: ../lib/synapse-plugins/desktop-file-plugin.vala:331258#: ../lib/synapse-plugins/link-plugin.vala:81
225msgid "Open with %s"259msgid "Open link in default browser"
226msgstr ""260msgstr ""
227261
228#: ../lib/synapse-plugins/desktop-file-plugin.vala:333262#: ../lib/synapse-plugins/switchboard-plugin.vala:46
229msgid "Opens current selection using %s"
230msgstr ""
231
232#: ../lib/synapse-plugins/switchboard-plugin.vala:45
233msgid "Open %s settings"263msgid "Open %s settings"
234msgstr ""264msgstr ""
235265
236#: ../lib/synapse-plugins/switchboard-plugin.vala:61266#: ../lib/synapse-plugins/switchboard-plugin.vala:62
237msgid "Find switchboard plugs and open them."267msgid "Find switchboard plugs and open them."
238msgstr ""268msgstr ""
239
240#: ../lib/synapse-plugins/command-plugin.vala:46
241msgid "Execute '%s'"
242msgstr ""
243
244#: ../lib/synapse-plugins/command-plugin.vala:46
245msgid "Run command"
246msgstr ""
247
248#: ../lib/synapse-plugins/command-plugin.vala:62
249msgid "Find and execute arbitrary commands."
250msgstr ""

Subscribers

People subscribed via source and target branches