summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/themes/default.edc15
-rw-r--r--data/themes/nord.edc5
-rw-r--r--data/themes/papercolor.edc5
-rw-r--r--data/themes/solarized.edc5
-rw-r--r--data/themes/solarized_light.edc5
-rw-r--r--meson.build2
-rw-r--r--po/it.po225
-rw-r--r--po/terminology.pot422
-rw-r--r--src/bin/config.c36
-rw-r--r--src/bin/config.h10
-rw-r--r--src/bin/main.c21
-rw-r--r--src/bin/media.c1
-rw-r--r--src/bin/options_background.c10
-rw-r--r--src/bin/options_behavior.c25
-rw-r--r--src/bin/options_colors.c4
-rw-r--r--src/bin/options_elm.c72
-rw-r--r--src/bin/options_font.c6
-rw-r--r--src/bin/options_helpers.c16
-rw-r--r--src/bin/options_keys.c4
-rw-r--r--src/bin/options_theme.c2
-rw-r--r--src/bin/options_video.c6
-rw-r--r--src/bin/termiolink.c55
-rw-r--r--src/bin/termiolink.h5
-rw-r--r--src/bin/termpty.c2
-rw-r--r--src/bin/termptyesc.c5
-rw-r--r--src/bin/termptyext.c126
-rw-r--r--src/bin/utils.c62
-rw-r--r--src/bin/utils.h5
-rw-r--r--src/bin/win.c274
-rw-r--r--src/bin/win.h1
-rwxr-xr-xtests/link_detection.sh217
-rwxr-xr-xtests/selection_box_to_word.sh2
-rw-r--r--tests/tests.results3
33 files changed, 1194 insertions, 460 deletions
diff --git a/data/themes/default.edc b/data/themes/default.edc
index 45d6082..bd30d2e 100644
--- a/data/themes/default.edc
+++ b/data/themes/default.edc
@@ -1,6 +1,9 @@
1#ifndef NO_COLORS 1#ifndef NO_COLORS
2color_classes { 2color_classes {
3#define BG_COLOR 32 32 32 255 3#define BG_COLOR_NO_ALPHA 32 32 32
4#define BG_COLOR BG_COLOR_NO_ALPHA 255
5#define FG_COLOR_NO_ALPHA 170 170 170
6#define FG_COLOR FG_COLOR_NO_ALPHA 255
4#include "default_colors.in.edc" 7#include "default_colors.in.edc"
5} 8}
6#endif 9#endif
@@ -1392,8 +1395,8 @@ collections {
1392 scale: 1; 1395 scale: 1;
1393 effect: SOFT_SHADOW BOTTOM; 1396 effect: SOFT_SHADOW BOTTOM;
1394 description { state: "default" 0.0; 1397 description { state: "default" 0.0;
1395 color: 255 255 255 255; 1398 color: FG_COLOR_NO_ALPHA 255;
1396 color3: 0 0 0 18; 1399 color3: BG_COLOR_NO_ALPHA 18;
1397 text { font: "Sans:style=Bold"; size: 10; 1400 text { font: "Sans:style=Bold"; size: 10;
1398 align: 0.5 0.5; 1401 align: 0.5 0.5;
1399 min: 0 1; 1402 min: 0 1;
@@ -2113,15 +2116,15 @@ collections {
2113 } 2116 }
2114 part { name: "terminology.title"; type: TEXT; mouse_events: 0; 2117 part { name: "terminology.title"; type: TEXT; mouse_events: 0;
2115 scale: 1; 2118 scale: 1;
2116 effect: SHADOW BOTTOM; 2119 effect: GLOW;
2117 description { state: "default" 0.0; 2120 description { state: "default" 0.0;
2118 text { font: "Sans:style=Bold"; size: 10; 2121 text { font: "Sans:style=Bold"; size: 10;
2119 align: 0.5 0.5; 2122 align: 0.5 0.5;
2120 min: 0 1; 2123 min: 0 1;
2121 } 2124 }
2122 align: 0.5 0.5; 2125 align: 0.5 0.5;
2123 color: 0 0 0 255; 2126 color: 180 180 180 255;
2124 color3: 255 255 255 25; 2127 color3: 0 0 0 18;
2125 rel1.to: "tab_bevel_top2"; 2128 rel1.to: "tab_bevel_top2";
2126 rel2.to: "tab_bevel_top2"; 2129 rel2.to: "tab_bevel_top2";
2127 } 2130 }
diff --git a/data/themes/nord.edc b/data/themes/nord.edc
index b290b0a..6faaee0 100644
--- a/data/themes/nord.edc
+++ b/data/themes/nord.edc
@@ -39,7 +39,10 @@
39#define ANSI15 nord6 39#define ANSI15 nord6
40 40
41#define COL_DEF nord4 41#define COL_DEF nord4
42#define BG_COLOR nord0 42#define BG_COLOR_NO_ALPHA 46 52 64
43#define BG_COLOR BG_COLOR_NO_ALPHA 255
44#define FG_COLOR_NO_ALPHA 216 222 233
45#define FG_COLOR FG_COLOR_NO_ALPHA 255
43#define NO_COLORS 1 46#define NO_COLORS 1
44 47
45color_classes { 48color_classes {
diff --git a/data/themes/papercolor.edc b/data/themes/papercolor.edc
index ddda7c2..eedd998 100644
--- a/data/themes/papercolor.edc
+++ b/data/themes/papercolor.edc
@@ -19,7 +19,10 @@
19#define ANSI15 251 251 251 255 /* #FBFBFB */ 19#define ANSI15 251 251 251 255 /* #FBFBFB */
20 20
21#define COL_DEF 68 68 68 255 /* #444444 */ 21#define COL_DEF 68 68 68 255 /* #444444 */
22#define BG_COLOR 238 238 238 255 /* #EEEEEE */ 22#define BG_COLOR_NO_ALPHA 238 238 238 /* #EEEEEE */
23#define BG_COLOR BG_COLOR_NO_ALPHA 255
24#define FG_COLOR_NO_ALPHA 68 68 68 /* #444444 */
25#define FG_COLOR FG_COLOR_NO_ALPHA 255
23#define NO_COLORS 1 26#define NO_COLORS 1
24 27
25color_classes { 28color_classes {
diff --git a/data/themes/solarized.edc b/data/themes/solarized.edc
index 51aba64..faf3b46 100644
--- a/data/themes/solarized.edc
+++ b/data/themes/solarized.edc
@@ -15,7 +15,10 @@
15#define S_base2 238 232 213 255 15#define S_base2 238 232 213 255
16#define S_base3 253 246 227 255 16#define S_base3 253 246 227 255
17 17
18#define BG_COLOR S_base03 18#define BG_COLOR_NO_ALPHA 0 43 54
19#define BG_COLOR BG_COLOR_NO_ALPHA 255
20#define FG_COLOR_NO_ALPHA 253 246 227
21#define FG_COLOR FG_COLOR_NO_ALPHA 255
19#define NO_COLORS 1 22#define NO_COLORS 1
20 23
21color_classes { 24color_classes {
diff --git a/data/themes/solarized_light.edc b/data/themes/solarized_light.edc
index 71fd1a4..1ac95e4 100644
--- a/data/themes/solarized_light.edc
+++ b/data/themes/solarized_light.edc
@@ -15,7 +15,10 @@
15#define S_base2 7 54 66 255 15#define S_base2 7 54 66 255
16#define S_base3 0 43 54 255 16#define S_base3 0 43 54 255
17 17
18#define BG_COLOR S_base03 18#define BG_COLOR_NO_ALPHA 253 246 227
19#define BG_COLOR BG_COLOR_NO_ALPHA 255
20#define FG_COLOR_NO_ALPHA 0 43 54
21#define FG_COLOR FG_COLOR_NO_ALPHA 255
19#define NO_COLORS 1 22#define NO_COLORS 1
20 23
21color_classes { 24color_classes {
diff --git a/meson.build b/meson.build
index 335524f..2f52f5a 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
1project('terminology', 'c', 1project('terminology', 'c',
2 version: '1.5.0', 2 version: '1.5.99',
3 default_options: ['buildtype=plain', 'c_std=gnu99'], 3 default_options: ['buildtype=plain', 'c_std=gnu99'],
4 license: 'BSD') 4 license: 'BSD')
5 5
diff --git a/po/it.po b/po/it.po
index f88c79d..e020301 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,8 +7,8 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: terminology 0.6.99\n" 8"Project-Id-Version: terminology 0.6.99\n"
9"Report-Msgid-Bugs-To: \n" 9"Report-Msgid-Bugs-To: \n"
10"POT-Creation-Date: 2019-06-06 20:25+0200\n" 10"POT-Creation-Date: 2019-08-24 14:12+0200\n"
11"PO-Revision-Date: 2019-06-06 20:29+0200\n" 11"PO-Revision-Date: 2019-08-25 09:53+0200\n"
12"Last-Translator: Massimo Maiurana <maiurana@gmail.com>\n" 12"Last-Translator: Massimo Maiurana <maiurana@gmail.com>\n"
13"Language-Team: [Language]\n" 13"Language-Team: [Language]\n"
14"Language: it\n" 14"Language: it\n"
@@ -36,11 +36,11 @@ msgstr "Dividi O"
36msgid "Miniview" 36msgid "Miniview"
37msgstr "Miniature schede" 37msgstr "Miniature schede"
38 38
39#: src/bin/controls.c:374 src/bin/win.c:4359 39#: src/bin/controls.c:374 src/bin/win.c:4429
40msgid "Set title" 40msgid "Set title"
41msgstr "Imposta titolo" 41msgstr "Imposta titolo"
42 42
43#: src/bin/controls.c:385 src/bin/termio.c:1194 src/bin/termio.c:2563 43#: src/bin/controls.c:385 src/bin/termio.c:1195 src/bin/termio.c:2564
44msgid "Copy" 44msgid "Copy"
45msgstr "Copia" 45msgstr "Copia"
46 46
@@ -76,187 +76,187 @@ msgstr ""
76"<br><br>%s<br><br>Distribuito nei termini della licenza '2-clause BSD' " 76"<br><br>%s<br><br>Distribuito nei termini della licenza '2-clause BSD' "
77"descritta sotto:<br><br>%s" 77"descritta sotto:<br><br>%s"
78 78
79#: src/bin/keyin.c:655 79#: src/bin/keyin.c:653
80msgid "Scrolling" 80msgid "Scrolling"
81msgstr "Scrolling" 81msgstr "Scrolling"
82 82
83#: src/bin/keyin.c:656 83#: src/bin/keyin.c:654
84msgid "Scroll one page up" 84msgid "Scroll one page up"
85msgstr "Scrolling di una pagina in su" 85msgstr "Scrolling di una pagina in su"
86 86
87#: src/bin/keyin.c:657 87#: src/bin/keyin.c:655
88msgid "Scroll one page down" 88msgid "Scroll one page down"
89msgstr "Scrolling di una pagina in giù" 89msgstr "Scrolling di una pagina in giù"
90 90
91#: src/bin/keyin.c:658 91#: src/bin/keyin.c:656
92msgid "Scroll one line up" 92msgid "Scroll one line up"
93msgstr "Scrolling di una riga in su" 93msgstr "Scrolling di una riga in su"
94 94
95#: src/bin/keyin.c:659 95#: src/bin/keyin.c:657
96msgid "Scroll one line down" 96msgid "Scroll one line down"
97msgstr "Scrolling di una riga in giù" 97msgstr "Scrolling di una riga in giù"
98 98
99#: src/bin/keyin.c:660 99#: src/bin/keyin.c:658
100msgid "Go to the top of the backlog" 100msgid "Go to the top of the backlog"
101msgstr "Vai all'inizio del backlog" 101msgstr "Vai all'inizio del backlog"
102 102
103#: src/bin/keyin.c:661 103#: src/bin/keyin.c:659
104msgid "Reset scroll" 104msgid "Reset scroll"
105msgstr "Reimposta scrolling" 105msgstr "Reimposta scrolling"
106 106
107#: src/bin/keyin.c:663 107#: src/bin/keyin.c:661
108msgid "Copy/Paste" 108msgid "Copy/Paste"
109msgstr "Copia/Incolla" 109msgstr "Copia/Incolla"
110 110
111#: src/bin/keyin.c:664 111#: src/bin/keyin.c:662
112msgid "Copy selection to Primary buffer" 112msgid "Copy selection to Primary buffer"
113msgstr "Copia la selezione nel buffer primario" 113msgstr "Copia la selezione nel buffer primario"
114 114
115#: src/bin/keyin.c:665 115#: src/bin/keyin.c:663
116msgid "Copy selection to Clipboard buffer" 116msgid "Copy selection to Clipboard buffer"
117msgstr "Copia la selezione nel buffer degli appunti" 117msgstr "Copia la selezione nel buffer degli appunti"
118 118
119#: src/bin/keyin.c:666 119#: src/bin/keyin.c:664
120msgid "Paste Primary buffer (highlight)" 120msgid "Paste Primary buffer (highlight)"
121msgstr "Incolla il buffer primario (evidenziato)" 121msgstr "Incolla il buffer primario (evidenziato)"
122 122
123#: src/bin/keyin.c:667 123#: src/bin/keyin.c:665
124msgid "Paste Clipboard buffer (ctrl+c/v)" 124msgid "Paste Clipboard buffer (ctrl+c/v)"
125msgstr "Incolla il buffer degli appunti (ctrl+c/v)" 125msgstr "Incolla il buffer degli appunti (ctrl+c/v)"
126 126
127#: src/bin/keyin.c:669 127#: src/bin/keyin.c:667
128msgid "Splits/Tabs" 128msgid "Splits/Tabs"
129msgstr "Suddivisioni/Schede" 129msgstr "Suddivisioni/Schede"
130 130
131#: src/bin/keyin.c:670 131#: src/bin/keyin.c:668
132msgid "Focus the previous terminal" 132msgid "Focus the previous terminal"
133msgstr "Fuoco al terminale precedente" 133msgstr "Fuoco al terminale precedente"
134 134
135#: src/bin/keyin.c:671 135#: src/bin/keyin.c:669
136msgid "Focus the next terminal" 136msgid "Focus the next terminal"
137msgstr "Fuoco al terminale successivo" 137msgstr "Fuoco al terminale successivo"
138 138
139#: src/bin/keyin.c:672 139#: src/bin/keyin.c:670
140msgid "Focus the terminal above" 140msgid "Focus the terminal above"
141msgstr "Fuoco al terminale di sopra" 141msgstr "Fuoco al terminale di sopra"
142 142
143#: src/bin/keyin.c:673 143#: src/bin/keyin.c:671
144msgid "Focus the terminal below" 144msgid "Focus the terminal below"
145msgstr "Fuoco al terminale di sotto" 145msgstr "Fuoco al terminale di sotto"
146 146
147#: src/bin/keyin.c:674 147#: src/bin/keyin.c:672
148msgid "Focus the terminal on the left" 148msgid "Focus the terminal on the left"
149msgstr "Fuoco al terminale a sinistra" 149msgstr "Fuoco al terminale a sinistra"
150 150
151#: src/bin/keyin.c:675 151#: src/bin/keyin.c:673
152msgid "Focus the terminal on the right" 152msgid "Focus the terminal on the right"
153msgstr "Fuoco al terminale a destra" 153msgstr "Fuoco al terminale a destra"
154 154
155#: src/bin/keyin.c:676 155#: src/bin/keyin.c:674
156msgid "Split horizontally (new below)" 156msgid "Split horizontally (new below)"
157msgstr "Dividi orizzontalmente (nuovo sotto)" 157msgstr "Dividi orizzontalmente (nuovo sotto)"
158 158
159#: src/bin/keyin.c:677 159#: src/bin/keyin.c:675
160msgid "Split vertically (new on right)" 160msgid "Split vertically (new on right)"
161msgstr "Dividi verticalmente (nuovo a destra)" 161msgstr "Dividi verticalmente (nuovo a destra)"
162 162
163#: src/bin/keyin.c:678 163#: src/bin/keyin.c:676
164msgid "Create a new \"tab\"" 164msgid "Create a new \"tab\""
165msgstr "Crea nuova scheda" 165msgstr "Crea nuova scheda"
166 166
167#: src/bin/keyin.c:679 167#: src/bin/keyin.c:677
168msgid "Close the focused terminal" 168msgid "Close the focused terminal"
169msgstr "Chiudi terminale a fuoco" 169msgstr "Chiudi terminale a fuoco"
170 170
171#: src/bin/keyin.c:680 171#: src/bin/keyin.c:678
172msgid "Bring up \"tab\" switcher" 172msgid "Bring up \"tab\" switcher"
173msgstr "Apri commutatore schede" 173msgstr "Apri commutatore schede"
174 174
175#: src/bin/keyin.c:681 175#: src/bin/keyin.c:679
176msgid "Switch to terminal tab 1" 176msgid "Switch to terminal tab 1"
177msgstr "Passa alla scheda 1" 177msgstr "Passa alla scheda 1"
178 178
179#: src/bin/keyin.c:682 179#: src/bin/keyin.c:680
180msgid "Switch to terminal tab 2" 180msgid "Switch to terminal tab 2"
181msgstr "Passa alla scheda 2" 181msgstr "Passa alla scheda 2"
182 182
183#: src/bin/keyin.c:683 183#: src/bin/keyin.c:681
184msgid "Switch to terminal tab 3" 184msgid "Switch to terminal tab 3"
185msgstr "Passa alla scheda 3" 185msgstr "Passa alla scheda 3"
186 186
187#: src/bin/keyin.c:684 187#: src/bin/keyin.c:682
188msgid "Switch to terminal tab 4" 188msgid "Switch to terminal tab 4"
189msgstr "Passa alla scheda 4" 189msgstr "Passa alla scheda 4"
190 190
191#: src/bin/keyin.c:685 191#: src/bin/keyin.c:683
192msgid "Switch to terminal tab 5" 192msgid "Switch to terminal tab 5"
193msgstr "Passa alla scheda 5" 193msgstr "Passa alla scheda 5"
194 194
195#: src/bin/keyin.c:686 195#: src/bin/keyin.c:684
196msgid "Switch to terminal tab 6" 196msgid "Switch to terminal tab 6"
197msgstr "Passa alla scheda 6" 197msgstr "Passa alla scheda 6"
198 198
199#: src/bin/keyin.c:687 199#: src/bin/keyin.c:685
200msgid "Switch to terminal tab 7" 200msgid "Switch to terminal tab 7"
201msgstr "Passa alla scheda 7" 201msgstr "Passa alla scheda 7"
202 202
203#: src/bin/keyin.c:688 203#: src/bin/keyin.c:686
204msgid "Switch to terminal tab 8" 204msgid "Switch to terminal tab 8"
205msgstr "Passa alla scheda 8" 205msgstr "Passa alla scheda 8"
206 206
207#: src/bin/keyin.c:689 207#: src/bin/keyin.c:687
208msgid "Switch to terminal tab 9" 208msgid "Switch to terminal tab 9"
209msgstr "Passa alla scheda 9" 209msgstr "Passa alla scheda 9"
210 210
211#: src/bin/keyin.c:690 211#: src/bin/keyin.c:688
212msgid "Switch to terminal tab 10" 212msgid "Switch to terminal tab 10"
213msgstr "Passa alla scheda 10" 213msgstr "Passa alla scheda 10"
214 214
215#: src/bin/keyin.c:691 215#: src/bin/keyin.c:689
216msgid "Change title" 216msgid "Change title"
217msgstr "Cambia titolo" 217msgstr "Cambia titolo"
218 218
219#: src/bin/keyin.c:692 src/bin/keyin.c:693 219#: src/bin/keyin.c:690 src/bin/keyin.c:691
220msgid "Toggle whether input goes to all visible terminals" 220msgid "Toggle whether input goes to all visible terminals"
221msgstr "Commuta l'invio dell'input a tutti i terminali visibili" 221msgstr "Commuta l'invio dell'input a tutti i terminali visibili"
222 222
223#: src/bin/keyin.c:696 223#: src/bin/keyin.c:694
224msgid "Font size" 224msgid "Font size"
225msgstr "Dimensione carattere" 225msgstr "Dimensione carattere"
226 226
227#: src/bin/keyin.c:697 227#: src/bin/keyin.c:695
228msgid "Font size up 1" 228msgid "Font size up 1"
229msgstr "Incrementa dimensione carattere di 1" 229msgstr "Incrementa dimensione carattere di 1"
230 230
231#: src/bin/keyin.c:698 231#: src/bin/keyin.c:696
232msgid "Font size down 1" 232msgid "Font size down 1"
233msgstr "Decrementa dimensione carattere di 1" 233msgstr "Decrementa dimensione carattere di 1"
234 234
235#: src/bin/keyin.c:699 235#: src/bin/keyin.c:697
236msgid "Display big font size" 236msgid "Display big font size"
237msgstr "Visualizza dimensione carattere grande" 237msgstr "Visualizza dimensione carattere grande"
238 238
239#: src/bin/keyin.c:700 239#: src/bin/keyin.c:698
240msgid "Reset font size" 240msgid "Reset font size"
241msgstr "Reimposta dimensione carattere" 241msgstr "Reimposta dimensione carattere"
242 242
243#: src/bin/keyin.c:702 243#: src/bin/keyin.c:700
244msgid "Actions" 244msgid "Actions"
245msgstr "Azioni" 245msgstr "Azioni"
246 246
247#: src/bin/keyin.c:703 247#: src/bin/keyin.c:701
248msgid "Open a new terminal window" 248msgid "Open a new terminal window"
249msgstr "Apri una nuova finestra di terminale" 249msgstr "Apri una nuova finestra di terminale"
250 250
251#: src/bin/keyin.c:704 251#: src/bin/keyin.c:702
252msgid "Toggle Fullscreen of the window" 252msgid "Toggle Fullscreen of the window"
253msgstr "Commuta finestra a schermo pieno" 253msgstr "Commuta finestra a schermo pieno"
254 254
255#: src/bin/keyin.c:705 255#: src/bin/keyin.c:703
256msgid "Display the history miniview" 256msgid "Display the history miniview"
257msgstr "Visualizza le miniature delle schede" 257msgstr "Visualizza le miniature delle schede"
258 258
259#: src/bin/keyin.c:706 259#: src/bin/keyin.c:704
260msgid "Display the command box" 260msgid "Display the command box"
261msgstr "Visualizza il box comandi" 261msgstr "Visualizza il box comandi"
262 262
@@ -447,164 +447,168 @@ msgstr "Funzione %s fallita: %s"
447msgid "Media visualizing is not supported" 447msgid "Media visualizing is not supported"
448msgstr "La visualizzazione multimediale non è supportata" 448msgstr "La visualizzazione multimediale non è supportata"
449 449
450#: src/bin/options_behavior.c:81 450#: src/bin/options_behavior.c:84
451#, c-format 451#, c-format
452msgid "%'d lines" 452msgid "%'d lines"
453msgstr "%'d linee" 453msgstr "%'d linee"
454 454
455#: src/bin/options_behavior.c:215 455#: src/bin/options_behavior.c:256
456msgid "Default cursor:" 456msgid "Default cursor:"
457msgstr "Cursore predefinito:" 457msgstr "Cursore predefinito:"
458 458
459#: src/bin/options_behavior.c:224 459#: src/bin/options_behavior.c:265
460msgid "Blinking Block" 460msgid "Blinking Block"
461msgstr "Rettangolo lampeggiante" 461msgstr "Rettangolo lampeggiante"
462 462
463#: src/bin/options_behavior.c:242 463#: src/bin/options_behavior.c:283
464msgid "Steady Block" 464msgid "Steady Block"
465msgstr "Rettangolo fisso" 465msgstr "Rettangolo fisso"
466 466
467#: src/bin/options_behavior.c:261 467#: src/bin/options_behavior.c:302
468msgid "Blinking Underline" 468msgid "Blinking Underline"
469msgstr "Trattino basso lampeggiante" 469msgstr "Trattino basso lampeggiante"
470 470
471#: src/bin/options_behavior.c:280 471#: src/bin/options_behavior.c:321
472msgid "Steady Underline" 472msgid "Steady Underline"
473msgstr "Trattino basso fisso" 473msgstr "Trattino basso fisso"
474 474
475#: src/bin/options_behavior.c:299 475#: src/bin/options_behavior.c:340
476msgid "Blinking Bar" 476msgid "Blinking Bar"
477msgstr "Barra verticale lampeggiante" 477msgstr "Barra verticale lampeggiante"
478 478
479#: src/bin/options_behavior.c:318 479#: src/bin/options_behavior.c:359
480msgid "Steady Bar" 480msgid "Steady Bar"
481msgstr "Barra verticale fissa" 481msgstr "Barra verticale fissa"
482 482
483#: src/bin/options_behavior.c:357 src/bin/options.c:220 483#: src/bin/options_behavior.c:398 src/bin/options.c:220
484msgid "Behavior" 484msgid "Behavior"
485msgstr "Comportamento" 485msgstr "Comportamento"
486 486
487#: src/bin/options_behavior.c:400 487#: src/bin/options_behavior.c:441
488msgid "Scroll to bottom on new content" 488msgid "Scroll to bottom on new content"
489msgstr "Sospendi scrolling all'arrivo di nuovi contenuti" 489msgstr "Sospendi scrolling all'arrivo di nuovi contenuti"
490 490
491#: src/bin/options_behavior.c:401 491#: src/bin/options_behavior.c:442
492msgid "Scroll to bottom when a key is pressed" 492msgid "Scroll to bottom when a key is pressed"
493msgstr "Sospendi scrolling alla pressione di un tasto" 493msgstr "Sospendi scrolling alla pressione di un tasto"
494 494
495#: src/bin/options_behavior.c:412 495#: src/bin/options_behavior.c:453
496msgid "Active Links:" 496msgid "Active Links:"
497msgstr "Link attivi:" 497msgstr "Link attivi:"
498 498
499#: src/bin/options_behavior.c:416 499#: src/bin/options_behavior.c:457
500msgid "On emails" 500msgid "On emails"
501msgstr "Per email" 501msgstr "Per email"
502 502
503#: src/bin/options_behavior.c:417 503#: src/bin/options_behavior.c:458
504msgid "On file paths" 504msgid "On file paths"
505msgstr "Per percorsi file" 505msgstr "Per percorsi file"
506 506
507#: src/bin/options_behavior.c:418 507#: src/bin/options_behavior.c:459
508msgid "On URLs" 508msgid "On URLs"
509msgstr "Per URL" 509msgstr "Per URL"
510 510
511#: src/bin/options_behavior.c:419 511#: src/bin/options_behavior.c:460
512msgid "Based on escape codes" 512msgid "Based on escape codes"
513msgstr "Basato su codici di escape" 513msgstr "Basato su codici di escape"
514 514
515#: src/bin/options_behavior.c:423 515#: src/bin/options_behavior.c:464
516msgid "React to key presses" 516msgid "React to key presses"
517msgstr "Reagisci alla pressione dei tasti" 517msgstr "Reagisci alla pressione dei tasti"
518 518
519#: src/bin/options_behavior.c:430 519#: src/bin/options_behavior.c:471
520msgid "Audio Support for key presses <failure>DISABLED</failure>!" 520msgid "Audio Support for key presses <failure>DISABLED</failure>!"
521msgstr "Supporto audio per pressione tasti <failure>DISABILITATO</failure>!" 521msgstr "Supporto audio per pressione tasti <failure>DISABILITATO</failure>!"
522 522
523#: src/bin/options_behavior.c:433 523#: src/bin/options_behavior.c:474
524msgid "Visual Bell" 524msgid "Visual Bell"
525msgstr "Allarme visivo" 525msgstr "Allarme visivo"
526 526
527#: src/bin/options_behavior.c:434 527#: src/bin/options_behavior.c:475
528msgid "Bell rings" 528msgid "Bell rings"
529msgstr "Allarme sonoro" 529msgstr "Allarme sonoro"
530 530
531#: src/bin/options_behavior.c:435 531#: src/bin/options_behavior.c:476
532msgid "Urgent Bell" 532msgid "Urgent Bell"
533msgstr "Allarme urgente" 533msgstr "Allarme urgente"
534 534
535#: src/bin/options_behavior.c:436 535#: src/bin/options_behavior.c:477
536msgid "Multiple instances, one process" 536msgid "Multiple instances, one process"
537msgstr "Istanze multiple, processo unico" 537msgstr "Istanze multiple, processo unico"
538 538
539#: src/bin/options_behavior.c:437 539#: src/bin/options_behavior.c:478
540msgid "Set TERM to xterm-256color" 540msgid "Set TERM to xterm-256color"
541msgstr "Imposta TERM su xterm-256color" 541msgstr "Imposta TERM su xterm-256color"
542 542
543#: src/bin/options_behavior.c:438 543#: src/bin/options_behavior.c:479
544msgid "BackArrow sends Del (instead of BackSpace)" 544msgid "BackArrow sends Del (instead of BackSpace)"
545msgstr "Il backspace cancella il carattere successivo invece del precedente" 545msgstr "Il backspace cancella il carattere successivo invece del precedente"
546 546
547#: src/bin/options_behavior.c:439 547#: src/bin/options_behavior.c:480
548msgid "Drag & drop links" 548msgid "Drag & drop links"
549msgstr "Copia e incolla i link" 549msgstr "Copia e incolla i link"
550 550
551#: src/bin/options_behavior.c:440 551#: src/bin/options_behavior.c:481
552msgid "Start as login shell" 552msgid "Start as login shell"
553msgstr "Avvia come shell di login" 553msgstr "Avvia come shell di login"
554 554
555#: src/bin/options_behavior.c:441 555#: src/bin/options_behavior.c:482
556msgid "Focus split under the Mouse" 556msgid "Focus split under the Mouse"
557msgstr "Fuoco sulla suddivisione sotto il mouse" 557msgstr "Fuoco sulla suddivisione sotto il mouse"
558 558
559#: src/bin/options_behavior.c:442 559#: src/bin/options_behavior.c:483
560msgid "Focus-related visuals" 560msgid "Focus-related visuals"
561msgstr "Visualizzazione correlata al fuoco" 561msgstr "Visualizzazione correlata al fuoco"
562 562
563#: src/bin/options_behavior.c:443 563#: src/bin/options_behavior.c:484
564msgid "Gravatar integration" 564msgid "Gravatar integration"
565msgstr "Integrazione dei Gravatar" 565msgstr "Integrazione dei Gravatar"
566 566
567#: src/bin/options_behavior.c:444 567#: src/bin/options_behavior.c:485
568msgid "Show tabs" 568msgid "Show tabs"
569msgstr "Mostra linguette" 569msgstr "Mostra linguette"
570 570
571#: src/bin/options_behavior.c:445 571#: src/bin/options_behavior.c:486
572msgid "Always show miniview" 572msgid "Always show miniview"
573msgstr "Visualizza sempre le miniature delle schede" 573msgstr "Visualizza sempre le miniature delle schede"
574 574
575#: src/bin/options_behavior.c:446 575#: src/bin/options_behavior.c:487
576msgid "Enable special Terminology escape codes" 576msgid "Enable special Terminology escape codes"
577msgstr "Abilita codici escape speciali di Terminology" 577msgstr "Abilita codici escape speciali di Terminology"
578 578
579#: src/bin/options_behavior.c:447 579#: src/bin/options_behavior.c:488
580msgid "Open new terminals in current working directory" 580msgid "Open new terminals in current working directory"
581msgstr "Apri nuovi terminali nell'attuale directory di lavoro" 581msgstr "Apri nuovi terminali nell'attuale directory di lavoro"
582 582
583#: src/bin/options_behavior.c:456 583#: src/bin/options_behavior.c:489
584msgid "Treat Emojis as double-width characters"
585msgstr "Tratta Emoji come caratteri di larghezza doppia"
586
587#: src/bin/options_behavior.c:498
584msgid "Always open at size:" 588msgid "Always open at size:"
585msgstr "Avvia sempre con queste dimensioni:" 589msgstr "Avvia sempre con queste dimensioni:"
586 590
587#: src/bin/options_behavior.c:466 591#: src/bin/options_behavior.c:508
588msgid "Set Current:" 592msgid "Set Current:"
589msgstr "Impostazioni attuali:" 593msgstr "Impostazioni attuali:"
590 594
591#: src/bin/options_behavior.c:477 595#: src/bin/options_behavior.c:519
592msgid "Width:" 596msgid "Width:"
593msgstr "Larghezza:" 597msgstr "Larghezza:"
594 598
595#: src/bin/options_behavior.c:499 599#: src/bin/options_behavior.c:541
596msgid "Height:" 600msgid "Height:"
597msgstr "Altezza:" 601msgstr "Altezza:"
598 602
599#: src/bin/options_behavior.c:523 603#: src/bin/options_behavior.c:565
600msgid "Scrollback:" 604msgid "Scrollback:"
601msgstr "Scrolling all'indietro:" 605msgstr "Scrolling all'indietro:"
602 606
603#: src/bin/options_behavior.c:555 607#: src/bin/options_behavior.c:599
604msgid "Tab zoom/switch animation time:" 608msgid "Tab zoom/switch animation time:"
605msgstr "Durata animazione zoom/cambio scheda" 609msgstr "Durata animazione zoom/cambio scheda"
606 610
607#: src/bin/options_behavior.c:556 611#: src/bin/options_behavior.c:600
608msgid "" 612msgid ""
609"Set the time of the animation that<br>takes places on tab switches,<br>be " 613"Set the time of the animation that<br>takes places on tab switches,<br>be "
610"them by key binding, mouse<br>wheel or tabs panel mouse move" 614"them by key binding, mouse<br>wheel or tabs panel mouse move"
@@ -613,11 +617,20 @@ msgstr ""
613"sia che<br>lo si faccia da tastiera, rotella del<br>mouse o spostamento del " 617"sia che<br>lo si faccia da tastiera, rotella del<br>mouse o spostamento del "
614"mouse nel<br>pannello delle schede." 618"mouse nel<br>pannello delle schede."
615 619
616#: src/bin/options_behavior.c:569 src/bin/options_behavior.c:570 620#: src/bin/options_behavior.c:612 src/bin/options_behavior.c:613
621#: src/bin/options_behavior.c:644 src/bin/options_behavior.c:645
617#, c-format 622#, c-format
618msgid "%1.1f s" 623msgid "%1.1f s"
619msgstr "%1.1f s" 624msgstr "%1.1f s"
620 625
626#: src/bin/options_behavior.c:630
627msgid "Translucent"
628msgstr "Translucente"
629
630#: src/bin/options_behavior.c:631
631msgid "Auto hide the mouse cursor when idle:"
632msgstr "Nascondi puntatore mouse quando inattivo:"
633
621#: src/bin/options.c:192 634#: src/bin/options.c:192
622msgid "Options" 635msgid "Options"
623msgstr "Opzioni" 636msgstr "Opzioni"
@@ -798,15 +811,15 @@ msgstr "Hyper+"
798msgid "Delete" 811msgid "Delete"
799msgstr "Canc" 812msgstr "Canc"
800 813
801#: src/bin/options_keys.c:268 814#: src/bin/options_keys.c:269
802msgid "Please press key sequence" 815msgid "Please press key sequence"
803msgstr "Premere la sequenza di tasti" 816msgstr "Premere la sequenza di tasti"
804 817
805#: src/bin/options_keys.c:384 818#: src/bin/options_keys.c:385
806msgid "Key Bindings" 819msgid "Key Bindings"
807msgstr "Combinazioni di tasti" 820msgstr "Combinazioni di tasti"
808 821
809#: src/bin/options_keys.c:456 822#: src/bin/options_keys.c:457
810msgid "Reset bindings" 823msgid "Reset bindings"
811msgstr "Reimposta combinazioni di tasti" 824msgstr "Reimposta combinazioni di tasti"
812 825
@@ -851,33 +864,33 @@ msgstr "Comando sconosciuto: %s"
851msgid "Could not get working directory of pid %i: %s" 864msgid "Could not get working directory of pid %i: %s"
852msgstr "Non ho ottenuto la directory di lavoro del pid %i: %s" 865msgstr "Non ho ottenuto la directory di lavoro del pid %i: %s"
853 866
854#: src/bin/termio.c:366 867#: src/bin/termio.c:367
855#, c-format 868#, c-format
856msgid "Could not load working directory %s: %s" 869msgid "Could not load working directory %s: %s"
857msgstr "Non ho potuto caricare la directory di lavoro %s: %s" 870msgstr "Non ho potuto caricare la directory di lavoro %s: %s"
858 871
859#: src/bin/termio.c:1084 872#: src/bin/termio.c:1085
860#, c-format 873#, c-format
861msgid "unsupported selection format '%s'" 874msgid "unsupported selection format '%s'"
862msgstr "Formato selezione non supportato '%s'" 875msgstr "Formato selezione non supportato '%s'"
863 876
864#: src/bin/termio.c:1177 877#: src/bin/termio.c:1178
865msgid "Preview" 878msgid "Preview"
866msgstr "Anteprima" 879msgstr "Anteprima"
867 880
868#: src/bin/termio.c:1180 881#: src/bin/termio.c:1181
869msgid "Open" 882msgid "Open"
870msgstr "Apri" 883msgstr "Apri"
871 884
872#: src/bin/termio.c:1187 885#: src/bin/termio.c:1188
873msgid "Copy relative path" 886msgid "Copy relative path"
874msgstr "Copia percorso relativo" 887msgstr "Copia percorso relativo"
875 888
876#: src/bin/termio.c:1189 889#: src/bin/termio.c:1190
877msgid "Copy full path" 890msgid "Copy full path"
878msgstr "Copia percorso completo" 891msgstr "Copia percorso completo"
879 892
880#: src/bin/termio.c:2565 893#: src/bin/termio.c:2566
881msgid "Open as URL" 894msgid "Open as URL"
882msgstr "Apri come URL" 895msgstr "Apri come URL"
883 896
@@ -920,7 +933,7 @@ msgstr "ioctl() sulla pty '%s' fallita: %s"
920msgid "Could not change current directory to '%s': %s" 933msgid "Could not change current directory to '%s': %s"
921msgstr "Non ho potuto cambiare la directory verso %s: %s" 934msgstr "Non ho potuto cambiare la directory verso %s: %s"
922 935
923#: src/bin/termpty.c:1256 936#: src/bin/termpty.c:1263
924#, c-format 937#, c-format
925msgid "Could not write to file descriptor %d: %s" 938msgid "Could not write to file descriptor %d: %s"
926msgstr "Non ho potuto scrivere sul file descriptor %d: %s" 939msgstr "Non ho potuto scrivere sul file descriptor %d: %s"
@@ -935,19 +948,19 @@ msgstr "Non ho potuto caricare un tema per group=%s: %s"
935msgid "Could not load default theme for group=%s: %s" 948msgid "Could not load default theme for group=%s: %s"
936msgstr "Non ho potuto caricare il tema predefinito per il gruppo=%s: %s" 949msgstr "Non ho potuto caricare il tema predefinito per il gruppo=%s: %s"
937 950
938#: src/bin/win.c:1756 951#: src/bin/win.c:1818
939msgid "Ecore IMF failed" 952msgid "Ecore IMF failed"
940msgstr "Ecore IMF fallito" 953msgstr "Ecore IMF fallito"
941 954
942#: src/bin/win.c:4363 955#: src/bin/win.c:4433
943msgid "Ok" 956msgid "Ok"
944msgstr "Ok" 957msgstr "Ok"
945 958
946#: src/bin/win.c:4368 959#: src/bin/win.c:4438
947msgid "Cancel" 960msgid "Cancel"
948msgstr "Annulla" 961msgstr "Annulla"
949 962
950#: src/bin/win.c:5629 963#: src/bin/win.c:5676
951msgid "Couldn't find terminology theme! Forgot 'ninja install'?" 964msgid "Couldn't find terminology theme! Forgot 'ninja install'?"
952msgstr "" 965msgstr ""
953"Non trovo il tema di terminology! Avete dato il comando 'ninja install'?" 966"Non trovo il tema di terminology! Avete dato il comando 'ninja install'?"
diff --git a/po/terminology.pot b/po/terminology.pot
index ff9c254..a366e2d 100644
--- a/po/terminology.pot
+++ b/po/terminology.pot
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: terminology\n" 8"Project-Id-Version: terminology\n"
9"Report-Msgid-Bugs-To: \n" 9"Report-Msgid-Bugs-To: \n"
10"POT-Creation-Date: 2018-04-01 18:18+0200\n" 10"POT-Creation-Date: 2019-09-08 20:55+0200\n"
11"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 11"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: LANGUAGE <LL@li.org>\n" 13"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,47 +16,47 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n" 16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
18 18
19#: src/bin/controls.c:324 19#: src/bin/controls.c:334
20msgid "Controls" 20msgid "Controls"
21msgstr "" 21msgstr ""
22 22
23#: src/bin/controls.c:340 23#: src/bin/controls.c:350
24msgid "New" 24msgid "New"
25msgstr "" 25msgstr ""
26 26
27#: src/bin/controls.c:347 27#: src/bin/controls.c:357
28msgid "Split V" 28msgid "Split V"
29msgstr "" 29msgstr ""
30 30
31#: src/bin/controls.c:350 31#: src/bin/controls.c:360
32msgid "Split H" 32msgid "Split H"
33msgstr "" 33msgstr ""
34 34
35#: src/bin/controls.c:357 35#: src/bin/controls.c:367
36msgid "Miniview" 36msgid "Miniview"
37msgstr "" 37msgstr ""
38 38
39#: src/bin/controls.c:364 src/bin/win.c:4323 39#: src/bin/controls.c:374 src/bin/win.c:4573
40msgid "Set title" 40msgid "Set title"
41msgstr "" 41msgstr ""
42 42
43#: src/bin/controls.c:375 src/bin/termio.c:1073 src/bin/termio.c:4097 43#: src/bin/controls.c:385 src/bin/termio.c:1195 src/bin/termio.c:2563
44msgid "Copy" 44msgid "Copy"
45msgstr "" 45msgstr ""
46 46
47#: src/bin/controls.c:381 47#: src/bin/controls.c:391
48msgid "Paste" 48msgid "Paste"
49msgstr "" 49msgstr ""
50 50
51#: src/bin/controls.c:387 51#: src/bin/controls.c:397
52msgid "Settings" 52msgid "Settings"
53msgstr "" 53msgstr ""
54 54
55#: src/bin/controls.c:393 55#: src/bin/controls.c:403
56msgid "About" 56msgid "About"
57msgstr "" 57msgstr ""
58 58
59#: src/bin/controls.c:403 59#: src/bin/controls.c:413
60msgid "Close Terminal" 60msgid "Close Terminal"
61msgstr "" 61msgstr ""
62 62
@@ -70,353 +70,353 @@ msgid ""
70"clause BSD license detailed below:<br><br>%s" 70"clause BSD license detailed below:<br><br>%s"
71msgstr "" 71msgstr ""
72 72
73#: src/bin/keyin.c:654 73#: src/bin/keyin.c:653
74msgid "Scrolling" 74msgid "Scrolling"
75msgstr "" 75msgstr ""
76 76
77#: src/bin/keyin.c:655 77#: src/bin/keyin.c:654
78msgid "Scroll one page up" 78msgid "Scroll one page up"
79msgstr "" 79msgstr ""
80 80
81#: src/bin/keyin.c:656 81#: src/bin/keyin.c:655
82msgid "Scroll one page down" 82msgid "Scroll one page down"
83msgstr "" 83msgstr ""
84 84
85#: src/bin/keyin.c:657 85#: src/bin/keyin.c:656
86msgid "Scroll one line up" 86msgid "Scroll one line up"
87msgstr "" 87msgstr ""
88 88
89#: src/bin/keyin.c:658 89#: src/bin/keyin.c:657
90msgid "Scroll one line down" 90msgid "Scroll one line down"
91msgstr "" 91msgstr ""
92 92
93#: src/bin/keyin.c:659 93#: src/bin/keyin.c:658
94msgid "Go to the top of the backlog" 94msgid "Go to the top of the backlog"
95msgstr "" 95msgstr ""
96 96
97#: src/bin/keyin.c:660 97#: src/bin/keyin.c:659
98msgid "Reset scroll" 98msgid "Reset scroll"
99msgstr "" 99msgstr ""
100 100
101#: src/bin/keyin.c:662 101#: src/bin/keyin.c:661
102msgid "Copy/Paste" 102msgid "Copy/Paste"
103msgstr "" 103msgstr ""
104 104
105#: src/bin/keyin.c:663 105#: src/bin/keyin.c:662
106msgid "Copy selection to Primary buffer" 106msgid "Copy selection to Primary buffer"
107msgstr "" 107msgstr ""
108 108
109#: src/bin/keyin.c:664 109#: src/bin/keyin.c:663
110msgid "Copy selection to Clipboard buffer" 110msgid "Copy selection to Clipboard buffer"
111msgstr "" 111msgstr ""
112 112
113#: src/bin/keyin.c:665 113#: src/bin/keyin.c:664
114msgid "Paste Primary buffer (highlight)" 114msgid "Paste Primary buffer (highlight)"
115msgstr "" 115msgstr ""
116 116
117#: src/bin/keyin.c:666 117#: src/bin/keyin.c:665
118msgid "Paste Clipboard buffer (ctrl+c/v)" 118msgid "Paste Clipboard buffer (ctrl+c/v)"
119msgstr "" 119msgstr ""
120 120
121#: src/bin/keyin.c:668 121#: src/bin/keyin.c:667
122msgid "Splits/Tabs" 122msgid "Splits/Tabs"
123msgstr "" 123msgstr ""
124 124
125#: src/bin/keyin.c:669 125#: src/bin/keyin.c:668
126msgid "Focus the previous terminal" 126msgid "Focus the previous terminal"
127msgstr "" 127msgstr ""
128 128
129#: src/bin/keyin.c:670 129#: src/bin/keyin.c:669
130msgid "Focus the next terminal" 130msgid "Focus the next terminal"
131msgstr "" 131msgstr ""
132 132
133#: src/bin/keyin.c:671 133#: src/bin/keyin.c:670
134msgid "Focus the terminal above" 134msgid "Focus the terminal above"
135msgstr "" 135msgstr ""
136 136
137#: src/bin/keyin.c:672 137#: src/bin/keyin.c:671
138msgid "Focus the terminal below" 138msgid "Focus the terminal below"
139msgstr "" 139msgstr ""
140 140
141#: src/bin/keyin.c:673 141#: src/bin/keyin.c:672
142msgid "Focus the terminal on the left" 142msgid "Focus the terminal on the left"
143msgstr "" 143msgstr ""
144 144
145#: src/bin/keyin.c:674 145#: src/bin/keyin.c:673
146msgid "Focus the terminal on the right" 146msgid "Focus the terminal on the right"
147msgstr "" 147msgstr ""
148 148
149#: src/bin/keyin.c:675 149#: src/bin/keyin.c:674
150msgid "Split horizontally (new below)" 150msgid "Split horizontally (new below)"
151msgstr "" 151msgstr ""
152 152
153#: src/bin/keyin.c:676 153#: src/bin/keyin.c:675
154msgid "Split vertically (new on right)" 154msgid "Split vertically (new on right)"
155msgstr "" 155msgstr ""
156 156
157#: src/bin/keyin.c:677 157#: src/bin/keyin.c:676
158msgid "Create a new \"tab\"" 158msgid "Create a new \"tab\""
159msgstr "" 159msgstr ""
160 160
161#: src/bin/keyin.c:678 161#: src/bin/keyin.c:677
162msgid "Close the focused terminal" 162msgid "Close the focused terminal"
163msgstr "" 163msgstr ""
164 164
165#: src/bin/keyin.c:679 165#: src/bin/keyin.c:678
166msgid "Bring up \"tab\" switcher" 166msgid "Bring up \"tab\" switcher"
167msgstr "" 167msgstr ""
168 168
169#: src/bin/keyin.c:680 169#: src/bin/keyin.c:679
170msgid "Switch to terminal tab 1" 170msgid "Switch to terminal tab 1"
171msgstr "" 171msgstr ""
172 172
173#: src/bin/keyin.c:681 173#: src/bin/keyin.c:680
174msgid "Switch to terminal tab 2" 174msgid "Switch to terminal tab 2"
175msgstr "" 175msgstr ""
176 176
177#: src/bin/keyin.c:682 177#: src/bin/keyin.c:681
178msgid "Switch to terminal tab 3" 178msgid "Switch to terminal tab 3"
179msgstr "" 179msgstr ""
180 180
181#: src/bin/keyin.c:683 181#: src/bin/keyin.c:682
182msgid "Switch to terminal tab 4" 182msgid "Switch to terminal tab 4"
183msgstr "" 183msgstr ""
184 184
185#: src/bin/keyin.c:684 185#: src/bin/keyin.c:683
186msgid "Switch to terminal tab 5" 186msgid "Switch to terminal tab 5"
187msgstr "" 187msgstr ""
188 188
189#: src/bin/keyin.c:685 189#: src/bin/keyin.c:684
190msgid "Switch to terminal tab 6" 190msgid "Switch to terminal tab 6"
191msgstr "" 191msgstr ""
192 192
193#: src/bin/keyin.c:686 193#: src/bin/keyin.c:685
194msgid "Switch to terminal tab 7" 194msgid "Switch to terminal tab 7"
195msgstr "" 195msgstr ""
196 196
197#: src/bin/keyin.c:687 197#: src/bin/keyin.c:686
198msgid "Switch to terminal tab 8" 198msgid "Switch to terminal tab 8"
199msgstr "" 199msgstr ""
200 200
201#: src/bin/keyin.c:688 201#: src/bin/keyin.c:687
202msgid "Switch to terminal tab 9" 202msgid "Switch to terminal tab 9"
203msgstr "" 203msgstr ""
204 204
205#: src/bin/keyin.c:689 205#: src/bin/keyin.c:688
206msgid "Switch to terminal tab 10" 206msgid "Switch to terminal tab 10"
207msgstr "" 207msgstr ""
208 208
209#: src/bin/keyin.c:690 209#: src/bin/keyin.c:689
210msgid "Change title" 210msgid "Change title"
211msgstr "" 211msgstr ""
212 212
213#: src/bin/keyin.c:691 src/bin/keyin.c:692 213#: src/bin/keyin.c:690 src/bin/keyin.c:691
214msgid "Toggle whether input goes to all visible terminals" 214msgid "Toggle whether input goes to all visible terminals"
215msgstr "" 215msgstr ""
216 216
217#: src/bin/keyin.c:695 217#: src/bin/keyin.c:694
218msgid "Font size" 218msgid "Font size"
219msgstr "" 219msgstr ""
220 220
221#: src/bin/keyin.c:696 221#: src/bin/keyin.c:695
222msgid "Font size up 1" 222msgid "Font size up 1"
223msgstr "" 223msgstr ""
224 224
225#: src/bin/keyin.c:697 225#: src/bin/keyin.c:696
226msgid "Font size down 1" 226msgid "Font size down 1"
227msgstr "" 227msgstr ""
228 228
229#: src/bin/keyin.c:698 229#: src/bin/keyin.c:697
230msgid "Display big font size" 230msgid "Display big font size"
231msgstr "" 231msgstr ""
232 232
233#: src/bin/keyin.c:699 233#: src/bin/keyin.c:698
234msgid "Reset font size" 234msgid "Reset font size"
235msgstr "" 235msgstr ""
236 236
237#: src/bin/keyin.c:701 237#: src/bin/keyin.c:700
238msgid "Actions" 238msgid "Actions"
239msgstr "" 239msgstr ""
240 240
241#: src/bin/keyin.c:702 241#: src/bin/keyin.c:701
242msgid "Open a new terminal window" 242msgid "Open a new terminal window"
243msgstr "" 243msgstr ""
244 244
245#: src/bin/keyin.c:703 245#: src/bin/keyin.c:702
246msgid "Toggle Fullscreen of the window" 246msgid "Toggle Fullscreen of the window"
247msgstr "" 247msgstr ""
248 248
249#: src/bin/keyin.c:704 249#: src/bin/keyin.c:703
250msgid "Display the history miniview" 250msgid "Display the history miniview"
251msgstr "" 251msgstr ""
252 252
253#: src/bin/keyin.c:705 253#: src/bin/keyin.c:704
254msgid "Display the command box" 254msgid "Display the command box"
255msgstr "" 255msgstr ""
256 256
257#: src/bin/main.c:218 src/bin/main.c:885 257#: src/bin/main.c:242 src/bin/main.c:895
258msgid "Could not create window." 258msgid "Could not create window."
259msgstr "" 259msgstr ""
260 260
261#: src/bin/main.c:288 src/bin/main.c:896 261#: src/bin/main.c:312 src/bin/main.c:906
262msgid "Could not create terminal widget." 262msgid "Could not create terminal widget."
263msgstr "" 263msgstr ""
264 264
265#: src/bin/main.c:327 265#: src/bin/main.c:351
266#, c-format 266#, c-format
267msgid "(C) 2012-%d Carsten Haitzler and others" 267msgid "(C) 2012-%d Carsten Haitzler and others"
268msgstr "" 268msgstr ""
269 269
270#: src/bin/main.c:329 270#: src/bin/main.c:353
271msgid "Terminal emulator written with Enlightenment Foundation Libraries." 271msgid "Terminal emulator written with Enlightenment Foundation Libraries."
272msgstr "" 272msgstr ""
273 273
274#: src/bin/main.c:333 274#: src/bin/main.c:357
275msgid "Command to execute. Defaults to $SHELL (or passwd shell or /bin/sh)" 275msgid "Command to execute. Defaults to $SHELL (or passwd shell or /bin/sh)"
276msgstr "" 276msgstr ""
277 277
278#: src/bin/main.c:335 278#: src/bin/main.c:359
279msgid "Change to directory for execution of terminal command." 279msgid "Change to directory for execution of terminal command."
280msgstr "" 280msgstr ""
281 281
282#: src/bin/main.c:337 282#: src/bin/main.c:361
283msgid "Use the named edje theme or path to theme file." 283msgid "Use the named edje theme or path to theme file."
284msgstr "" 284msgstr ""
285 285
286#: src/bin/main.c:339 286#: src/bin/main.c:363
287msgid "Use the named file as a background wallpaper." 287msgid "Use the named file as a background wallpaper."
288msgstr "" 288msgstr ""
289 289
290#: src/bin/main.c:341 290#: src/bin/main.c:365
291msgid "Terminal geometry to use (eg 80x24 or 80x24+50+20 etc.)." 291msgid "Terminal geometry to use (eg 80x24 or 80x24+50+20 etc.)."
292msgstr "" 292msgstr ""
293 293
294#: src/bin/main.c:343 294#: src/bin/main.c:367
295msgid "Set window name." 295msgid "Set window name."
296msgstr "" 296msgstr ""
297 297
298#: src/bin/main.c:345 298#: src/bin/main.c:369
299msgid "Set window role." 299msgid "Set window role."
300msgstr "" 300msgstr ""
301 301
302#: src/bin/main.c:347 302#: src/bin/main.c:371
303msgid "Set window title." 303msgid "Set window title."
304msgstr "" 304msgstr ""
305 305
306#: src/bin/main.c:349 306#: src/bin/main.c:373
307msgid "Set icon name." 307msgid "Set icon name."
308msgstr "" 308msgstr ""
309 309
310#: src/bin/main.c:351 310#: src/bin/main.c:375
311msgid "Set font (NAME/SIZE for scalable, NAME for bitmap." 311msgid "Set font (NAME/SIZE for scalable, NAME for bitmap."
312msgstr "" 312msgstr ""
313 313
314#: src/bin/main.c:353 314#: src/bin/main.c:377
315msgid "" 315msgid ""
316"Split the terminal window. 'v' for vertical and 'h' for horizontal. Can be " 316"Split the terminal window. 'v' for vertical and 'h' for horizontal. Can be "
317"used multiple times. eg -S vhvv or --split hv More description available on " 317"used multiple times. eg -S vhvv or --split hv More description available on "
318"the man page." 318"the man page."
319msgstr "" 319msgstr ""
320 320
321#: src/bin/main.c:358 321#: src/bin/main.c:382
322msgid "Set emotion module to use." 322msgid "Set emotion module to use."
323msgstr "" 323msgstr ""
324 324
325#: src/bin/main.c:361 325#: src/bin/main.c:385
326msgid "Run the shell as a login shell." 326msgid "Run the shell as a login shell."
327msgstr "" 327msgstr ""
328 328
329#: src/bin/main.c:363 329#: src/bin/main.c:387
330msgid "Set mute mode for video playback." 330msgid "Set mute mode for video playback."
331msgstr "" 331msgstr ""
332 332
333#: src/bin/main.c:365 333#: src/bin/main.c:389
334msgid "Set cursor blink mode." 334msgid "Set cursor blink mode."
335msgstr "" 335msgstr ""
336 336
337#: src/bin/main.c:367 337#: src/bin/main.c:391
338msgid "Set visual bell mode." 338msgid "Set visual bell mode."
339msgstr "" 339msgstr ""
340 340
341#: src/bin/main.c:369 341#: src/bin/main.c:393
342msgid "Go into the fullscreen mode from the start." 342msgid "Go into the fullscreen mode from the start."
343msgstr "" 343msgstr ""
344 344
345#: src/bin/main.c:371 345#: src/bin/main.c:395
346msgid "Go into an iconic state from the start." 346msgid "Go into an iconic state from the start."
347msgstr "" 347msgstr ""
348 348
349#: src/bin/main.c:373 349#: src/bin/main.c:397
350msgid "Become a borderless managed window." 350msgid "Become a borderless managed window."
351msgstr "" 351msgstr ""
352 352
353#: src/bin/main.c:375 353#: src/bin/main.c:399
354msgid "Become an override-redirect window." 354msgid "Become an override-redirect window."
355msgstr "" 355msgstr ""
356 356
357#: src/bin/main.c:377 357#: src/bin/main.c:401
358msgid "Become maximized from the start." 358msgid "Become maximized from the start."
359msgstr "" 359msgstr ""
360 360
361#: src/bin/main.c:379 361#: src/bin/main.c:403
362msgid "Terminology is run without a window manager." 362msgid "Terminology is run without a window manager."
363msgstr "" 363msgstr ""
364 364
365#: src/bin/main.c:381 365#: src/bin/main.c:405
366msgid "Do not exit when the command process exits." 366msgid "Do not exit when the command process exits."
367msgstr "" 367msgstr ""
368 368
369#: src/bin/main.c:383 369#: src/bin/main.c:407
370msgid "Force single executable if multi-instance is enabled." 370msgid "Force single executable if multi-instance is enabled."
371msgstr "" 371msgstr ""
372 372
373#: src/bin/main.c:385 373#: src/bin/main.c:409
374msgid "Set TERM to 'xterm-256color' instead of 'xterm'." 374msgid "Set TERM to 'xterm-256color' instead of 'xterm'."
375msgstr "" 375msgstr ""
376 376
377#: src/bin/main.c:387 377#: src/bin/main.c:411
378msgid "Highlight links." 378msgid "Highlight links."
379msgstr "" 379msgstr ""
380 380
381#: src/bin/main.c:413 381#: src/bin/main.c:437
382msgid "show program version." 382msgid "show program version."
383msgstr "" 383msgstr ""
384 384
385#: src/bin/main.c:416 385#: src/bin/main.c:440
386msgid "show copyright." 386msgid "show copyright."
387msgstr "" 387msgstr ""
388 388
389#: src/bin/main.c:419 389#: src/bin/main.c:443
390msgid "show license." 390msgid "show license."
391msgstr "" 391msgstr ""
392 392
393#: src/bin/main.c:422 393#: src/bin/main.c:446
394msgid "show this message." 394msgid "show this message."
395msgstr "" 395msgstr ""
396 396
397#: src/bin/main.c:574 src/bin/miniview.c:38 397#: src/bin/main.c:578 src/bin/miniview.c:40
398#, c-format 398#, c-format
399msgid "Could not create logging domain '%s'." 399msgid "Could not create logging domain '%s'."
400msgstr "" 400msgstr ""
401 401
402#: src/bin/main.c:584 402#: src/bin/main.c:588
403msgid "Could not initialize key bindings." 403msgid "Could not initialize key bindings."
404msgstr "" 404msgstr ""
405 405
406#: src/bin/main.c:596 406#: src/bin/main.c:600
407msgid "Could not parse command line options." 407msgid "Could not parse command line options."
408msgstr "" 408msgstr ""
409 409
410#: src/bin/main.c:609 410#: src/bin/main.c:613
411#, c-format 411#, c-format
412msgid "option %s requires an argument!" 412msgid "option %s requires an argument!"
413msgstr "" 413msgstr ""
414 414
415#: src/bin/main.c:610 415#: src/bin/main.c:614
416msgid "invalid options found. See --help." 416msgid "invalid options found. See --help."
417msgstr "" 417msgstr ""
418 418
419#: src/bin/main.c:938 419#: src/bin/main.c:948
420msgid "invalid argument found for option -S/--split. See --help." 420msgid "invalid argument found for option -S/--split. See --help."
421msgstr "" 421msgstr ""
422 422
@@ -425,8 +425,8 @@ msgstr ""
425msgid "Could not Initialize the emotion module '%s'" 425msgid "Could not Initialize the emotion module '%s'"
426msgstr "" 426msgstr ""
427 427
428#: src/bin/media.c:1348 src/bin/termpty.c:571 src/bin/termpty.c:576 428#: src/bin/media.c:1348 src/bin/termpty.c:584 src/bin/termpty.c:589
429#: src/bin/termpty.c:580 429#: src/bin/termpty.c:593
430#, c-format 430#, c-format
431msgid "Function %s failed: %s" 431msgid "Function %s failed: %s"
432msgstr "" 432msgstr ""
@@ -435,191 +435,224 @@ msgstr ""
435msgid "Media visualizing is not supported" 435msgid "Media visualizing is not supported"
436msgstr "" 436msgstr ""
437 437
438#: src/bin/options_behavior.c:77 438#: src/bin/options_behavior.c:84
439#, c-format 439#, c-format
440msgid "%'d lines" 440msgid "%'d lines"
441msgstr "" 441msgstr ""
442 442
443#: src/bin/options_behavior.c:218 443#: src/bin/options_behavior.c:256
444msgid "Default cursor:" 444msgid "Default cursor:"
445msgstr "" 445msgstr ""
446 446
447#: src/bin/options_behavior.c:227 447#: src/bin/options_behavior.c:265
448msgid "Blinking Block" 448msgid "Blinking Block"
449msgstr "" 449msgstr ""
450 450
451#: src/bin/options_behavior.c:246 451#: src/bin/options_behavior.c:283
452msgid "Steady Block" 452msgid "Steady Block"
453msgstr "" 453msgstr ""
454 454
455#: src/bin/options_behavior.c:266 455#: src/bin/options_behavior.c:302
456msgid "Blinking Underline" 456msgid "Blinking Underline"
457msgstr "" 457msgstr ""
458 458
459#: src/bin/options_behavior.c:286 459#: src/bin/options_behavior.c:321
460msgid "Steady Underline" 460msgid "Steady Underline"
461msgstr "" 461msgstr ""
462 462
463#: src/bin/options_behavior.c:306 463#: src/bin/options_behavior.c:340
464msgid "Blinking Bar" 464msgid "Blinking Bar"
465msgstr "" 465msgstr ""
466 466
467#: src/bin/options_behavior.c:326 467#: src/bin/options_behavior.c:359
468msgid "Steady Bar" 468msgid "Steady Bar"
469msgstr "" 469msgstr ""
470 470
471#: src/bin/options_behavior.c:373 src/bin/options.c:233 471#: src/bin/options_behavior.c:398 src/bin/options.c:220
472msgid "Behavior" 472msgid "Behavior"
473msgstr "" 473msgstr ""
474 474
475#: src/bin/options_behavior.c:404 475#: src/bin/options_behavior.c:441
476msgid "Scroll to bottom on new content" 476msgid "Scroll to bottom on new content"
477msgstr "" 477msgstr ""
478 478
479#: src/bin/options_behavior.c:405 479#: src/bin/options_behavior.c:442
480msgid "Scroll to bottom when a key is pressed" 480msgid "Scroll to bottom when a key is pressed"
481msgstr "" 481msgstr ""
482 482
483#: src/bin/options_behavior.c:409 483#: src/bin/options_behavior.c:453
484msgid "Active Links:"
485msgstr ""
486
487#: src/bin/options_behavior.c:457
488msgid "On emails"
489msgstr ""
490
491#: src/bin/options_behavior.c:458
492msgid "On file paths"
493msgstr ""
494
495#: src/bin/options_behavior.c:459
496msgid "On URLs"
497msgstr ""
498
499#: src/bin/options_behavior.c:460
500msgid "Based on escape codes"
501msgstr ""
502
503#: src/bin/options_behavior.c:464
484msgid "React to key presses" 504msgid "React to key presses"
485msgstr "" 505msgstr ""
486 506
487#: src/bin/options_behavior.c:410 507#: src/bin/options_behavior.c:471
508msgid "Audio Support for key presses <failure>DISABLED</failure>!"
509msgstr ""
510
511#: src/bin/options_behavior.c:474
488msgid "Visual Bell" 512msgid "Visual Bell"
489msgstr "" 513msgstr ""
490 514
491#: src/bin/options_behavior.c:411 515#: src/bin/options_behavior.c:475
492msgid "Bell rings" 516msgid "Bell rings"
493msgstr "" 517msgstr ""
494 518
495#: src/bin/options_behavior.c:412 519#: src/bin/options_behavior.c:476
496msgid "Urgent Bell" 520msgid "Urgent Bell"
497msgstr "" 521msgstr ""
498 522
499#: src/bin/options_behavior.c:413 523#: src/bin/options_behavior.c:477
500msgid "Active Links"
501msgstr ""
502
503#: src/bin/options_behavior.c:414
504msgid "Multiple instances, one process" 524msgid "Multiple instances, one process"
505msgstr "" 525msgstr ""
506 526
507#: src/bin/options_behavior.c:415 527#: src/bin/options_behavior.c:478
508msgid "Set TERM to xterm-256color" 528msgid "Set TERM to xterm-256color"
509msgstr "" 529msgstr ""
510 530
511#: src/bin/options_behavior.c:416 531#: src/bin/options_behavior.c:479
512msgid "BackArrow sends Del (instead of BackSpace)" 532msgid "BackArrow sends Del (instead of BackSpace)"
513msgstr "" 533msgstr ""
514 534
515#: src/bin/options_behavior.c:417 535#: src/bin/options_behavior.c:480
516msgid "Drag & drop links" 536msgid "Drag & drop links"
517msgstr "" 537msgstr ""
518 538
519#: src/bin/options_behavior.c:418 539#: src/bin/options_behavior.c:481
520msgid "Start as login shell" 540msgid "Start as login shell"
521msgstr "" 541msgstr ""
522 542
523#: src/bin/options_behavior.c:419 543#: src/bin/options_behavior.c:482
524msgid "Focus split under the Mouse" 544msgid "Focus split under the Mouse"
525msgstr "" 545msgstr ""
526 546
527#: src/bin/options_behavior.c:420 547#: src/bin/options_behavior.c:483
528msgid "Focus-related visuals" 548msgid "Focus-related visuals"
529msgstr "" 549msgstr ""
530 550
531#: src/bin/options_behavior.c:421 551#: src/bin/options_behavior.c:484
532msgid "Gravatar integration" 552msgid "Gravatar integration"
533msgstr "" 553msgstr ""
534 554
535#: src/bin/options_behavior.c:422 555#: src/bin/options_behavior.c:485
536msgid "Show tabs" 556msgid "Show tabs"
537msgstr "" 557msgstr ""
538 558
539#: src/bin/options_behavior.c:423 559#: src/bin/options_behavior.c:486
540msgid "Always show miniview" 560msgid "Always show miniview"
541msgstr "" 561msgstr ""
542 562
543#: src/bin/options_behavior.c:424 563#: src/bin/options_behavior.c:487
544msgid "Enable special Terminology escape codes" 564msgid "Enable special Terminology escape codes"
545msgstr "" 565msgstr ""
546 566
547#: src/bin/options_behavior.c:425 567#: src/bin/options_behavior.c:488
548msgid "Open new terminals in current working directory" 568msgid "Open new terminals in current working directory"
549msgstr "" 569msgstr ""
550 570
551#: src/bin/options_behavior.c:433 571#: src/bin/options_behavior.c:489
572msgid "Treat Emojis as double-width characters"
573msgstr ""
574
575#: src/bin/options_behavior.c:498
552msgid "Always open at size:" 576msgid "Always open at size:"
553msgstr "" 577msgstr ""
554 578
555#: src/bin/options_behavior.c:443 579#: src/bin/options_behavior.c:508
556msgid "Set Current:" 580msgid "Set Current:"
557msgstr "" 581msgstr ""
558 582
559#: src/bin/options_behavior.c:454 583#: src/bin/options_behavior.c:519
560msgid "Width:" 584msgid "Width:"
561msgstr "" 585msgstr ""
562 586
563#: src/bin/options_behavior.c:476 587#: src/bin/options_behavior.c:541
564msgid "Height:" 588msgid "Height:"
565msgstr "" 589msgstr ""
566 590
567#: src/bin/options_behavior.c:505 591#: src/bin/options_behavior.c:565
568msgid "Scrollback:" 592msgid "Scrollback:"
569msgstr "" 593msgstr ""
570 594
571#: src/bin/options_behavior.c:537 595#: src/bin/options_behavior.c:599
572msgid "Tab zoom/switch animation time:" 596msgid "Tab zoom/switch animation time:"
573msgstr "" 597msgstr ""
574 598
575#: src/bin/options_behavior.c:538 599#: src/bin/options_behavior.c:600
576msgid "" 600msgid ""
577"Set the time of the animation that<br>takes places on tab switches,<br>be " 601"Set the time of the animation that<br>takes places on tab switches,<br>be "
578"them by key binding, mouse<br>wheel or tabs panel mouse move" 602"them by key binding, mouse<br>wheel or tabs panel mouse move"
579msgstr "" 603msgstr ""
580 604
581#: src/bin/options_behavior.c:551 src/bin/options_behavior.c:552 605#: src/bin/options_behavior.c:612 src/bin/options_behavior.c:613
606#: src/bin/options_behavior.c:644 src/bin/options_behavior.c:645
582#, c-format 607#, c-format
583msgid "%1.1f s" 608msgid "%1.1f s"
584msgstr "" 609msgstr ""
585 610
586#: src/bin/options.c:205 611#: src/bin/options_behavior.c:630
612msgid "Translucent"
613msgstr ""
614
615#: src/bin/options_behavior.c:631
616msgid "Auto hide the mouse cursor when idle:"
617msgstr ""
618
619#: src/bin/options.c:192
587msgid "Options" 620msgid "Options"
588msgstr "" 621msgstr ""
589 622
590#: src/bin/options.c:234 src/bin/options_font.c:425 623#: src/bin/options.c:221 src/bin/options_font.c:425
591msgid "Font" 624msgid "Font"
592msgstr "" 625msgstr ""
593 626
594#: src/bin/options.c:235 src/bin/options_theme.c:154 627#: src/bin/options.c:222 src/bin/options_theme.c:154
595msgid "Theme" 628msgid "Theme"
596msgstr "" 629msgstr ""
597 630
598#: src/bin/options.c:236 631#: src/bin/options.c:223
599msgid "Background" 632msgid "Background"
600msgstr "" 633msgstr ""
601 634
602#: src/bin/options.c:237 src/bin/options_colors.c:234 635#: src/bin/options.c:224 src/bin/options_colors.c:234
603msgid "Colors" 636msgid "Colors"
604msgstr "" 637msgstr ""
605 638
606#: src/bin/options.c:238 src/bin/options_video.c:58 639#: src/bin/options.c:225 src/bin/options_video.c:58
607msgid "Video" 640msgid "Video"
608msgstr "" 641msgstr ""
609 642
610#: src/bin/options.c:239 643#: src/bin/options.c:226
611msgid "Keys" 644msgid "Keys"
612msgstr "" 645msgstr ""
613 646
614#: src/bin/options.c:240 src/bin/options_helpers.c:193 647#: src/bin/options.c:227 src/bin/options_helpers.c:193
615msgid "Helpers" 648msgid "Helpers"
616msgstr "" 649msgstr ""
617 650
618#: src/bin/options.c:241 651#: src/bin/options.c:228
619msgid "Toolkit" 652msgid "Toolkit"
620msgstr "" 653msgstr ""
621 654
622#: src/bin/options.c:252 655#: src/bin/options.c:239
623msgid "Temporary" 656msgid "Temporary"
624msgstr "" 657msgstr ""
625 658
@@ -735,35 +768,35 @@ msgstr ""
735msgid "Local (All):" 768msgid "Local (All):"
736msgstr "" 769msgstr ""
737 770
738#: src/bin/options_keys.c:64 771#: src/bin/options_keys.c:66
739msgid "Ctrl+" 772msgid "Ctrl+"
740msgstr "" 773msgstr ""
741 774
742#: src/bin/options_keys.c:65 775#: src/bin/options_keys.c:67
743msgid "Alt+" 776msgid "Alt+"
744msgstr "" 777msgstr ""
745 778
746#: src/bin/options_keys.c:66 779#: src/bin/options_keys.c:68
747msgid "Shift+" 780msgid "Shift+"
748msgstr "" 781msgstr ""
749 782
750#: src/bin/options_keys.c:67 783#: src/bin/options_keys.c:69
751msgid "Win+" 784msgid "Win+"
752msgstr "" 785msgstr ""
753 786
754#: src/bin/options_keys.c:68 787#: src/bin/options_keys.c:70
755msgid "Meta+" 788msgid "Meta+"
756msgstr "" 789msgstr ""
757 790
758#: src/bin/options_keys.c:69 791#: src/bin/options_keys.c:71
759msgid "Hyper+" 792msgid "Hyper+"
760msgstr "" 793msgstr ""
761 794
762#: src/bin/options_keys.c:80 795#: src/bin/options_keys.c:82
763msgid "Delete" 796msgid "Delete"
764msgstr "" 797msgstr ""
765 798
766#: src/bin/options_keys.c:266 799#: src/bin/options_keys.c:269
767msgid "Please press key sequence" 800msgid "Please press key sequence"
768msgstr "" 801msgstr ""
769 802
@@ -771,7 +804,7 @@ msgstr ""
771msgid "Key Bindings" 804msgid "Key Bindings"
772msgstr "" 805msgstr ""
773 806
774#: src/bin/options_keys.c:453 807#: src/bin/options_keys.c:457
775msgid "Reset bindings" 808msgid "Reset bindings"
776msgstr "" 809msgstr ""
777 810
@@ -811,107 +844,126 @@ msgstr ""
811msgid "Unknown command: %s" 844msgid "Unknown command: %s"
812msgstr "" 845msgstr ""
813 846
814#: src/bin/termio.c:553 847#: src/bin/termio.c:352
815#, c-format 848#, c-format
816msgid "Could not get working directory of pid %i: %s" 849msgid "Could not get working directory of pid %i: %s"
817msgstr "" 850msgstr ""
818 851
819#: src/bin/termio.c:567 852#: src/bin/termio.c:367
820#, c-format 853#, c-format
821msgid "Could not load working directory %s: %s" 854msgid "Could not load working directory %s: %s"
822msgstr "" 855msgstr ""
823 856
824#: src/bin/termio.c:1052 857#: src/bin/termio.c:1085
858#, c-format
859msgid "unsupported selection format '%s'"
860msgstr ""
861
862#: src/bin/termio.c:1178
825msgid "Preview" 863msgid "Preview"
826msgstr "" 864msgstr ""
827 865
828#: src/bin/termio.c:1055 866#: src/bin/termio.c:1181
829msgid "Open" 867msgid "Open"
830msgstr "" 868msgstr ""
831 869
832#: src/bin/termio.c:1066 870#: src/bin/termio.c:1188
833msgid "Copy relative path" 871msgid "Copy relative path"
834msgstr "" 872msgstr ""
835 873
836#: src/bin/termio.c:1068 874#: src/bin/termio.c:1190
837msgid "Copy full path" 875msgid "Copy full path"
838msgstr "" 876msgstr ""
839 877
840#: src/bin/termio.c:2435 878#: src/bin/termio.c:2565
841#, c-format
842msgid "unsupported selection format '%s'"
843msgstr ""
844
845#: src/bin/termio.c:4099
846msgid "Open as URL" 879msgid "Open as URL"
847msgstr "" 880msgstr ""
848 881
849#: src/bin/termio.c:6091 882#: src/bin/termio.c:3988
850msgid "Could not allocate termpty" 883msgid "Could not allocate termpty"
851msgstr "" 884msgstr ""
852 885
853#: src/bin/termpty.c:97 src/bin/termpty.c:139 src/bin/termpty.c:186 886#: src/bin/termpty.c:99 src/bin/termpty.c:141 src/bin/termpty.c:188
854#, c-format 887#, c-format
855msgid "memerr: %s" 888msgid "memerr: %s"
856msgstr "" 889msgstr ""
857 890
858#: src/bin/termpty.c:222 891#: src/bin/termpty.c:224
859#, c-format 892#, c-format
860msgid "Size set ioctl failed: %s" 893msgid "Size set ioctl failed: %s"
861msgstr "" 894msgstr ""
862 895
863#: src/bin/termpty.c:547 896#: src/bin/termpty.c:560
864#, c-format 897#, c-format
865msgid "Could not find shell, falling back to %s" 898msgid "Could not find shell, falling back to %s"
866msgstr "" 899msgstr ""
867 900
868#: src/bin/termpty.c:587 901#: src/bin/termpty.c:600
869#, c-format 902#, c-format
870msgid "open() of pty '%s' failed: %s" 903msgid "open() of pty '%s' failed: %s"
871msgstr "" 904msgstr ""
872 905
873#: src/bin/termpty.c:594 src/bin/termpty.c:600 906#: src/bin/termpty.c:607 src/bin/termpty.c:613
874#, c-format 907#, c-format
875msgid "fcntl() on pty '%s' failed: %s" 908msgid "fcntl() on pty '%s' failed: %s"
876msgstr "" 909msgstr ""
877 910
878#: src/bin/termpty.c:609 911#: src/bin/termpty.c:622
879#, c-format 912#, c-format
880msgid "ioctl() on pty '%s' failed: %s" 913msgid "ioctl() on pty '%s' failed: %s"
881msgstr "" 914msgstr ""
882 915
883#: src/bin/termpty.c:653 src/bin/termpty.c:661 src/bin/termpty.c:670 916#: src/bin/termpty.c:666 src/bin/termpty.c:674 src/bin/termpty.c:683
884#, c-format 917#, c-format
885msgid "Could not change current directory to '%s': %s" 918msgid "Could not change current directory to '%s': %s"
886msgstr "" 919msgstr ""
887 920
888#: src/bin/termpty.c:1198 921#: src/bin/termpty.c:1263
889#, c-format 922#, c-format
890msgid "Could not write to file descriptor %d: %s" 923msgid "Could not write to file descriptor %d: %s"
891msgstr "" 924msgstr ""
892 925
893#: src/bin/utils.c:48 926#: src/bin/utils.c:48 src/bin/utils.c:74
894#, c-format 927#, c-format
895msgid "Could not load any theme for group=%s: %s" 928msgid "Could not load any theme for group=%s: %s"
896msgstr "" 929msgstr ""
897 930
898#: src/bin/utils.c:65 931#: src/bin/utils.c:91
899#, c-format 932#, c-format
900msgid "Could not load default theme for group=%s: %s" 933msgid "Could not load default theme for group=%s: %s"
901msgstr "" 934msgstr ""
902 935
903#: src/bin/win.c:1756 936#: src/bin/win.c:282 src/bin/win.c:302
937msgid "Scale"
938msgstr ""
939
940#: src/bin/win.c:325
941msgid "Select prefered size so that this text is readable."
942msgstr ""
943
944#: src/bin/win.c:332
945msgid ""
946"The scale configuration can be changed in the Settings (right click on the "
947"terminal) → Toolkit, or by starting the command <keyword>elementary_config</"
948"keyword>."
949msgstr ""
950
951#: src/bin/win.c:337
952msgid "Done"
953msgstr ""
954
955#: src/bin/win.c:1962
904msgid "Ecore IMF failed" 956msgid "Ecore IMF failed"
905msgstr "" 957msgstr ""
906 958
907#: src/bin/win.c:4327 959#: src/bin/win.c:4577
908msgid "Ok" 960msgid "Ok"
909msgstr "" 961msgstr ""
910 962
911#: src/bin/win.c:4332 963#: src/bin/win.c:4582
912msgid "Cancel" 964msgid "Cancel"
913msgstr "" 965msgstr ""
914 966
915#: src/bin/win.c:5548 967#: src/bin/win.c:5821
916msgid "Couldn't find terminology theme! Forgot 'ninja install'?" 968msgid "Couldn't find terminology theme! Forgot 'ninja install'?"
917msgstr "" 969msgstr ""
diff --git a/src/bin/config.c b/src/bin/config.c
index b205b8f..52ff2d2 100644
--- a/src/bin/config.c
+++ b/src/bin/config.c
@@ -7,7 +7,8 @@
7#include "col.h" 7#include "col.h"
8#include "utils.h" 8#include "utils.h"
9 9
10#define CONF_VER 22 10#define CONF_VER 23
11#define CONFIG_KEY "config"
11 12
12#define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min;} 13#define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min;}
13 14
@@ -174,9 +175,11 @@ config_init(void)
174 (edd_base, Config, "keys", keys, edd_keys); 175 (edd_base, Config, "keys", keys, edd_keys);
175 EET_DATA_DESCRIPTOR_ADD_BASIC 176 EET_DATA_DESCRIPTOR_ADD_BASIC
176 (edd_base, Config, "gravatar", gravatar, EET_T_UCHAR); 177 (edd_base, Config, "gravatar", gravatar, EET_T_UCHAR);
177 EET_DATA_DESCRIPTOR_ADD_BASIC 178 EET_DATA_DESCRIPTOR_ADD_BASIC /* DEPRECATED, NO LONGER USED */
178 (edd_base, Config, "notabs", notabs, EET_T_UCHAR); 179 (edd_base, Config, "notabs", notabs, EET_T_UCHAR);
179 EET_DATA_DESCRIPTOR_ADD_BASIC 180 EET_DATA_DESCRIPTOR_ADD_BASIC
181 (edd_base, Config, "show_tabs", show_tabs, EET_T_UCHAR);
182 EET_DATA_DESCRIPTOR_ADD_BASIC
180 (edd_base, Config, "mv_always_show", mv_always_show, EET_T_UCHAR); 183 (edd_base, Config, "mv_always_show", mv_always_show, EET_T_UCHAR);
181 EET_DATA_DESCRIPTOR_ADD_BASIC 184 EET_DATA_DESCRIPTOR_ADD_BASIC
182 (edd_base, Config, "ty_escapes", ty_escapes, EET_T_UCHAR); 185 (edd_base, Config, "ty_escapes", ty_escapes, EET_T_UCHAR);
@@ -207,7 +210,7 @@ config_shutdown(void)
207} 210}
208 211
209void 212void
210config_save(Config *config, const char *key) 213config_save(Config *config)
211{ 214{
212 Eet_File *ef; 215 Eet_File *ef;
213 char buf[PATH_MAX], buf2[PATH_MAX]; 216 char buf[PATH_MAX], buf2[PATH_MAX];
@@ -221,7 +224,6 @@ config_save(Config *config, const char *key)
221 main_config_sync(config); 224 main_config_sync(config);
222 return; 225 return;
223 } 226 }
224 if (!key) key = config->config_key;
225 config->font.orig_size = config->font.size; 227 config->font.orig_size = config->font.size;
226 eina_stringshare_del(config->font.orig_name); 228 eina_stringshare_del(config->font.orig_name);
227 config->font.orig_name = NULL; 229 config->font.orig_name = NULL;
@@ -236,7 +238,7 @@ config_save(Config *config, const char *key)
236 ef = eet_open(buf, EET_FILE_MODE_WRITE); 238 ef = eet_open(buf, EET_FILE_MODE_WRITE);
237 if (ef) 239 if (ef)
238 { 240 {
239 ok = eet_data_write(ef, edd_base, key, config, 1); 241 ok = eet_data_write(ef, edd_base, CONFIG_KEY, config, 1);
240 eet_close(ef); 242 eet_close(ef);
241 if (ok) ecore_file_mv(buf, buf2); 243 if (ok) ecore_file_mv(buf, buf2);
242 } 244 }
@@ -292,7 +294,7 @@ config_sync(const Config *config_src, Config *config)
292 config->disable_focus_visuals = config_src->disable_focus_visuals; 294 config->disable_focus_visuals = config_src->disable_focus_visuals;
293 /* TODO: config->keys */ 295 /* TODO: config->keys */
294 config->gravatar = config_src->gravatar; 296 config->gravatar = config_src->gravatar;
295 config->notabs = config_src->notabs; 297 config->show_tabs = config_src->show_tabs;
296 config->mv_always_show = config_src->mv_always_show; 298 config->mv_always_show = config_src->mv_always_show;
297 config->ty_escapes = config_src->ty_escapes; 299 config->ty_escapes = config_src->ty_escapes;
298 config->changedir_to_current = config_src->changedir_to_current; 300 config->changedir_to_current = config_src->changedir_to_current;
@@ -554,7 +556,7 @@ config_new(void)
554 config->disable_focus_visuals = EINA_FALSE; 556 config->disable_focus_visuals = EINA_FALSE;
555 config->colors_use = EINA_FALSE; 557 config->colors_use = EINA_FALSE;
556 config->gravatar = EINA_TRUE; 558 config->gravatar = EINA_TRUE;
557 config->notabs = EINA_FALSE; 559 config->show_tabs = EINA_TRUE;
558 config->mv_always_show = EINA_FALSE; 560 config->mv_always_show = EINA_FALSE;
559 config->ty_escapes = EINA_TRUE; 561 config->ty_escapes = EINA_TRUE;
560 config->changedir_to_current = EINA_TRUE; 562 config->changedir_to_current = EINA_TRUE;
@@ -581,21 +583,19 @@ config_new(void)
581 583
582 584
583Config * 585Config *
584config_load(const char *key) 586config_load(void)
585{ 587{
586 Eet_File *ef; 588 Eet_File *ef;
587 char buf[PATH_MAX]; 589 char buf[PATH_MAX];
588 const char *cfgdir; 590 const char *cfgdir;
589 Config *config = NULL; 591 Config *config = NULL;
590 592
591 EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL);
592
593 cfgdir = _config_home_get(); 593 cfgdir = _config_home_get();
594 snprintf(buf, sizeof(buf), "%s/terminology/config/standard/base.cfg", cfgdir); 594 snprintf(buf, sizeof(buf), "%s/terminology/config/standard/base.cfg", cfgdir);
595 ef = eet_open(buf, EET_FILE_MODE_READ); 595 ef = eet_open(buf, EET_FILE_MODE_READ);
596 if (ef) 596 if (ef)
597 { 597 {
598 config = eet_data_read(ef, edd_base, key); 598 config = eet_data_read(ef, edd_base, CONFIG_KEY);
599 eet_close(ef); 599 eet_close(ef);
600 if (config) 600 if (config)
601 { 601 {
@@ -707,7 +707,11 @@ config_load(const char *key)
707 config->hide_cursor = 5.0; 707 config->hide_cursor = 5.0;
708 EINA_FALLTHROUGH; 708 EINA_FALLTHROUGH;
709 /*pass through*/ 709 /*pass through*/
710 case CONF_VER: /* 22 */ 710 case 22:
711 config->show_tabs = !config->notabs;
712 EINA_FALLTHROUGH;
713 /*pass through*/
714 case CONF_VER: /* 23 */
711 config->version = CONF_VER; 715 config->version = CONF_VER;
712 break; 716 break;
713 default: 717 default:
@@ -731,9 +735,6 @@ config_load(const char *key)
731 config->font_set = 1; 735 config->font_set = 1;
732 } 736 }
733 737
734 if (config)
735 config->config_key = eina_stringshare_add(key); /* not in eet */
736
737 return config; 738 return config;
738} 739}
739 740
@@ -804,10 +805,9 @@ config_fork(const Config *config)
804 CPY(mouse_over_focus); 805 CPY(mouse_over_focus);
805 CPY(disable_focus_visuals); 806 CPY(disable_focus_visuals);
806 CPY(temporary); 807 CPY(temporary);
807 SCPY(config_key);
808 CPY(font_set); 808 CPY(font_set);
809 CPY(gravatar); 809 CPY(gravatar);
810 CPY(notabs); 810 CPY(show_tabs);
811 CPY(mv_always_show); 811 CPY(mv_always_show);
812 CPY(ty_escapes); 812 CPY(ty_escapes);
813 CPY(changedir_to_current); 813 CPY(changedir_to_current);
@@ -851,8 +851,6 @@ config_del(Config *config)
851 eina_stringshare_del(config->helper.local.video); 851 eina_stringshare_del(config->helper.local.video);
852 eina_stringshare_del(config->helper.local.image); 852 eina_stringshare_del(config->helper.local.image);
853 853
854 eina_stringshare_del(config->config_key); /* not in eet */
855
856 EINA_LIST_FREE(config->keys, key) 854 EINA_LIST_FREE(config->keys, key)
857 { 855 {
858 eina_stringshare_del(key->keyname); 856 eina_stringshare_del(key->keyname);
diff --git a/src/bin/config.h b/src/bin/config.h
index e9e65c7..aa3027b 100644
--- a/src/bin/config.h
+++ b/src/bin/config.h
@@ -89,7 +89,8 @@ struct _Config
89 Eina_Bool disable_focus_visuals; 89 Eina_Bool disable_focus_visuals;
90 Eina_Bool colors_use; 90 Eina_Bool colors_use;
91 Eina_Bool gravatar; 91 Eina_Bool gravatar;
92 Eina_Bool notabs; 92 Eina_Bool notabs; /* DEPRECATED */
93 Eina_Bool show_tabs;
93 Eina_Bool mv_always_show; 94 Eina_Bool mv_always_show;
94 Eina_Bool ty_escapes; 95 Eina_Bool ty_escapes;
95 Eina_Bool changedir_to_current; 96 Eina_Bool changedir_to_current;
@@ -99,16 +100,15 @@ struct _Config
99 100
100 Eina_Bool temporary; /* not in EET */ 101 Eina_Bool temporary; /* not in EET */
101 Eina_Bool font_set; /* not in EET */ 102 Eina_Bool font_set; /* not in EET */
102 const char *config_key; /* not in EET, the key that config was loaded */
103}; 103};
104 104
105void config_init(void); 105void config_init(void);
106void config_shutdown(void); 106void config_shutdown(void);
107void config_sync(const Config *config_src, Config *config); 107void config_sync(const Config *config_src, Config *config);
108void config_save(Config *config, const char *key); 108void config_save(Config *config);
109Config *config_load(const char *key); 109Config *config_load(void);
110Config *config_fork(const Config *config); 110Config *config_fork(const Config *config);
111Config *config_new(); 111Config *config_new(void);
112void config_del(Config *config); 112void config_del(Config *config);
113void config_default_font_set(Config *config, Evas *evas); 113void config_default_font_set(Config *config, Evas *evas);
114void config_reset_keys(Config *config); 114void config_reset_keys(Config *config);
diff --git a/src/bin/main.c b/src/bin/main.c
index 9e77386..b50dbbe 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -94,10 +94,10 @@ main_ipc_new(Ipc_Instance *inst)
94 if (inst->xterm_256color) nargc += 1; 94 if (inst->xterm_256color) nargc += 1;
95 if (inst->active_links) nargc += 1; 95 if (inst->active_links) nargc += 1;
96 if (inst->cmd) nargc += 2; 96 if (inst->cmd) nargc += 2;
97 97
98 nargv = calloc(nargc + 1, sizeof(char *)); 98 nargv = calloc(nargc + 1, sizeof(char *));
99 if (!nargv) return; 99 if (!nargv) return;
100 100
101 i = 0; 101 i = 0;
102 nargv[i++] = pargv[0]; 102 nargv[i++] = pargv[0];
103 if (inst->cd) 103 if (inst->cd)
@@ -261,13 +261,13 @@ main_ipc_new(Ipc_Instance *inst)
261 { 261 {
262 char *fname = alloca(strlen(inst->font) + 1); 262 char *fname = alloca(strlen(inst->font) + 1);
263 char *p; 263 char *p;
264 264
265 strcpy(fname, inst->font); 265 strcpy(fname, inst->font);
266 p = strrchr(fname, '/'); 266 p = strrchr(fname, '/');
267 if (p) 267 if (p)
268 { 268 {
269 int sz; 269 int sz;
270 270
271 *p = 0; 271 *p = 0;
272 p++; 272 p++;
273 sz = atoi(p); 273 sz = atoi(p);
@@ -281,7 +281,7 @@ main_ipc_new(Ipc_Instance *inst)
281 char buf[4096], *file; 281 char buf[4096], *file;
282 Eina_List *files; 282 Eina_List *files;
283 int n = strlen(inst->font); 283 int n = strlen(inst->font);
284 284
285 snprintf(buf, sizeof(buf), "%s/fonts", elm_app_data_dir_get()); 285 snprintf(buf, sizeof(buf), "%s/fonts", elm_app_data_dir_get());
286 files = ecore_file_ls(buf); 286 files = ecore_file_ls(buf);
287 EINA_LIST_FREE(files, file) 287 EINA_LIST_FREE(files, file)
@@ -582,7 +582,7 @@ elm_main(int argc, char **argv)
582 582
583 config_init(); 583 config_init();
584 584
585 _main_config = config_load("config"); 585 _main_config = config_load();
586 if (key_bindings_load(_main_config) < 0) 586 if (key_bindings_load(_main_config) < 0)
587 { 587 {
588 CRITICAL(_("Could not initialize key bindings.")); 588 CRITICAL(_("Could not initialize key bindings."));
@@ -809,7 +809,7 @@ elm_main(int argc, char **argv)
809 pos_set = 1; 809 pos_set = 1;
810 } 810 }
811 } 811 }
812 812
813 if (!size_set) 813 if (!size_set)
814 { 814 {
815 if (config->custom_geometry) 815 if (config->custom_geometry)
@@ -839,9 +839,9 @@ remote:
839 { 839 {
840 Ipc_Instance inst; 840 Ipc_Instance inst;
841 char cwdbuf[4096]; 841 char cwdbuf[4096];
842 842
843 memset(&inst, 0, sizeof(Ipc_Instance)); 843 memset(&inst, 0, sizeof(Ipc_Instance));
844 844
845 inst.cmd = cmd; 845 inst.cmd = cmd;
846 if (cd) inst.cd = cd; 846 if (cd) inst.cd = cd;
847 else inst.cd = getcwd(cwdbuf, sizeof(cwdbuf)); 847 else inst.cd = getcwd(cwdbuf, sizeof(cwdbuf));
@@ -970,6 +970,9 @@ remote:
970 ecore_con_url_init(); 970 ecore_con_url_init();
971 971
972 controls_init(); 972 controls_init();
973
974 win_scale_wizard(win, term);
975
973 terminology_starting_up = EINA_FALSE; 976 terminology_starting_up = EINA_FALSE;
974 977
975 elm_run(); 978 elm_run();
diff --git a/src/bin/media.c b/src/bin/media.c
index bda41b4..b43eadc 100644
--- a/src/bin/media.c
+++ b/src/bin/media.c
@@ -9,6 +9,7 @@
9#include "media.h" 9#include "media.h"
10#include "config.h" 10#include "config.h"
11#include "utils.h" 11#include "utils.h"
12#include "termiolink.h"
12 13
13typedef struct _Media Media; 14typedef struct _Media Media;
14 15
diff --git a/src/bin/options_background.c b/src/bin/options_background.c
index a7d836e..530ade1 100644
--- a/src/bin/options_background.c
+++ b/src/bin/options_background.c
@@ -77,7 +77,7 @@ _cb_op_video_trans_chg(void *data,
77 config->translucent = elm_check_state_get(obj); 77 config->translucent = elm_check_state_get(obj);
78 elm_object_disabled_set(ctx->op_opacity, !config->translucent); 78 elm_object_disabled_set(ctx->op_opacity, !config->translucent);
79 main_trans_update(config); 79 main_trans_update(config);
80 config_save(config, NULL); 80 config_save(config);
81} 81}
82 82
83static void 83static void
@@ -92,7 +92,7 @@ _cb_op_video_opacity_chg(void *data,
92 if (!config->translucent) 92 if (!config->translucent)
93 return; 93 return;
94 main_trans_update(config); 94 main_trans_update(config);
95 config_save(config, NULL); 95 config_save(config);
96} 96}
97 97
98static void 98static void
@@ -227,12 +227,12 @@ _item_selected(void *data,
227 // no background 227 // no background
228 eina_stringshare_del(config->background); 228 eina_stringshare_del(config->background);
229 config->background = NULL; 229 config->background = NULL;
230 config_save(config, NULL); 230 config_save(config);
231 main_media_update(config); 231 main_media_update(config);
232 } 232 }
233 else if (eina_stringshare_replace(&(config->background), item->path)) 233 else if (eina_stringshare_replace(&(config->background), item->path))
234 { 234 {
235 config_save(config, NULL); 235 config_save(config);
236 main_media_update(config); 236 main_media_update(config);
237 } 237 }
238} 238}
@@ -505,7 +505,7 @@ _cb_grid_doubleclick(void *data,
505 if (newfile) 505 if (newfile)
506 { 506 {
507 eina_stringshare_replace(&(config->background), newfile); 507 eina_stringshare_replace(&(config->background), newfile);
508 config_save(config, NULL); 508 config_save(config);
509 main_media_update(config); 509 main_media_update(config);
510 eina_stringshare_del(newfile); 510 eina_stringshare_del(newfile);
511 _bubble_show(ctx, _("Picture imported")); 511 _bubble_show(ctx, _("Picture imported"));
diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c
index 524ecc7..1fc4e4a 100644
--- a/src/bin/options_behavior.c
+++ b/src/bin/options_behavior.c
@@ -1,5 +1,6 @@
1#include "private.h" 1#include "private.h"
2 2
3
3#include <math.h> 4#include <math.h>
4#include <Elementary.h> 5#include <Elementary.h>
5#include <assert.h> 6#include <assert.h>
@@ -34,7 +35,7 @@ _cb_op_behavior_##_cfg_name(void *data, Evas_Object *obj, \
34 config->_cfg_name = elm_check_state_get(obj); \ 35 config->_cfg_name = elm_check_state_get(obj); \
35 termio_config_update(ctx->term); \ 36 termio_config_update(ctx->term); \
36 windows_update(); \ 37 windows_update(); \
37 config_save(config, NULL); \ 38 config_save(config); \
38} 39}
39 40
40CB(jump_on_change, 0); 41CB(jump_on_change, 0);
@@ -55,7 +56,7 @@ CB(login_shell, 0);
55CB(mouse_over_focus, 0); 56CB(mouse_over_focus, 0);
56CB(disable_focus_visuals, 1); 57CB(disable_focus_visuals, 1);
57CB(gravatar, 0); 58CB(gravatar, 0);
58CB(notabs, 1); 59CB(show_tabs, 0);
59CB(mv_always_show, 0); 60CB(mv_always_show, 0);
60CB(ty_escapes, 0); 61CB(ty_escapes, 0);
61CB(changedir_to_current, 0); 62CB(changedir_to_current, 0);
@@ -94,7 +95,7 @@ _cb_op_behavior_sback_chg(void *data,
94 95
95 config->scrollback = (double) sback_double_to_expo_int(elm_slider_value_get(obj)); 96 config->scrollback = (double) sback_double_to_expo_int(elm_slider_value_get(obj));
96 termio_config_update(ctx->term); 97 termio_config_update(ctx->term);
97 config_save(config, NULL); 98 config_save(config);
98} 99}
99 100
100static void 101static void
@@ -107,7 +108,7 @@ _cb_op_behavior_tab_zoom_slider_chg(void *data,
107 108
108 config->tab_zoom = (double)(int)round(elm_slider_value_get(obj) * 10.0) / 10.0; 109 config->tab_zoom = (double)(int)round(elm_slider_value_get(obj) * 10.0) / 10.0;
109 termio_config_update(ctx->term); 110 termio_config_update(ctx->term);
110 config_save(config, NULL); 111 config_save(config);
111} 112}
112 113
113static void 114static void
@@ -124,7 +125,7 @@ _cb_op_behavior_custom_geometry_current_set(void *data,
124 elm_spinner_value_set(ctx->op_w, config->cg_width); 125 elm_spinner_value_set(ctx->op_w, config->cg_width);
125 elm_spinner_value_set(ctx->op_h, config->cg_height); 126 elm_spinner_value_set(ctx->op_h, config->cg_height);
126 } 127 }
127 config_save(config, NULL); 128 config_save(config);
128} 129}
129 130
130static void 131static void
@@ -141,7 +142,7 @@ _cb_op_behavior_custom_geometry(void *data,
141 config->cg_width = (int) elm_spinner_value_get(ctx->op_w); 142 config->cg_width = (int) elm_spinner_value_get(ctx->op_w);
142 config->cg_height = (int) elm_spinner_value_get(ctx->op_h); 143 config->cg_height = (int) elm_spinner_value_get(ctx->op_h);
143 } 144 }
144 config_save(config, NULL); 145 config_save(config);
145 146
146 elm_object_disabled_set(ctx->op_w, !config->custom_geometry); 147 elm_object_disabled_set(ctx->op_w, !config->custom_geometry);
147 elm_object_disabled_set(ctx->op_h, !config->custom_geometry); 148 elm_object_disabled_set(ctx->op_h, !config->custom_geometry);
@@ -159,7 +160,7 @@ _cb_op_behavior_cg_width(void *data,
159 if (config->custom_geometry) 160 if (config->custom_geometry)
160 { 161 {
161 config->cg_width = (int) elm_spinner_value_get(obj); 162 config->cg_width = (int) elm_spinner_value_get(obj);
162 config_save(config, NULL); 163 config_save(config);
163 } 164 }
164} 165}
165 166
@@ -174,7 +175,7 @@ _cb_op_behavior_cg_height(void *data,
174 if (config->custom_geometry) 175 if (config->custom_geometry)
175 { 176 {
176 config->cg_height = (int) elm_spinner_value_get(obj); 177 config->cg_height = (int) elm_spinner_value_get(obj);
177 config_save(config, NULL); 178 config_save(config);
178 } 179 }
179} 180}
180 181
@@ -203,7 +204,7 @@ _cursors_changed_cb(void *data, Evas_Object *obj,
203 204
204 termio_config_update(ctx->term); 205 termio_config_update(ctx->term);
205 windows_update(); 206 windows_update();
206 config_save(config, NULL); 207 config_save(config);
207} 208}
208 209
209static void 210static void
@@ -224,7 +225,7 @@ _cb_op_hide_cursor_changed(void *data,
224 config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0; 225 config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0;
225 elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE); 226 elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE);
226 } 227 }
227 config_save(config, NULL); 228 config_save(config);
228} 229}
229 230
230static void 231static void
@@ -240,7 +241,7 @@ _cb_hide_cursor_slider_chg(void *data,
240 return; 241 return;
241 242
242 config->hide_cursor = value; 243 config->hide_cursor = value;
243 config_save(config, NULL); 244 config_save(config);
244} 245}
245 246
246 247
@@ -482,7 +483,7 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
482 CX(_("Focus split under the Mouse"), mouse_over_focus, 0); 483 CX(_("Focus split under the Mouse"), mouse_over_focus, 0);
483 CX(_("Focus-related visuals"), disable_focus_visuals, 1); 484 CX(_("Focus-related visuals"), disable_focus_visuals, 1);
484 CX(_("Gravatar integration"), gravatar, 0); 485 CX(_("Gravatar integration"), gravatar, 0);
485 CX(_("Show tabs"), notabs, 1); 486 CX(_("Show tabs"), show_tabs, 0);
486 CX(_("Always show miniview"), mv_always_show, 0); 487 CX(_("Always show miniview"), mv_always_show, 0);
487 CX(_("Enable special Terminology escape codes"), ty_escapes, 0); 488 CX(_("Enable special Terminology escape codes"), ty_escapes, 0);
488 CX(_("Open new terminals in current working directory"), changedir_to_current, 0); 489 CX(_("Open new terminals in current working directory"), changedir_to_current, 0);
diff --git a/src/bin/options_colors.c b/src/bin/options_colors.c
index 62b1640..4fbde83 100644
--- a/src/bin/options_colors.c
+++ b/src/bin/options_colors.c
@@ -101,7 +101,7 @@ _cb_op_color_chg(void *data,
101 config->colors[(j * 12) + i].b = b * a / 256; 101 config->colors[(j * 12) + i].b = b * a / 256;
102 config->colors[(j * 12) + i].a = a; 102 config->colors[(j * 12) + i].a = a;
103 termio_config_update(ctx->term); 103 termio_config_update(ctx->term);
104 config_save(config, NULL); 104 config_save(config);
105 return; 105 return;
106 } 106 }
107 } 107 }
@@ -184,7 +184,7 @@ _cb_op_reset(void *data,
184 elm_colorselector_palette_item_color_get(ctx->curitem, &r, &g, &b, &a); 184 elm_colorselector_palette_item_color_get(ctx->curitem, &r, &g, &b, &a);
185 elm_colorselector_color_set(ctx->colorsel, r, g, b, a); 185 elm_colorselector_color_set(ctx->colorsel, r, g, b, a);
186 termio_config_update(term); 186 termio_config_update(term);
187 config_save(config, NULL); 187 config_save(config);
188} 188}
189 189
190/* make color palettes wrap back. :) works with elm git. */ 190/* make color palettes wrap back. :) works with elm git. */
diff --git a/src/bin/options_elm.c b/src/bin/options_elm.c
index f48b6f3..fa9689c 100644
--- a/src/bin/options_elm.c
+++ b/src/bin/options_elm.c
@@ -15,10 +15,37 @@ launch_elm_config(void *_data EINA_UNUSED,
15 ecore_exe_free(exe); 15 ecore_exe_free(exe);
16} 16}
17 17
18static void
19_scale_round(void *data EINA_UNUSED,
20 Evas_Object *obj,
21 void *event_info EINA_UNUSED)
22{
23 double val = elm_slider_value_get(obj);
24 double v;
25
26 v = ((double)((int)(val * 10.0))) / 10.0;
27 if (v != val) elm_slider_value_set(obj, v);
28}
29
30static void
31_scale_change(void *data EINA_UNUSED,
32 Evas_Object *obj,
33 void *event_info EINA_UNUSED)
34{
35 double scale = elm_config_scale_get();
36 double val = elm_slider_value_get(obj);
37
38 if (scale == val)
39 return;
40 elm_config_scale_set(val);
41 elm_config_all_flush();
42}
43
18void 44void
19options_elm(Evas_Object *opbox, Evas_Object *_term EINA_UNUSED) 45options_elm(Evas_Object *opbox, Evas_Object *_term EINA_UNUSED)
20{ 46{
21 Evas_Object *o, *fr, *bx, *bt, *en; 47 Evas_Object *o, *fr, *bx, *bt, *en, *lbl, *sl, *sp;
48 const char *txt;
22 49
23 fr = o = elm_frame_add(opbox); 50 fr = o = elm_frame_add(opbox);
24 evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 51 evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -48,4 +75,47 @@ options_elm(Evas_Object *opbox, Evas_Object *_term EINA_UNUSED)
48 elm_layout_text_set(bt, NULL, _("Launch elementary_config")); 75 elm_layout_text_set(bt, NULL, _("Launch elementary_config"));
49 elm_box_pack_end(bx, bt); 76 elm_box_pack_end(bx, bt);
50 evas_object_show(bt); 77 evas_object_show(bt);
78
79 sp = elm_separator_add(opbox);
80 evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
81 evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
82 elm_separator_horizontal_set(sp, EINA_TRUE);
83 elm_box_pack_end(bx, sp);
84 evas_object_show(sp);
85
86 lbl = elm_label_add(opbox);
87 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
88 evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5);
89 txt = eina_stringshare_printf("<hilight>%s</>",_("Scale"));
90 elm_object_text_set(lbl, txt);
91 eina_stringshare_del(txt);
92 elm_box_pack_end(bx, lbl);
93 evas_object_show(lbl);
94
95 sl = elm_slider_add(opbox);
96 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
97 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
98 elm_slider_span_size_set(sl, 120);
99 elm_slider_unit_format_set(sl, "%1.2f");
100 elm_slider_indicator_format_set(sl, "%1.2f");
101 elm_slider_min_max_set(sl, 0.25, 5.0);
102 elm_slider_value_set(sl, elm_config_scale_get());
103 elm_box_pack_end(bx, sl);
104 evas_object_show(sl);
105 evas_object_smart_callback_add(sl, "changed", _scale_round, NULL);
106 evas_object_smart_callback_add(sl, "delay,changed", _scale_change, NULL);
107
108 lbl = elm_label_add(opbox);
109 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
110 evas_object_size_hint_align_set(lbl, 0.0, 0.0);
111 elm_object_text_set(lbl, _("Select prefered size so that this text is readable."));
112 elm_box_pack_end(bx, lbl);
113 evas_object_show(lbl);
114
115 lbl = elm_label_add(opbox);
116 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
117 evas_object_size_hint_align_set(lbl, 0.0, 0.0);
118 elm_object_text_set(lbl, _("The scale configuration can also be changed through <hilight>elementary</hilight>'s configuration panel."));
119 elm_box_pack_end(bx, lbl);
120 evas_object_show(lbl);
51} 121}
diff --git a/src/bin/options_font.c b/src/bin/options_font.c
index 407694a..d90e7e9 100644
--- a/src/bin/options_font.c
+++ b/src/bin/options_font.c
@@ -157,7 +157,7 @@ _cb_op_font_sel(void *data,
157 elm_object_disabled_set(ctx->op_fsml, f->bitmap); 157 elm_object_disabled_set(ctx->op_fsml, f->bitmap);
158 elm_object_disabled_set(ctx->op_fontslider, f->bitmap); 158 elm_object_disabled_set(ctx->op_fontslider, f->bitmap);
159 elm_object_disabled_set(ctx->op_fbig, f->bitmap); 159 elm_object_disabled_set(ctx->op_fbig, f->bitmap);
160 config_save(config, NULL); 160 config_save(config);
161 win_font_update(term); 161 win_font_update(term);
162} 162}
163 163
@@ -176,7 +176,7 @@ _cb_op_fontsize_sel(void *data,
176 config->font.size = size; 176 config->font.size = size;
177 _update_sizing(ctx); 177 _update_sizing(ctx);
178 elm_genlist_realized_items_update(ctx->op_fontlist); 178 elm_genlist_realized_items_update(ctx->op_fontlist);
179 config_save(config, NULL); 179 config_save(config);
180 win_font_update(term); 180 win_font_update(term);
181} 181}
182 182
@@ -398,7 +398,7 @@ _cb_font_bolditalic(void *data,
398 398
399 config->font.bolditalic = elm_check_state_get(obj); 399 config->font.bolditalic = elm_check_state_get(obj);
400 termio_config_update(ctx->term); 400 termio_config_update(ctx->term);
401 config_save(config, NULL); 401 config_save(config);
402} 402}
403 403
404void 404void
diff --git a/src/bin/options_helpers.c b/src/bin/options_helpers.c
index 00c29a7..c33e368 100644
--- a/src/bin/options_helpers.c
+++ b/src/bin/options_helpers.c
@@ -15,7 +15,7 @@ _cb_op_helper_inline_chg(void *data,
15 Evas_Object *term = data; 15 Evas_Object *term = data;
16 Config *config = termio_config_get(term); 16 Config *config = termio_config_get(term);
17 config->helper.inline_please = elm_check_state_get(obj); 17 config->helper.inline_please = elm_check_state_get(obj);
18 config_save(config, NULL); 18 config_save(config);
19} 19}
20 20
21static void 21static void
@@ -38,7 +38,7 @@ _cb_op_helper_email_chg(void *data,
38 config->helper.email = eina_stringshare_add(txt); 38 config->helper.email = eina_stringshare_add(txt);
39 free(txt); 39 free(txt);
40 } 40 }
41 config_save(config, NULL); 41 config_save(config);
42} 42}
43 43
44static void 44static void
@@ -61,7 +61,7 @@ _cb_op_helper_url_image_chg(void *data,
61 config->helper.url.image = eina_stringshare_add(txt); 61 config->helper.url.image = eina_stringshare_add(txt);
62 free(txt); 62 free(txt);
63 } 63 }
64 config_save(config, NULL); 64 config_save(config);
65} 65}
66 66
67static void 67static void
@@ -84,7 +84,7 @@ _cb_op_helper_url_video_chg(void *data,
84 config->helper.url.video = eina_stringshare_add(txt); 84 config->helper.url.video = eina_stringshare_add(txt);
85 free(txt); 85 free(txt);
86 } 86 }
87 config_save(config, NULL); 87 config_save(config);
88} 88}
89 89
90static void 90static void
@@ -107,7 +107,7 @@ _cb_op_helper_url_general_chg(void *data,
107 config->helper.url.general = eina_stringshare_add(txt); 107 config->helper.url.general = eina_stringshare_add(txt);
108 free(txt); 108 free(txt);
109 } 109 }
110 config_save(config, NULL); 110 config_save(config);
111} 111}
112 112
113static void 113static void
@@ -130,7 +130,7 @@ _cb_op_helper_local_image_chg(void *data,
130 config->helper.local.image = eina_stringshare_add(txt); 130 config->helper.local.image = eina_stringshare_add(txt);
131 free(txt); 131 free(txt);
132 } 132 }
133 config_save(config, NULL); 133 config_save(config);
134} 134}
135 135
136static void 136static void
@@ -153,7 +153,7 @@ _cb_op_helper_local_video_chg(void *data,
153 config->helper.local.video = eina_stringshare_add(txt); 153 config->helper.local.video = eina_stringshare_add(txt);
154 free(txt); 154 free(txt);
155 } 155 }
156 config_save(config, NULL); 156 config_save(config);
157} 157}
158 158
159static void 159static void
@@ -176,7 +176,7 @@ _cb_op_helper_local_general_chg(void *data,
176 config->helper.local.general = eina_stringshare_add(txt); 176 config->helper.local.general = eina_stringshare_add(txt);
177 free(txt); 177 free(txt);
178 } 178 }
179 config_save(config, NULL); 179 config_save(config);
180} 180}
181 181
182void 182void
diff --git a/src/bin/options_keys.c b/src/bin/options_keys.c
index 3d78477..47f088f 100644
--- a/src/bin/options_keys.c
+++ b/src/bin/options_keys.c
@@ -51,7 +51,7 @@ _shortcut_delete(void *data,
51 eina_stringshare_del(cfg_key->cb); 51 eina_stringshare_del(cfg_key->cb);
52 free(cfg_key); 52 free(cfg_key);
53 53
54 config_save(ctx->config, NULL); 54 config_save(ctx->config);
55} 55}
56 56
57static Evas_Object * 57static Evas_Object *
@@ -152,7 +152,7 @@ _cb_key_up(void *data,
152 evas_object_size_hint_min_set(bx, min_w, min_h); 152 evas_object_size_hint_min_set(bx, min_w, min_h);
153 elm_box_pack_before(bx, bt, last); 153 elm_box_pack_before(bx, bt, last);
154 154
155 config_save(ctx->config, NULL); 155 config_save(ctx->config);
156 } 156 }
157 else 157 else
158 { 158 {
diff --git a/src/bin/options_theme.c b/src/bin/options_theme.c
index fb0af9e..38fb019 100644
--- a/src/bin/options_theme.c
+++ b/src/bin/options_theme.c
@@ -79,7 +79,7 @@ _cb_op_theme_sel(void *data,
79 return; 79 return;
80 80
81 eina_stringshare_replace(&(config->theme), t->name); 81 eina_stringshare_replace(&(config->theme), t->name);
82 config_save(config, NULL); 82 config_save(config);
83 change_theme(termio_win_get(t->ctx->term), config); 83 change_theme(termio_win_get(t->ctx->term), config);
84} 84}
85 85
diff --git a/src/bin/options_video.c b/src/bin/options_video.c
index f3f83d3..c243a2c 100644
--- a/src/bin/options_video.c
+++ b/src/bin/options_video.c
@@ -17,7 +17,7 @@ _cb_op_video_mute_chg(void *data,
17 Config *config = termio_config_get(term); 17 Config *config = termio_config_get(term);
18 config->mute = elm_check_state_get(obj); 18 config->mute = elm_check_state_get(obj);
19 main_media_mute_update(config); 19 main_media_mute_update(config);
20 config_save(config, NULL); 20 config_save(config);
21} 21}
22 22
23static void 23static void
@@ -29,7 +29,7 @@ _cb_op_video_visualize_chg(void *data,
29 Config *config = termio_config_get(term); 29 Config *config = termio_config_get(term);
30 config->visualize = elm_check_state_get(obj); 30 config->visualize = elm_check_state_get(obj);
31 main_media_visualize_update(config); 31 main_media_visualize_update(config);
32 config_save(config, NULL); 32 config_save(config);
33} 33}
34 34
35static void 35static void
@@ -43,7 +43,7 @@ _cb_op_video_vidmod_chg(void *data,
43 if (v == config->vidmod) return; 43 if (v == config->vidmod) return;
44 config->vidmod = v; 44 config->vidmod = v;
45 main_media_update(config); 45 main_media_update(config);
46 config_save(config, NULL); 46 config_save(config);
47} 47}
48 48
49void 49void
diff --git a/src/bin/termiolink.c b/src/bin/termiolink.c
index 9b28648..d5a3fd5 100644
--- a/src/bin/termiolink.c
+++ b/src/bin/termiolink.c
@@ -42,8 +42,55 @@ _local_path_get(const Evas_Object *obj, const char *relpath)
42 return _cwd_path_get(obj, relpath); 42 return _cwd_path_get(obj, relpath);
43} 43}
44 44
45static Eina_Bool 45Eina_Bool
46_is_file(const char *str) 46link_is_protocol(const char *str)
47{
48 const char *p = str;
49 int c = *p;
50
51 if (!isalpha(c))
52 return EINA_FALSE;
53
54 /* Try to follow RFC3986 a bit
55 * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
56 * hier-part = "//" authority path-abempty
57 * [...] other stuff not taken into account
58 * scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
59 */
60
61 do
62 {
63 p++;
64 c = *p;
65 }
66 while (isalpha(c) || (c == '.') || (c == '-') || (c == '+'));
67
68 return (p[0] == ':') && (p[1] == '/') && (p[2] == '/');
69}
70
71Eina_Bool
72link_is_url(const char *str)
73{
74 if (link_is_protocol(str) ||
75 casestartswith(str, "www.") ||
76 casestartswith(str, "ftp."))
77 return EINA_TRUE;
78 return EINA_FALSE;
79}
80
81Eina_Bool
82link_is_email(const char *str)
83{
84 const char *at = strchr(str, '@');
85 if (at && strchr(at + 1, '.'))
86 return EINA_TRUE;
87 if (casestartswith(str, "mailto:"))
88 return EINA_TRUE;
89 return EINA_FALSE;
90}
91
92Eina_Bool
93link_is_file(const char *str)
47{ 94{
48 switch (str[0]) 95 switch (str[0])
49 { 96 {
@@ -262,6 +309,8 @@ termio_link_find(const Evas_Object *obj, int cx, int cy,
262 309
263 res = _txt_at(ty, &x1, &y1, txt, &txtlen); 310 res = _txt_at(ty, &x1, &y1, txt, &txtlen);
264 if ((res != 0) || (txtlen == 0)) goto end; 311 if ((res != 0) || (txtlen == 0)) goto end;
312 if (isspace(txt[0]))
313 goto end;
265 res = ty_sb_add(&sb, txt, txtlen); 314 res = ty_sb_add(&sb, txt, txtlen);
266 if (res < 0) goto end; 315 if (res < 0) goto end;
267 316
@@ -402,7 +451,7 @@ termio_link_find(const Evas_Object *obj, int cx, int cy,
402out: 451out:
403 if (sb.len) 452 if (sb.len)
404 { 453 {
405 Eina_Bool is_file = _is_file(sb.buf); 454 Eina_Bool is_file = link_is_file(sb.buf);
406 455
407 if (is_file || 456 if (is_file ||
408 link_is_email(sb.buf) || 457 link_is_email(sb.buf) ||
diff --git a/src/bin/termiolink.h b/src/bin/termiolink.h
index bb97d90..7228119 100644
--- a/src/bin/termiolink.h
+++ b/src/bin/termiolink.h
@@ -2,5 +2,10 @@
2#define _TERMIO_LINK_H__ 1 2#define _TERMIO_LINK_H__ 1
3 3
4char *termio_link_find(const Evas_Object *obj, int cx, int cy, int *x1r, int *y1r, int *x2r, int *y2r); 4char *termio_link_find(const Evas_Object *obj, int cx, int cy, int *x1r, int *y1r, int *x2r, int *y2r);
5Eina_Bool link_is_protocol(const char *str);
6Eina_Bool link_is_file(const char *str);
7Eina_Bool link_is_url(const char *str);
8Eina_Bool link_is_email(const char *str);
9
5 10
6#endif 11#endif
diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 004bd67..879135f 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -234,7 +234,7 @@ _fd_read_do(Termpty *ty, Ecore_Fd_Handler *fd_handler, Eina_Bool false_on_empty)
234 234
235 if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_ERROR)) 235 if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_ERROR))
236 { 236 {
237 ERR("error while reading from tty slave fd"); 237 DBG("error while reading from tty slave fd");
238 ty->hand_fd = NULL; 238 ty->hand_fd = NULL;
239 return ECORE_CALLBACK_CANCEL; 239 return ECORE_CALLBACK_CANCEL;
240 } 240 }
diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 2e05684..a92b4db 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1382,7 +1382,10 @@ _handle_esc_csi_dsr(Termpty *ty, Eina_Unicode *b)
1382 { 1382 {
1383 /* DSR-DECCKSR (Memory Checksum) */ 1383 /* DSR-DECCKSR (Memory Checksum) */
1384 int pid = _csi_arg_get(ty, &b); 1384 int pid = _csi_arg_get(ty, &b);
1385 len = snprintf(bf, sizeof(bf), "\033P%u!~0000\033\\", pid); 1385 if (pid == -CSI_ARG_NO_VALUE)
1386 pid = 65535;
1387 len = snprintf(bf, sizeof(bf), "\033P%u!~0000\033\\",
1388 ((unsigned int)pid) % 65536);
1386 termpty_write(ty, bf, len); 1389 termpty_write(ty, bf, len);
1387 } 1390 }
1388 else 1391 else
diff --git a/src/bin/termptyext.c b/src/bin/termptyext.c
index 96b3f5e..7cc41fc 100644
--- a/src/bin/termptyext.c
+++ b/src/bin/termptyext.c
@@ -1,6 +1,7 @@
1#include "private.h" 1#include "private.h"
2#include <Elementary.h> 2#include <Elementary.h>
3#include "termio.h" 3#include "termio.h"
4#include "termiolink.h"
4#include "termpty.h" 5#include "termpty.h"
5#include "termptyops.h" 6#include "termptyops.h"
6#include "termiointernals.h" 7#include "termiointernals.h"
@@ -28,28 +29,6 @@
28// EINA_TRUE), handled here first, then in termio (EINA_FALSE return) or not 29// EINA_TRUE), handled here first, then in termio (EINA_FALSE return) or not
29// handled here at all and just passed to termio to figure it out (return 30// handled here at all and just passed to termio to figure it out (return
30// EINA_FALSE). 31// EINA_FALSE).
31//
32// command strings like like this:
33// axBLAHBLAH
34// where 'a' is the major opcode char.
35// and 'x' is the minor opcode char.
36// and 'BLAHBLAH' is an optional data payload string
37
38static Eina_Bool
39_handle_op_a(Termpty *_ty EINA_UNUSED,
40 const Eina_Unicode *buf EINA_UNUSED,
41 size_t blen EINA_UNUSED)
42{
43 switch (buf[0])
44 {
45 case 'x': // command ax*
46 break;
47 // room here for more minor opcode chars like 'b', 'c' etc.
48 default:
49 break;
50 }
51 return EINA_FALSE;
52}
53 32
54#if defined(ENABLE_TESTS) || defined(ENABLE_TEST_UI) 33#if defined(ENABLE_TESTS) || defined(ENABLE_TEST_UI)
55 34
@@ -241,6 +220,88 @@ _handle_mouse_wheel(Termpty *ty,
241 termio_internal_mouse_wheel(sd, &ev, modifiers); 220 termio_internal_mouse_wheel(sd, &ev, modifiers);
242} 221}
243 222
223/*
224 * Format is:
225 * - ln : no link found under cursor
226 * - lT;X1;Y1;X2;Y2;LINK
227 * where T is
228 * e: link is an email
229 * u: link is an url
230 * p: link is a file path
231 */
232static void
233_handle_link(Termpty *ty, const Eina_Unicode *buf)
234{
235 const Eina_Unicode type = buf[0];
236 Termio *sd = termio_get_from_obj(ty->obj);
237 char *link, *c;
238 int x1 = -1, y1 = -1, x2 = -1, y2 = -1;
239 int value;
240
241 /* highlight where the mouse is */
242 {
243 Termcell *cells = NULL;
244 ssize_t w;
245
246 cells = termpty_cellrow_get(ty, sd->mouse.cy, &w);
247 termpty_reset_att(&cells[sd->mouse.cx].att);
248 cells[sd->mouse.cx].att.bold = 1;
249 cells[sd->mouse.cx].att.fg = COL_WHITE;
250 cells[sd->mouse.cx].att.bg = COL_RED;
251 }
252
253 link = termio_link_find(ty->obj, sd->mouse.cx, sd->mouse.cy,
254 &x1, &y1, &x2, &y2);
255
256 ERR("x1:%d y1:%d x2:%d y2:%d link:'%s'", x1, y1, x2, y2, link);
257 if (type == 'n')
258 {
259 assert (link == NULL);
260 return;
261 }
262 /* skip type */
263 buf++;
264 /* Get numeric values */
265 buf += _tytest_arg_get(buf, &value);
266 assert(x1 == value);
267 buf += _tytest_arg_get(buf, &value);
268 assert(y1 == value);
269 buf += _tytest_arg_get(buf, &value);
270 assert(x2 == value);
271 buf += _tytest_arg_get(buf, &value);
272 assert(y2 == value);
273 /* skip ; */
274 buf++;
275 /* Compare strings */
276 c = link;
277 while (*buf)
278 {
279 int idx = 0;
280 Eina_Unicode u = eina_unicode_utf8_next_get(c, &idx);
281
282 ERR("%c vs %c", *buf, u);
283 assert(*buf == u && "unexpected character in selection");
284 c += idx;
285 buf++;
286 }
287
288 switch (type)
289 {
290 case 'u':
291 assert(link_is_url(link));
292 break;
293 case 'p':
294 assert(link_is_file(link));
295 break;
296 case 'e':
297 assert(link_is_email(link));
298 break;
299 default:
300 abort();
301 }
302 free(link);
303}
304
244static void 305static void
245_handle_selection_is(Termpty *ty, 306_handle_selection_is(Termpty *ty,
246 const Eina_Unicode *buf) 307 const Eina_Unicode *buf)
@@ -317,6 +378,7 @@ _handle_corner(Termpty *ty, const Eina_Unicode *buf)
317 * - 'd': mouse down: 378 * - 'd': mouse down:
318 * - 'u': mouse up; 379 * - 'u': mouse up;
319 * - 'm': mouse move; 380 * - 'm': mouse move;
381 * - 'l': assert mouse is over a link
320 * - 'r': force rendering and possibly remove selection; 382 * - 'r': force rendering and possibly remove selection;
321 * - 'n': assert there is no selection 383 * - 'n': assert there is no selection
322 * - 's': assert selection is what follows till '\0' 384 * - 's': assert selection is what follows till '\0'
@@ -333,6 +395,9 @@ tytest_handle_escape_codes(Termpty *ty,
333 case 'd': 395 case 'd':
334 _handle_mouse_down(ty, buf + 1); 396 _handle_mouse_down(ty, buf + 1);
335 break; 397 break;
398 case 'l':
399 _handle_link(ty, buf + 1);
400 break;
336 case 'm': 401 case 'm':
337 _handle_mouse_move(ty, buf + 1); 402 _handle_mouse_move(ty, buf + 1);
338 break; 403 break;
@@ -352,23 +417,25 @@ tytest_handle_escape_codes(Termpty *ty,
352 _handle_mouse_wheel(ty, buf + 1); 417 _handle_mouse_wheel(ty, buf + 1);
353 break; 418 break;
354 default: 419 default:
420 abort();
355 break; 421 break;
356 } 422 }
357} 423}
358#endif 424#endif
359 425
426#if defined(ENABLE_TESTS) || defined(ENABLE_TEST_UI)
427#define ARG_USED_FOR_TESTS
428#else
429#define ARG_USED_FOR_TESTS EINA_UNUSED
430#endif
360 431
361Eina_Bool 432Eina_Bool
362termpty_ext_handle(Termpty *ty, 433termpty_ext_handle(Termpty *ty ARG_USED_FOR_TESTS,
363 const Eina_Unicode *buf, 434 const Eina_Unicode *buf ARG_USED_FOR_TESTS,
364 size_t blen) 435 size_t blen EINA_UNUSED)
365{ 436{
366 switch (buf[0]) // major opcode 437 switch (buf[0]) // major opcode
367 { 438 {
368 case 'a': // command a*
369 return _handle_op_a(ty, buf + 1, blen - 1);
370 break;
371 // room here for more major opcode chars like 'b', 'c' etc.
372#if defined(ENABLE_TESTS) || defined(ENABLE_TEST_UI) 439#if defined(ENABLE_TESTS) || defined(ENABLE_TEST_UI)
373 case 't': 440 case 't':
374 tytest_handle_escape_codes(ty, buf + 1); 441 tytest_handle_escape_codes(ty, buf + 1);
@@ -380,3 +447,4 @@ termpty_ext_handle(Termpty *ty,
380 } 447 }
381 return EINA_FALSE; 448 return EINA_FALSE;
382} 449}
450#undef ARG_USED_FOR_TESTS
diff --git a/src/bin/utils.c b/src/bin/utils.c
index ecd2da3..3c5c2d6 100644
--- a/src/bin/utils.c
+++ b/src/bin/utils.c
@@ -145,48 +145,38 @@ homedir_get(char *buf, size_t size)
145} 145}
146 146
147Eina_Bool 147Eina_Bool
148link_is_protocol(const char *str) 148utils_need_scale_wizard(void)
149{ 149{
150 const char *p = str; 150 static char path[PATH_MAX] = "";
151 int c = *p; 151 struct stat st;
152 int res;
153 char *config_xdg = getenv("ELM_CONFIG_DIR_XDG");
152 154
153 if (!isalpha(c))
154 return EINA_FALSE;
155 155
156 /* Try to follow RFC3986 a bit 156 snprintf(path, sizeof(path) -1, "%s/terminology/config/",
157 * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] 157 efreet_config_home_get());
158 * hier-part = "//" authority path-abempty 158 res = stat(path, &st);
159 * [...] other stuff not taken into account 159 if (res == 0)
160 * scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) 160 return EINA_FALSE;
161 */
162 161
163 do 162 if (config_xdg)
164 { 163 {
165 p++; 164 snprintf(path, sizeof(path) - 1,
166 c = *p; 165 "%s/elementary", config_xdg);
167 } 166 }
168 while (isalpha(c) || (c == '.') || (c == '-') || (c == '+')); 167 else
169 168 {
170 return (p[0] == ':') && (p[1] == '/') && (p[2] == '/'); 169 const char *suffix = "/.elementary";
171} 170 char home[PATH_MAX - strlen(suffix)];
172 171
173Eina_Bool 172 if (!homedir_get(home, sizeof(home)))
174link_is_url(const char *str) 173 return EINA_TRUE;
175{ 174 snprintf(path, sizeof(path) - 1,
176 if (link_is_protocol(str) || 175 "%s%s", home, suffix);
177 casestartswith(str, "www.") || 176 }
178 casestartswith(str, "ftp.")) 177 res = stat(path, &st);
179 return EINA_TRUE; 178 if (res == 0)
180 return EINA_FALSE; 179 return EINA_FALSE;
181}
182 180
183Eina_Bool 181 return EINA_TRUE;
184link_is_email(const char *str)
185{
186 const char *at = strchr(str, '@');
187 if (at && strchr(at + 1, '.'))
188 return EINA_TRUE;
189 if (casestartswith(str, "mailto:"))
190 return EINA_TRUE;
191 return EINA_FALSE;
192} 182}
diff --git a/src/bin/utils.h b/src/bin/utils.h
index 73476de..ca5b6e7 100644
--- a/src/bin/utils.h
+++ b/src/bin/utils.h
@@ -12,10 +12,7 @@ void theme_auto_reload_enable(Evas_Object *edje);
12const char *theme_path_get(const char *name); 12const char *theme_path_get(const char *name);
13 13
14Eina_Bool homedir_get(char *buf, size_t size); 14Eina_Bool homedir_get(char *buf, size_t size);
15 15Eina_Bool utils_need_scale_wizard(void);
16Eina_Bool link_is_protocol(const char *str);
17Eina_Bool link_is_url(const char *str);
18Eina_Bool link_is_email(const char *str);
19 16
20#define casestartswith(str, constref) \ 17#define casestartswith(str, constref) \
21 (!strncasecmp(str, constref, sizeof(constref) - 1)) 18 (!strncasecmp(str, constref, sizeof(constref) - 1))
diff --git a/src/bin/win.c b/src/bin/win.c
index c4c8be9..e90b542 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -199,6 +199,150 @@ static void _term_tabregion_free(Term *term);
199static void _set_trans(Config *config, Evas_Object *bg, Evas_Object *base); 199static void _set_trans(Config *config, Evas_Object *bg, Evas_Object *base);
200static void _imf_event_commit_cb(void *data, Ecore_IMF_Context *_ctx EINA_UNUSED, void *event); 200static void _imf_event_commit_cb(void *data, Ecore_IMF_Context *_ctx EINA_UNUSED, void *event);
201 201
202static void
203_scale_round(void *data EINA_UNUSED,
204 Evas_Object *obj,
205 void *event_info EINA_UNUSED)
206{
207 double val = elm_slider_value_get(obj);
208 double v;
209
210 v = ((double)((int)(val * 10.0))) / 10.0;
211 if (v != val) elm_slider_value_set(obj, v);
212}
213
214static void
215_scale_change(void *data EINA_UNUSED,
216 Evas_Object *obj,
217 void *event_info EINA_UNUSED)
218{
219 double scale = elm_config_scale_get();
220 double val = elm_slider_value_get(obj);
221
222 if (scale == val)
223 return;
224 elm_config_scale_set(val);
225 elm_config_all_flush();
226}
227
228typedef struct _Scale_Ctx
229{
230 Evas_Object *hv;
231 Term *term;
232} Scale_Ctx;
233
234static void
235_scale_done(void *data,
236 Evas_Object *obj EINA_UNUSED,
237 void *event_info EINA_UNUSED)
238{
239 Scale_Ctx *ctx = data;
240
241 evas_object_smart_callback_del_full(ctx->hv, "dismissed",
242 _scale_done, ctx);
243 evas_object_del(ctx->hv);
244 ctx->term->wn->on_popover--;
245 term_unref(ctx->term);
246 elm_config_save();
247 config_save(ctx->term->config);
248 free(ctx);
249}
250
251void
252win_scale_wizard(Evas_Object *win, Term *term)
253{
254 Evas_Object *bx, *lbl, *sl, *fr, *bt;
255 const char *txt;
256 Scale_Ctx *ctx;
257
258 EINA_SAFETY_ON_NULL_RETURN(term);
259 if (!utils_need_scale_wizard())
260 return;
261
262 ctx = calloc(1, sizeof(*ctx));
263 if (!ctx)
264 return;
265
266 ctx->term = term;
267
268 term->wn->on_popover++;
269
270 term_ref(term);
271
272 ctx->hv = elm_hover_add(win);
273 evas_object_size_hint_weight_set(ctx->hv, EVAS_HINT_EXPAND, 0.0);
274 evas_object_size_hint_align_set(ctx->hv, EVAS_HINT_FILL, 0.5);
275 elm_hover_parent_set(ctx->hv, win);
276 elm_hover_target_set(ctx->hv, win);
277 evas_object_smart_callback_add(ctx->hv, "dismissed", _scale_done, ctx);
278
279 fr = elm_frame_add(win);
280 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
281 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0.5);
282 elm_object_text_set(fr, _("Scale"));
283 elm_object_part_content_set(ctx->hv, "middle", fr);
284 evas_object_show(fr);
285
286 bx = elm_box_add(win);
287 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
288 evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5);
289 elm_object_content_set(fr, bx);
290 evas_object_show(bx);
291
292 fr = elm_frame_add(win);
293 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0);
294 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0.5);
295 elm_object_style_set(fr, "pad_medium");
296 elm_box_pack_end(bx, fr);
297 evas_object_show(fr);
298
299 lbl = elm_label_add(win);
300 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
301 evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5);
302 txt = eina_stringshare_printf("<hilight>%s</>",_("Scale"));
303 elm_object_text_set(lbl, txt);
304 eina_stringshare_del(txt);
305 elm_object_content_set(fr, lbl);
306 elm_box_pack_end(bx, lbl);
307 evas_object_show(lbl);
308
309 sl = elm_slider_add(win);
310 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
311 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
312 elm_slider_span_size_set(sl, 120);
313 elm_slider_unit_format_set(sl, "%1.2f");
314 elm_slider_indicator_format_set(sl, "%1.2f");
315 elm_slider_min_max_set(sl, 0.25, 5.0);
316 elm_slider_value_set(sl, elm_config_scale_get());
317 elm_box_pack_end(bx, sl);
318 evas_object_show(sl);
319 evas_object_smart_callback_add(sl, "changed", _scale_round, NULL);
320 evas_object_smart_callback_add(sl, "delay,changed", _scale_change, NULL);
321
322 lbl = elm_label_add(win);
323 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
324 evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5);
325 elm_object_text_set(lbl, _("Select prefered size so that this text is readable."));
326 elm_box_pack_end(bx, lbl);
327 evas_object_show(lbl);
328
329 lbl = elm_label_add(win);
330 evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
331 evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5);
332 elm_object_text_set(lbl, _("The scale configuration can be changed in the Settings (right click on the terminal) → Toolkit, or by starting the command <keyword>elementary_config</keyword>."));
333 elm_box_pack_end(bx, lbl);
334 evas_object_show(lbl);
335
336 bt = elm_button_add(win);
337 elm_object_text_set(bt, _("Done"));
338 elm_box_pack_end(bx, bt);
339 evas_object_smart_callback_add(bt, "clicked", _scale_done, ctx);
340 evas_object_show(bt);
341
342 evas_object_show(ctx->hv);
343
344 elm_object_focus_set(ctx->hv, EINA_TRUE);
345}
202 346
203/* {{{ Solo */ 347/* {{{ Solo */
204 348
@@ -364,8 +508,20 @@ _solo_set_title(Term_Container *tc,
364 Term_Container *_child EINA_UNUSED, 508 Term_Container *_child EINA_UNUSED,
365 const char *title) 509 const char *title)
366{ 510{
511 Solo *solo;
512 Term *term;
513
514 assert (tc->type == TERM_CONTAINER_TYPE_SOLO);
515 solo = (Solo*) tc;
516 term = solo->term;
517
367 eina_stringshare_del(tc->title); 518 eina_stringshare_del(tc->title);
368 tc->title = eina_stringshare_add(title); 519 tc->title = eina_stringshare_add(title);
520 if (term->config->show_tabs)
521 {
522 edje_object_part_text_set(term->bg, "terminology.tab.title",
523 title);
524 }
369 tc->parent->set_title(tc->parent, tc, title); 525 tc->parent->set_title(tc->parent, tc, title);
370} 526}
371 527
@@ -472,17 +628,86 @@ _solo_focus(Term_Container *tc, Term_Container *relative)
472 term->missed_bell = EINA_FALSE; 628 term->missed_bell = EINA_FALSE;
473} 629}
474 630
631static Eina_Bool
632_solo_is_visible(Term_Container *tc, Term_Container *_child EINA_UNUSED)
633{
634 assert (tc->type == TERM_CONTAINER_TYPE_SOLO);
635 return tc->parent->is_visible(tc->parent, tc);
636}
637
475static void 638static void
476_solo_update(Term_Container *tc) 639_solo_title_show(Term_Container *tc)
477{ 640{
641 Solo *solo;
642 Term *term;
643
478 assert (tc->type == TERM_CONTAINER_TYPE_SOLO); 644 assert (tc->type == TERM_CONTAINER_TYPE_SOLO);
645 solo = (Solo*) tc;
646 term = solo->term;
647
648 if (!term->tab_spacer)
649 {
650 Evas_Coord w = 0, h = 0;
651
652 term->tab_spacer = evas_object_rectangle_add(
653 evas_object_evas_get(term->bg));
654 evas_object_color_set(term->tab_spacer, 0, 0, 0, 0);
655 elm_coords_finger_size_adjust(1, &w, 1, &h);
656 evas_object_size_hint_min_set(term->tab_spacer, w, h);
657 edje_object_part_swallow(term->bg, "terminology.tab", term->tab_spacer);
658 edje_object_part_drag_value_set(term->bg, "terminology.tabl", 0.0, 0.0);
659 edje_object_part_drag_value_set(term->bg, "terminology.tabr", 1.0, 0.0);
660 edje_object_part_text_set(term->bg, "terminology.tab.title",
661 solo->tc.title);
662 edje_object_signal_emit(term->bg, "tabbar,on", "terminology");
663 edje_object_message_signal_process(term->bg);
664 }
665 else
666 {
667 edje_object_part_drag_value_set(term->bg, "terminology.tabl", 0.0, 0.0);
668 edje_object_part_drag_value_set(term->bg, "terminology.tabr", 1.0, 0.0);
669 edje_object_message_signal_process(term->bg);
670 }
479} 671}
480 672
481static Eina_Bool 673static void
482_solo_is_visible(Term_Container *tc, Term_Container *_child EINA_UNUSED) 674_solo_title_hide(Term_Container *tc)
483{ 675{
676 Solo *solo;
677 Term *term;
678
484 assert (tc->type == TERM_CONTAINER_TYPE_SOLO); 679 assert (tc->type == TERM_CONTAINER_TYPE_SOLO);
485 return tc->parent->is_visible(tc->parent, tc); 680 solo = (Solo*) tc;
681 term = solo->term;
682
683 if (term->tab_spacer)
684 {
685 edje_object_signal_emit(term->bg, "tabbar,off", "terminology");
686 edje_object_message_signal_process(term->bg);
687 edje_object_part_unswallow(term->bg, term->tab_spacer);
688 evas_object_del(term->tab_spacer);
689 term->tab_spacer = NULL;
690 }
691}
692
693static void
694_solo_update(Term_Container *tc)
695{
696 Solo *solo;
697 Term *term;
698 Term_Container *tc_parent = tc->parent;
699
700 assert (tc->type == TERM_CONTAINER_TYPE_SOLO);
701 solo = (Solo*) tc;
702 term = solo->term;
703
704 if (tc_parent->type == TERM_CONTAINER_TYPE_SPLIT)
705 {
706 if (term->config->show_tabs)
707 _solo_title_show(tc);
708 else
709 _solo_title_hide(tc);
710 }
486} 711}
487 712
488static Term_Container * 713static Term_Container *
@@ -952,6 +1177,12 @@ _win_swallow(Term_Container *tc, Term_Container *orig,
952 o = new_child->get_evas_object(new_child); 1177 o = new_child->get_evas_object(new_child);
953 elm_layout_content_set(wn->base, "terminology.content", o); 1178 elm_layout_content_set(wn->base, "terminology.content", o);
954 1179
1180 if ((new_child->type == TERM_CONTAINER_TYPE_SOLO
1181 && (wn->config->show_tabs)))
1182 {
1183 _solo_title_hide(new_child);
1184 }
1185
955 evas_object_show(o); 1186 evas_object_show(o);
956 new_child->parent = tc; 1187 new_child->parent = tc;
957 wn->child = new_child; 1188 wn->child = new_child;
@@ -1126,6 +1357,14 @@ _win_split(Term_Container *tc, Term_Container *child,
1126 elm_layout_content_unset(wn->base, "terminology.content"); 1357 elm_layout_content_unset(wn->base, "terminology.content");
1127 1358
1128 tc_split = _split_new(child, tc_solo_new, is_horizontal); 1359 tc_split = _split_new(child, tc_solo_new, is_horizontal);
1360 if (wn->config->show_tabs)
1361 {
1362 if (child->type == TERM_CONTAINER_TYPE_SOLO)
1363 {
1364 _solo_title_show(child);
1365 }
1366 _solo_title_show(tc_solo_new);
1367 }
1129 1368
1130 tc_split->is_focused = tc->is_focused; 1369 tc_split->is_focused = tc->is_focused;
1131 tc->swallow(tc, NULL, tc_split); 1370 tc->swallow(tc, NULL, tc_split);
@@ -2365,6 +2604,11 @@ _split_split(Term_Container *tc, Term_Container *child,
2365 tc_split->is_focused = tc->is_focused; 2604 tc_split->is_focused = tc->is_focused;
2366 tc->swallow(tc, child, tc_split); 2605 tc->swallow(tc, child, tc_split);
2367 2606
2607 if (wn->config->show_tabs)
2608 {
2609 _solo_title_show(tc_solo_new);
2610 }
2611
2368 evas_object_show(obj_split); 2612 evas_object_show(obj_split);
2369} 2613}
2370 2614
@@ -2377,6 +2621,7 @@ _split_is_visible(Term_Container *tc, Term_Container *_child EINA_UNUSED)
2377 return tc->parent->is_visible(tc->parent, tc); 2621 return tc->parent->is_visible(tc->parent, tc);
2378} 2622}
2379 2623
2624/* tc1 is a new solo */
2380static Term_Container * 2625static Term_Container *
2381_split_new(Term_Container *tc1, Term_Container *tc2, 2626_split_new(Term_Container *tc1, Term_Container *tc2,
2382 Eina_Bool is_horizontal) 2627 Eina_Bool is_horizontal)
@@ -3021,7 +3266,7 @@ _tabs_size_eval(Term_Container *container, Sizeinfo *info)
3021 config = tc->wn->config; 3266 config = tc->wn->config;
3022 tc->size_eval(tc, info); 3267 tc->size_eval(tc, info);
3023 /* Current sizing code does not take the tab area correctly into account */ 3268 /* Current sizing code does not take the tab area correctly into account */
3024 if (!config->notabs) 3269 if (config->show_tabs)
3025 { 3270 {
3026 info->step_x = 1; 3271 info->step_x = 1;
3027 info->step_y = 1; 3272 info->step_y = 1;
@@ -3083,17 +3328,21 @@ _tabs_close(Term_Container *tc, Term_Container *child)
3083 { 3328 {
3084 Term *next_term; 3329 Term *next_term;
3085 Solo *next_solo; 3330 Solo *next_solo;
3331 Config *config;
3086 3332
3087 assert (next_child->type == TERM_CONTAINER_TYPE_SOLO); 3333 assert (next_child->type == TERM_CONTAINER_TYPE_SOLO);
3088 next_solo = (Solo*)next_child; 3334 next_solo = (Solo*)next_child;
3089 next_term = next_solo->term; 3335 next_term = next_solo->term;
3336 config = next_term->config;
3090 3337
3091 edje_object_signal_emit(next_term->bg, "tabcount,off", "terminology"); 3338 edje_object_signal_emit(next_term->bg, "tabcount,off", "terminology");
3092 if (next_term->tabcount_spacer) 3339 if (next_term->tabcount_spacer && !config->show_tabs)
3093 { 3340 {
3094 evas_object_del(next_term->tabcount_spacer); 3341 evas_object_del(next_term->tabcount_spacer);
3095 next_term->tabcount_spacer = NULL; 3342 next_term->tabcount_spacer = NULL;
3096 } 3343 }
3344 if (config->show_tabs)
3345 _solo_title_show(next_child);
3097 3346
3098 if (tabs->selector) 3347 if (tabs->selector)
3099 _tabs_restore(tabs); 3348 _tabs_restore(tabs);
@@ -3450,7 +3699,7 @@ _tabs_focus(Term_Container *tc, Term_Container *relative)
3450 Config *config = tc->wn->config; 3699 Config *config = tc->wn->config;
3451 tabs->current->tc->unfocus(tabs->current->tc, tc); 3700 tabs->current->tc->unfocus(tabs->current->tc, tc);
3452 3701
3453 if (config->tab_zoom >= 0.01 && config->notabs) 3702 if (config->tab_zoom >= 0.01 && !config->show_tabs)
3454 { 3703 {
3455 _cb_tab_selector_show(tabs, tab_item); 3704 _cb_tab_selector_show(tabs, tab_item);
3456 return; 3705 return;
@@ -3549,7 +3798,7 @@ _tabs_set_title(Term_Container *tc, Term_Container *child,
3549 solo = (Solo*)tab_item->tc; 3798 solo = (Solo*)tab_item->tc;
3550 term = solo->term; 3799 term = solo->term;
3551 3800
3552 if (!term->config->notabs) 3801 if (term->config->show_tabs)
3553 { 3802 {
3554 edje_object_part_text_set(term->bg, "terminology.tab.title", 3803 edje_object_part_text_set(term->bg, "terminology.tab.title",
3555 title); 3804 title);
@@ -3619,7 +3868,7 @@ _tabs_refresh(Tabs *tabs)
3619 edje_object_part_text_set(term->bg, "terminology.tabmissed.label", bufmissed); 3868 edje_object_part_text_set(term->bg, "terminology.tabmissed.label", bufmissed);
3620 edje_object_signal_emit(term->bg, "tabcount,on", "terminology"); 3869 edje_object_signal_emit(term->bg, "tabcount,on", "terminology");
3621 // this is all below just for tab bar at the top 3870 // this is all below just for tab bar at the top
3622 if (!term->config->notabs) 3871 if (term->config->show_tabs)
3623 { 3872 {
3624 double v1, v2; 3873 double v1, v2;
3625 3874
@@ -3793,7 +4042,7 @@ term_apply_shine(Term *term, int shine)
3793 { 4042 {
3794 config->shine = shine; 4043 config->shine = shine;
3795 background_set_shine(config, term->bg); 4044 background_set_shine(config, term->bg);
3796 config_save(config, NULL); 4045 config_save(config);
3797 } 4046 }
3798} 4047}
3799 4048
@@ -4571,7 +4820,8 @@ _set_alpha(Config *config, const char *val, Eina_Bool save)
4571 config->translucent = EINA_FALSE; 4820 config->translucent = EINA_FALSE;
4572 main_trans_update(config); 4821 main_trans_update(config);
4573 4822
4574 if (save) config_save(config, NULL); 4823 if (save)
4824 config_save(config);
4575} 4825}
4576 4826
4577static void 4827static void
@@ -4871,7 +5121,7 @@ _cb_command(void *data,
4871 else 5121 else
4872 eina_stringshare_replace(&(config->background), NULL); 5122 eina_stringshare_replace(&(config->background), NULL);
4873 main_media_update(config); 5123 main_media_update(config);
4874 config_save(config, NULL); 5124 config_save(config);
4875 } 5125 }
4876 } 5126 }
4877 } 5127 }
diff --git a/src/bin/win.h b/src/bin/win.h
index af4bf16..2986dac 100644
--- a/src/bin/win.h
+++ b/src/bin/win.h
@@ -50,6 +50,7 @@ void win_toggle_visible_group(Win *wn);
50void win_toggle_all_group(Win *wn); 50void win_toggle_all_group(Win *wn);
51Eina_Bool win_is_group_action_handled(Win *wn); 51Eina_Bool win_is_group_action_handled(Win *wn);
52Eina_Bool win_is_group_input(Win *wn); 52Eina_Bool win_is_group_input(Win *wn);
53void win_scale_wizard(Evas_Object *win, Term *term);
53 54
54 55
55void term_ref(Term *term); 56void term_ref(Term *term);
diff --git a/tests/link_detection.sh b/tests/link_detection.sh
new file mode 100755
index 0000000..b06cc2a
--- /dev/null
+++ b/tests/link_detection.sh
@@ -0,0 +1,217 @@
1#!/bin/sh
2
3# char width: 7
4# char height: 15
5
6# clear screen
7printf '\033[2J'
8
9# set color
10printf '\033[46;31;3m'
11
12# move to 2; 0
13printf '\033[2;0H'
14printf 'Avast to go on account crack Jennys tea cup code of conduct grog https://terminolo.gy/ blossom hands scourge of the seven seas gangway pillage starboard. Admiral of the Black case shot barque red ensign Privateer cutlass Arr measured fer yer chains Gold Road league. Crack Jennys tea cup cog spirits keelhaul handsomely broadside carouser ho gabion barque. www.Enlightenment.org\r\n\r\n'
15
16printf 'Black jack six pounders flogging splice the main brace starboard yo-ho-ho Corsair plunder gally keelhaul. Landlubber or just lubber sloop jib lugsail foo.bar@qux.com clipper jury mast hornswaggle Blimey yard Pirate Round. Ye grapple parley brig brigantine spanker fluke warp league man-of-war.\r\n\r\n'
17
18printf 'Jolly Roger fluke me brig grapple furl tack rutters gally brigantine. Shiver me timbers yo-ho-ho black spot barque fore doubloon plunder run a shot ~/bin/terminology across the bow tack league. Brig lad keel keelhaul skysail cutlass rutters handsomely snow splice the main brace. \r\n\r\n'
19
20printf "Reef sails Gold Road dead men tell no tales aft gangway lad quarter draught case shot grapple. Stern lass jury mast yo-ho-ho maroon shrouds mizzen /usr/bin/terminology wench jolly boat Admiral of the Black. Maroon Chain Shot pirate wench pillage strike colors bowsprit bucko lee Davy Jones\047 Locker. \r\n"
21
22##
23# URL (https://terminolo.gy/)
24##
25
26# mouse move
27printf '\033}tm;450;25\0'
28# no url detection just before url
29printf '\033}tln\0'
30
31# mouse move
32printf '\033}tm;458;25\0'
33# url detection on first character 'h'
34printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
35
36# mouse move
37printf '\033}tm;495;25\0'
38# url detection on first character ':'
39printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
40
41# mouse move
42printf '\033}tm;499;25\0'
43# url detection on first character '/'
44printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
45
46# mouse move
47printf '\033}tm;510;25\0'
48# url detection on second character '/'
49printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
50
51# mouse move
52printf '\033}tm;550;25\0'
53# url detection on 'n'
54printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
55
56# mouse move
57printf '\033}tm;5;45\0'
58# url detection on start of second line
59printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
60
61# mouse move
62printf '\033}tm;40;45\0'
63# url detection on last /
64printf '\033}tlu;65;1;5;2;https://terminolo.gy/\0'
65
66# mouse move
67printf '\033}tm;45;45\0'
68# no url detection on space after url
69printf '\033}tln\0'
70
71##
72# Not a link (league.)
73##
74
75# mouse move
76printf '\033}tm;140;65\0'
77# no url detection on 'l'
78printf '\033}tln\0'
79
80# mouse move
81printf '\033}tm;180;65\0'
82# no url detection on '.'
83printf '\033}tln\0'
84
85
86
87##
88# URL (www.Enlightenment.org)
89##
90
91# mouse move
92printf '\033}tm;255;85\0'
93# no url detection on ' ' before url
94printf '\033}tln\0'
95
96# mouse move
97printf '\033}tm;265;85\0'
98# url detection on 'w'
99printf '\033}tlu;37;5;57;5;www.Enlightenment.org\0'
100
101# mouse move
102printf '\033}tm;395;85\0'
103# url detection on 'r'
104printf '\033}tlu;37;5;57;5;www.Enlightenment.org\0'
105
106# mouse move
107printf '\033}tm;410;85\0'
108# no url detection on empty space after url
109printf '\033}tln\0'
110
111
112##
113# Email (foo.bar@qux.com)
114##
115
116# mouse move
117printf '\033}tm;485;130\0'
118# no email detection on ' ' before email
119printf '\033}tln\0'
120
121# mouse move
122printf '\033}tm;495;133\0'
123# email detection on 'f'
124printf '\033}tle;70;8;4;9;foo.bar@qux.com\0'
125
126# mouse move
127printf '\033}tm;540;130\0'
128# email detection on 'f'
129printf '\033}tle;70;8;4;9;foo.bar@qux.com\0'
130
131# mouse move
132printf '\033}tm;540;130\0'
133# email detection on '@'
134printf '\033}tle;70;8;4;9;foo.bar@qux.com\0'
135
136# mouse move
137printf '\033}tm;10;140\0'
138# email detection on '.'
139printf '\033}tle;70;8;4;9;foo.bar@qux.com\0'
140
141# mouse move
142printf '\033}tm;45;140\0'
143# no email detection on ' ' after email
144printf '\033}tln\0'
145
146
147##
148# File (~/bin/terminology)
149##
150
151# mouse move
152printf '\033}tm;480;200\0'
153# no file detection on ' ' before path
154printf '\033}tln\0'
155
156# mouse move
157printf '\033}tm;485;200\0'
158# file detection on '~'
159printf '\033}tlp;69;13;5;14;%s/bin/terminology\0' "$HOME"
160
161# mouse move
162printf '\033}tm;550;200\0'
163# file detection on 'm'
164printf '\033}tlp;69;13;5;14;%s/bin/terminology\0' "$HOME"
165
166# mouse move
167printf '\033}tm;5;215\0'
168# file detection on 'n'
169printf '\033}tlp;69;13;5;14;%s/bin/terminology\0' "$HOME"
170
171# mouse move
172printf '\033}tm;40;215\0'
173# file detection on 'n'
174printf '\033}tlp;69;13;5;14;%s/bin/terminology\0' "$HOME"
175
176# mouse move
177printf '\033}tm;48;215\0'
178# no file detection on ' ' after path
179printf '\033}tln\0'
180
181
182
183##
184# File (/usr/bin/terminology)
185##
186
187# mouse move
188printf '\033}tm;466;280\0'
189# no file detection on ' ' before path
190printf '\033}tln\0'
191
192# mouse move
193printf '\033}tm;470;280\0'
194# file detection on '/'
195printf '\033}tlp;67;18;6;19;/usr/bin/terminology\0'
196
197# mouse move
198printf '\033}tm;550;280\0'
199# file detection on 'r'
200printf '\033}tlp;67;18;6;19;/usr/bin/terminology\0'
201
202# mouse move
203printf '\033}tm;5;295\0'
204# file detection on 'i'
205printf '\033}tlp;67;18;6;19;/usr/bin/terminology\0'
206
207# mouse move
208printf '\033}tm;40;295\0'
209# file detection on 'g'
210printf '\033}tlp;67;18;6;19;/usr/bin/terminology\0'
211
212# mouse move
213printf '\033}tm;55;295\0'
214# no file detection on ' ' after path
215printf '\033}tln\0'
216
217
diff --git a/tests/selection_box_to_word.sh b/tests/selection_box_to_word.sh
index c300e7e..bca2481 100755
--- a/tests/selection_box_to_word.sh
+++ b/tests/selection_box_to_word.sh
@@ -48,7 +48,7 @@ printf '\033}td;450;78;1;2;1\0'
48printf '\033}tu;450;78;1;2;1\0'