/
mintty.1
4034 lines (3469 loc) · 160 KB
/
mintty.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.TH mintty 1 mintty
.ad l
.SH NAME
mintty \(en Cygwin terminal emulator
.SH SYNOPSIS
\fBmintty\fP [\fIOPTION\fP]... [ \fB-\fP | \fIPROGRAM\fP [\fIARG\fP]... ]
.SH DESCRIPTION
\fBMintty\fP is a terminal emulator for Cygwin with a native Windows user
interface and minimalist design.
Its terminal emulation is largely compatible with \fBxterm\fP, but it does not
require an X server.
.SH INVOCATION
If a program name is supplied on the command line, this is executed with any
additional arguments given.
Otherwise, mintty looks for a shell to execute in the \fISHELL\fP environment
variable.
If that is not set, it reads the user's default shell setting from
\fI/etc/passwd\fP.
As a last resort, it falls back to \fI/bin/sh\fP.
If a single dash is specified instead of a program name, the shell is invoked
as a login shell.
If mintty is started from a Windows shortcut (desktop or start menu), by
default the shell is also invoked as a login shell unless disabled by an option.
Invocation by a name of \fBwsl*\fP\fI[-distro]\fP
implies a \fB--WSL\fP\fI[=distro]\fP parameter.
Mintty supports being started from a Windows desktop shortcut; it honours
window and icon settings of the shortcut, aligns taskbar grouping with the
shortcut, disables daemonizing, and sets environment variable
MINTTY_SHORTCUT to its pathname.
Before starting the child program, mintty trims the environment from other
variables set by launchers, other terminals, or shells, that might indicate
incorrect information and lead to confusing behaviour.
.SH OPTIONS
The standard GNU option formats are accepted, with single dashes
introducing short options and double dashes introducing long options.
Note that setting \fBShortLongOpts\fP enables single-dash long options.
.TQ
\fB-c\fP, \fB--config\fP \fIFILENAME\fP
Read settings from the specified configuration file, in addition to
the default config files.
Configuration changes are saved to the last file thus specified.
.TQ
\fB-C\fP, \fB--loadconfig\fP \fIFILENAME\fP
Read settings from the specified configuration file, in addition to
the default config files.
The file is not taken into account for saving configuration changes.
This is useful to mix-in partial configuration variants, particularly
colour schemes. However, \fB-o ThemeFile=\fP\fIFILENAME\fP may be preferable.
.TQ
\fB--configdir\fP \fIDIRNAME\fP
Use the given directory to check for resource subdirectories
(\fIthemes\fP, \fIsounds\fP, \fIlang\fP, \fIemojis\fP, \fIicon\fP, \fIfonts\fP, \fIpointers\fP);
also read settings from the configuration file \fIDIRNAME\fP/\fBconfig\fP,
in addition to the default config files, and save configuration changes here.
.TQ
\fB--dir\fP \fIdirectory\fP
Change initial directory to start in. This is especially useful for
invocation of mintty from a Windows context menu via registry entry.
.TQ
\fB-e\fP, \fB--exec\fP \fIPROGRAM\fP [\fIARG\fP ...]
Execute the specified program in the terminal session and pass on any additional
arguments.
This option is present for compatibility with other terminal emulators only.
It can be omitted, in which case the first non-option argument, if any,
is taken as the name of the program to execute.
.TQ
\fB-h\fP, \fB--hold\fP \fBnever\fP|\fBstart\fP|\fBerror\fP|\fBalways\fP
Determine whether to keep the terminal window open when the command has
finished and no more processes are connected to the terminal.
The argument can be abbreviated to a single letter.
By default, the window is closed immediately, except if the child process has
exited with status 255, which is used to indicate failure to execute the shell
command. (Exit status 255 is also used by \fBssh\fP to indicate connection
errors.)
Alternatively, the window can be set to never stay open, to always stay open,
or to stay open only if the child process terminates with an error, i.e. with
a non-zero exit status or due to a signal indicating a runtime error.
.TQ
\fB-i\fP, \fB--icon\fP \fIFILE\fP[\fB,\fP\fIINDEX\fP]
Load the window icon from an executable, DLL, or icon file. The optional
comma-separated index can be used to select a particular icon in a file with
multiple icons.
\fINote:\fP About interaction problems of icon, shortcut, and the Windows taskbar:
In a Windows desktop shortcut, it is suggested not to use this option in the
Target command line, as mintty will detect and use the icon
from the invoking shortcut (Change Icon...),
also resolving a leading Windows environment variable (like %SystemRoot%).
.TQ
\fB-l\fP, \fB--log\fP \fIFILE\fP|\fB-\fP
Copy all output into the specified log file, or standard output if a dash is
given instead of a file name.
(Implies \fB-o Logging=yes\fP.)
If FILE contains \fB%d\fP it will be substituted with the process ID.
See description of equivalent option "Log file" (Log=) below
for further formatting options and hints.
Note that logging can be toggled from the extended context menu.
.TQ
\fB--logfile\fP \fIFILE\fP|\fB-\fP
Like \fB--log\fP but with logging initially disabled, so just
specifying a potential log file name in case logging is enabled from
the extended context menu.
(Equivalent to combining \fB--log\fP with \fB-o Logging=no\fP.)
.TQ
\fB-o\fP, \fB--option\fP \fINAME\fP=\fIVALUE\fP
Override the named config file option with the given value, e.g.
\fB-o ScrollbackLines=1000\fP.
Note that for option settings that are localized in the Options menu,
the value in the config file or on the command line must be unlocalized.
.TQ
\fB-p\fP, \fB--position\fP \fIX\fP\fB,\fP\fIY\fP
Open the window with its top left corner at the specified coordinates.
Instead of coordinates, "centre" or "center" can be specified to place
the window in the screen centre, and "right" or "bottom" can be specified
to align the right or bottom window border with the right or bottom
screen border (together with another option -p to specify an offset).
Option value "@N" where N is a number places the window on monitor N.
Multiple -p options can be combined; coordinates have a different meaning
depending on other options:
.br
\(en With "left", "top", or "@N", related coordinates are relative to the monitor.
.br
\(en With "right" or "bottom", related coordinates adjust the right or bottom
window border relative to the monitor.
.br
\(en Otherwise, coordinates are absolute and address the common multi-monitor
address space as provided by Windows.
.br
\(en Combination of this option with options \fBX\fP or \fBY\fP is not
supported; to place a window for example at the left or right screen border
with a certain top offset, use
\fBmintty -p left -p 0,50\fP or \fBmintty -p right -p 0,50\fP.
\fINote:\fP For another option to select the monitor for a new mintty window,
see the description of Alt+F2.
.TQ
\fB-s\fP, \fB--size\fP \fICOLS\fP\fB,\fP\fIROWS\fP
Set the default size of the window in character columns and rows.
(The xterm-like syntax \fICOLS\fP\fBx\fP\fIROWS\fP is accepted too.)
Instead of coordinates, "maxwidth" or "maxheight" can be specified;
this can be combined with another parameter \fB-s\fP for the other dimension.
The dimension for which "max" is applied is ignored in further \fB-s\fP or
\fB-p\fP parameters.
For example, \fBmintty -s maxwidth -p 0,0 -s 0,10\fP will start a window
at full screen width, positioned at the top of the screen, with 10 lines.
.TQ
\fB--nobidi\fP, \fB--nortl\fP
Disable bidi display (right-to-left support). Same as \fB-o Bidi=0\fP.
.TQ
\fB-t\fP, \fB--title\fP \fITITLE\fP
Use \fITITLE\fP as the initial window title.
By default, the title is set to the executed command.
.TQ
\fB-T\fP, \fB--Title\fP \fITITLE\fP
Use \fITITLE\fP as the permanent window title.
The title is not changeable by control sequences.
This feature is only available on the command line.
.TQ
\fB-B\fP, \fB--Border\fP \fBframe\fP|\fBvoid\fP
Suppress window title, display only a frame or no border.
This feature is only available on the command line.
Note that frame border operations are also disabled.
However, a window move can also be done with Ctrl+Alt+click-drag.
.TQ
\fB--tabbar\fP[\fB=\fP\fIlevel\fP]
Activate tabbar for tab-based session switching among virtual tabs.
This sets \fBTabBar=1\fP and \fBSessionGeomSync=\fP\fIlevel\fP.
Without given value the default window synchronization level is 2.
.TQ
\fB--newtabs\fP
Create a new window even if virtual tabs are enabled, so running a new
tab group. Implies \fB--tabbar\fP (equivalent to \fB--tabbar -o NewTabs=2\fP).
.TQ
\fB--horbar\fP[\fB=\fP\fImode\fP]
Support horizontal scrolling. Values are 3 to enable a permanent
horizontal scrollbar, or 2 to display a horizontal scrollbar only while
the horizontal terminal view is narrower than the actual terminal width.
.TQ
\fB-u\fP, \fB--utmp\fP
Create a utmp entry.
.TQ
\fB-w\fP, \fB--window\fP \fBnormal\fP|\fBmin\fP|\fBmax\fP|\fBfull\fP|\fBhide\fP
Set the initial window state: normal, minimized, maximized, full screen,
or hidden.
.TQ
\fB--class\fP \fICLASS\fP
Use \fICLASS\fP as the window class name of the main window.
This allows window grouping or setup of different tab sets,
and it allows scripting tools to distinguish different mintty instances.
The default is "mintty".
.TQ
\fB-d\fP, \fB--nodaemon\fP
Do not apply "daemonizing".
By default, mintty tries to detach itself from the invoking terminal when
started from a Cygwin Console in order to avoid disabled signal reception,
and when cloning the window (Alt+F2) in order to avoid a remaining zombie process.
.TQ
\fB-D\fP, \fB--daemon\fP
Enforce "daemonizing".
By default, mintty tries to detach itself from the invoking terminal only
as described above. With this option, it tries to detach always.
This makes a difference if a Windows "Shortcut key" is configured in a
Windows desktop shortcut for starting mintty. Without daemonizing, the
shortcut key will focus an already running instance of mintty, with
daemonizing it always starts a new instance.
.TQ
\fB-R\fP, \fB--Report\fP \fIinfo/mode\fP
Report requested information.
With values "s" or "o", mintty reports the position and size of the window
when it exits. This can be used to manage last window positions and reopen
mintty windows accordingly.
.br
Reporting mode is "s" or "o" to choose short or long option syntax for the
restored (i.e. neither maximized nor minimized) geometry;
min/max/fullscreen information is added.
With value "m", mintty reports the system's monitor configuration
(listing all connected monitors and their geometry and position in
Windows' virtual monitor coordinate system), and exits.
With value "f", mintty reports the monospace fonts installed on the system
as determined by mintty, and exits.
With value "W", mintty lists installed WSL distributions and properties,
and exits.
With value "t", mintty reports the tty name of the child process / shell.
.br
With value "p", mintty reports the PID of the child process (e.g. the shell).
.br
With value "P", mintty reports the cygwin PID and the Windows PID
of the mintty process (i.e. running the terminal).
.br
With value "w", mintty reports its Windows window id.
Note also the invocation \fIMINTTY_DEBUG=C mintty ...\fP; it will list
all config files loaded by mintty and whether they are also considered
for saving - the last one will be saved to. (This cannot be a \fB-R\fP
option as most config files are read before command line parameters are evaluated.)
.TQ
\fB--trace\fP \fIOUTPUT\fP
This option redirects reporting (and debug) output to a file.
.TQ
\fB--store-taskbar-properties\fP
Enable persistent storage of Windows taskbar properties together with
options AppName and AppLaunchCmd.
.TQ
\fB--nopin\fP
Prevent pinning of the mintty window to the Windows taskbar.
.TQ
\fB-P\fP, \fB--pcon\fP [\fBon\fP|\fBoff\fP]
Enforce enabling or disabling of ConPTY support.
.TQ
\fB--wsl\fP (preferred option: \fB--WSL\fP, see below)
Adjust to WSL (the Windows Subsystem for Linux, or Bash/Ubuntu on Windows):
.br
\(en When dragging a Windows file or folder into mintty, it will be pasted
using the Linux path name.
.br
\(en When Ctrl+clicking a file name, it will be interpreted in the Linux
namespace and converted before opening in Windows.
.br
\(en Options DropCommands, ExitCommands, and setting MINTTY_PROG for UserCommands are disabled.
.br
\(en The working directory of the current foreground process
(for click-opening pathnames) cannot be detected.
.br
\(en Locale modification (@cjk...) is not set to the environment variables.
.TQ
\fB--WSL\fP=\fIWSL DISTRIBUTION NAME\fP
Run a WSL session, setting other parameters as appropriate and involving
the \fIwslbridge2\fP gateway implicitly
(which should be installed in /bin for this purpose).
If the distribution name is empty, the default WSL installation is run;
otherwise, it refers to the installed WSL packages as listed by the
Windows tool \fBwslconfig /l\fP or \fBwsl -l\fP.
Implies \fB--wsl\fP, \fB--rootfs=\fP...,
and \fB--icon=\fP... if a respective icon file exists for the distribution.
Also sets up the gateway to propagate locale settings LANG, LC_CTYPE, LC_ALL
and environment variable APPDATA to the WSL session.
.TQ
\fB--WSLmode\fP=\fIWSL DISTRIBUTION NAME\fP
Setup a WSL session for the given distribution (like \fB--WSL\fP) but
do not actually launch WSL which must be achieved with explicit
invocation of a suitable gateway.
The preferred option is \fB--WSL\fP which invokes \fI/bin/wslbridge2\fP
with proper arguments as determined from the selected WSL distribution,
in login mode if requested and home directory preference if requested.
.TQ
\fB--rootfs\fP \fIROOTFOLDER\fP
Provide the root filesystem folder to adjust path conversion properly
for the respective WSL installation.
.TQ
\fB-~\fP
Start in the user's home directory. Affects also WSL sessions.
.TQ
\fB-H\fP, \fB--help\fP
Display a brief help message and exit.
.TQ
\fB-V\fP, \fB--version\fP
Print version information and exit.
.TQ
A number of xterm-style convenience options are also available:
.TQ
\fB--fg\fP
Sets ForegroundColour.
.TQ
\fB--bg\fP
Sets BackgroundColour.
.TQ
\fB--cr\fP
Sets CursorColour.
.TQ
\fB--selfg\fP
Sets HighlightForegroundColour.
.TQ
\fB--selbg\fP
Sets HighlightBackgroundColour.
.TQ
\fB--fn\fP, \fB--font\fP
Sets Font.
.TQ
\fB--fs\fP
Sets FontSize.
.TQ
\fB--geometry\fP \fICOLS\fP\fBx\fP\fIROWS\fP[[-+]\fIX\fP[-+]\fIY\fP][\fB@\fP\fIMONITOR\fP]
Sets size and position, extending xterm syntax by an optional monitor number.
.TQ
\fB--en\fP
Sets Charset within the current locale.
.TQ
\fB--lf\fP
Sets Log, the log file name.
Use \fB-l\fP to both set the log file name and enable logging.
.TQ
\fB--sl\fP
Sets ScrollbackLines; effectively limited by \fBMaxScrollbackLines\fP.
.SH USAGE
Mintty tries to adhere to both Windows and Unix usage conventions.
Where they conflict, an option is usually provided.
This section primarily describes the default configuration;
see the \fBCONFIGURATION\fP section on how it can be customized.
.SS Font rendering
Mintty uses Windows Uniscribe font rendering to display a wider range
of characters; the TextOut API is automatically used instead if suitable.
.TQ
\fBFont integration\fP
Fonts in the resource subdirectory \fIfonts\fP of the config directory
are installed dynamically and can be used for configured or interactively
changed font selection. This is especially useful for a portable installation.
.SS Bidirectional rendering
In addition to its default implicit bidirectional rendering with automatic
direction detection (according to the Unicode Bidi algorithm),
mintty supports ECMA-48 bidi modes and private bidi modes to control
switchable bidi behaviour per line and partially per paragraph (i.e. within
an auto-wrapped line), as listed in
\fIhttps://github.com/mintty/mintty/wiki/CtrlSeqs#bidirectional-rendering\fP.
They follow the current status of the bidi mode model of the
\fBBiDi in Terminal Emulators\fP recommendation
(\fIhttps://terminal-wg.pages.freedesktop.org/bidi/\fP).
.SS Menus
The context menu can be opened by right-clicking the mouse (with Shift
in case right-click has been redefined or redirected to the application) or by
pressing the \fBMenu\fP key that is normally located next to the right Ctrl key.
If invoked while the Ctrl key is held down, an extended context menu will
be opened, with some additional entries.
The context menu and its modified variants (with Ctrl etc) can be customized;
see section on Menu configuration for details.
Mintty also adds a couple of items to the window menu, which can be accessed
by clicking on the program icon or pressing \fBAlt+Space\fP.
Both menus have an entry that leads to the Options dialog for changing mintty's
configuration.
.SS Text selection, copy & paste
Screen contents can be selected by holding down the left mouse button and
dragging the mouse. If Alt is held down before the left mouse button, a
rectangular block instead of whole lines will be selected.
The selection can be extended by holding down \fBShift\fP while left-clicking.
Double-clicking or triple-clicking selects a whole word or line, whereby word
selection includes special characters that commonly appear in file names and
URLs.
By default, selected text is automatically copied to the clipboard.
This can be disabled on the \fBMouse\fP page of the Options dialog.
Selected text can also be copied manually using either the \fBCopy\fP menu
command, the \fBCtrl+Ins\fP or \fBCtrl+Shift+C\fP keyboard shortcuts
(the latter if enabled by setting \fBCtrlShiftShortcuts=yes\fP;
\fBCtrl+C\fP with option \fBCtrlExchangeShift=yes\fP),
or the middle mouse button combined with \fBShift\fP.
The selected region is copied as "rich text" as well as normal text,
which means it can be pasted with colours and formatting into applications
that support it, e.g. word processors ("true colour" attributes are not supported).
The window title can be copied using the \fBCopy Title\fP command in the window
menu.
The clipboard contents can be pasted using either the \fBPaste\fP menu command,
the \fBShift+Ins\fP or \fBCtrl+Shift+V\fP keyboard shortcuts
(the latter if enabled by setting \fBCtrlShiftShortcuts=yes\fP;
\fBCtrl+V\fP with option \fBCtrlExchangeShift=yes\fP),
or the middle mouse button.
Not only text but also files and directories can be pasted,
whereby the latter are inserted as Cygwin file names.
Shell quoting is added to file names that contain spaces or special characters.
Selection highlighting is cleared on input by default. This can be disabled
with option \fBClearSelectionOnInput=false\fP.
The current selection size can optionally been indicated with a popup,
enabled with option \fBSelectionShowSize\fP.
Selection can also be managed using the keyboard. Shift+middle-keypad-key
(Shift+"5") enters keyboard selecting mode (modifier configurable).
Note: If both settings \fBCtrlShiftShortcuts\fP and \fBCtrlExchangeShift\fP
are enabled, copy & paste functions are assigned to plain (unshifted)
\fBCtrl+C\fP and \fBCtrl+V\fP for those who prefer them to be handled
like in Windows.
.TQ
\fBElastic text selection\fP
The traditional selection behaviour of cell-based terminals is that a
character touched with the mouse is included in the selection.
With option \fBElasticMouse\fP, text selection can be changed to include
the first and last characters only if they are spanned at least halfway
by the mouse dragging, like many GUI applications do.
.SS Drag & drop
Text, files and directories can be dropped into the mintty window.
They are inserted in the same way as if they were pasted from the clipboard.
.SS Opening files, directories and URLs
Files, directories, URLs and web addresses beginning with "www." can be
opened either by holding \fBCtrl\fP while left-clicking on them (or
double-clicking, if and as enabled by option \fBOpeningClicks\fP, or
left-clicking with another modifier as configured by option \fBOpeningMod\fP),
or by selecting them and choosing the \fBOpen\fP command from the context menu.
Embedded spaces are considered if escaped with a backslash; for
selected pathnames, also embedding quote marks are considered.
A relative pathname is interpreted as relative to the current working
directory of the terminal foreground process if that can be determined,
overridden by the working directory interactively communicated by the
respective control sequence (OSC 7).
Mintty also supports the OSC 8 control to embed explicit hyperlinks
(similar to links on web pages),
see \fIhttps://github.com/mintty/mintty/wiki/CtrlSeqs#hyperlinks\fP.
\fINote:\fP While application mouse modes are enabled (as used by many
screen oriented applications), \fBCtrl+Shift+click\fP can be used to
override it.
.TQ
\fBHovering files, directories and URLs\fP
The file names and links subject to opening are indicated by underlining
when mouse-hovering over them (i.e. when moving the mouse) while the
Control key is pressed. The colour used for hovering underlines
can be configured with \fBHoverColour\fP. Explicit hyperlinks are displayed
in the window title when hovering them; this can be disabled with \fBHoverTitle\fP.
.SS Font zoom
The font size can be increased or decreased using the keyboard shortcuts
\fBCtrl+(keypad-)plus\fP and \fBCtrl+(keypad-)minus\fP,
or by holding \fBCtrl\fP while rolling the mouse wheel.
\fBCtrl+zero\fP or \fBCtrl+middle-mouse click\fP returns the font size
to the default.
.br
\fIShift-coupled window-with-font zooming:\fP
If Shift is also held while zooming, the window will be resized to scale
together with the font, keeping the terminal character size if possible.
This is not applied to the shifted numeric keypad "0" (which has other
meaning) and to the shifted normal (non-keypad) "-" and "+" keys
(because the shifted key could have a valid mapping, e.g. Ctrl+_, or the
"+" key could be shifted itself already).
.br
Zooming by keyboard or mouse can be disabled, respectively, with options
ZoomShortcuts=no or ZoomMouse=no.
.SS Drag resize
The usual windows function to drag on the window border resizes the terminal.
.br
\fIShift-coupled font-with-window zooming:\fP
If Shift is also held while resizing, but Control is not held, the
font will be scaled along with the resizing, unless disabled with
ZoomFontWithWindow=false (which would help to avoid interference with
certain shifted hotkeys configured to resize the window).
.br
Note that due to the different height/width factors, coupled font zooming
is not a precise operation.
.SS Reflow / Line rebreaking after resize
If the terminal is resized to a different width, mintty can
automatically rebreak and rewrap lines that had been auto-wrapped.
This feature can be enabled by setting \fBRewrapOnResize\fP or in the
Options dialog.
Note that rewrapping can also be disabled per line by an escape sequence.
.SS DPI change
When DPI setting changes (by reconfiguration of display properties
"what's on your screen ... smaller/medium/larger" or moving the mintty window
between monitors with different DPI settings), mintty adapts its screen
size to avoid Windows blurred auto-adaptation. If Shift is also held during
the change, the font will be scaled too, roughly maintaining the screen
dimensions.
.SS Full screen
Full screen mode can be toggled using either the \fBFull Screen\fP command in the
menu or either of the \fBAlt+Enter\fP and \fBAlt+F11\fP keyboard shortcuts,
or the generic functions of the window title bar.
.SS Default size
If the window has been resized, it can be returned to the default size set in
the Window pane of the options using the \fBDefault size\fP command in the
menu or the \fBAlt+F10\fP shortcut.
\fBShift+Alt+F10\fP also restores the font size to its default.
.SS Reset
Sometimes a faulty application or printing a binary file will leave the
terminal in an unusable state. In that case, resetting the terminal's state
via the \fBReset\fP command in the menu or the \fBAlt+F8\fP keyboard shortcut
may help.
.SS Scrolling and the scrollback buffer
Mintty has a scrollback buffer that can hold up to 10000 lines in the default
configuration.
It can be accessed using the scrollbar, the mouse wheel, or the keyboard.
Hold the \fBShift\fP key while pressing the \fBUp\fP and \fBDown\fP arrow keys
to scroll line-by-line or the \fBPageUp\fP and \fBPageDown\fP keys to scroll
page-by-page.
In \fIscroll mode\fP, the same keys without \fBShift\fP do the same.
With option \fBKeyFunctions\fP, user-defined keys can be used for scrolling.
If the alternate screen is active, instead of scrolling in the scrollback
buffer, the mouse wheel sends virtual cursor key escape sequences
("mousewheel reporting", roughly corresponds to xterm alternateScroll mode).
This causes many applications, for example \fIless\fP, to scroll in an
application-specific way (e.g. in the shell history).
In both cases (scrollback and application scrolling), the number of lines
per mouse notch is taken from Windows system settings, typically 3;
this can be overriden by setting \fBLinesPerMouseWheelNotch\fP.
With setting \fBZoomMouse=false\fP, holding the \fBControl\fP key while
moving the mouse wheel scrolls by 1 line.
Scrollback scrolling can be overridden dynamically to enforce
mousewheel reporting in normal screen mode (i.e. not alternate screen)
by holding the \fBAlt\fP key additionally. So for example shell history
can be scrolled with Control+Alt+mouse-wheel.
Note that all modes of mouse operation are overridden by
various "mouse tracking" modes enabled by escape sequences.
See section further below for horizontal scrolling.
.SS Scroll Lock handling
The ScrollLock key is one of the most useless keys on typical PC keyboards
as it is mostly ignored by software nowadays, and yet has its own LED.
However, there are two historic features that could be associated with
"ScrollLock". One is the VT100 NoScroll key which would hold output
via the terminal, the other is a Windows function to switch cursor keys
to screen scrolling as still used by the Excel program.
Mintty provides both features as user-definable functions, in two variants each.
Functions are no-scroll and scroll-mode (referring to those two features)
which would be reset by any key input, and toggle-no-scroll and
toggle-scroll-mode which would switch the respective feature on or off.
These functions can be attached to any user-assignable function key or
special key, including the ScrollLock key, with setting \fBKeyFunctions\fP.
Mintty manages the ScrollLock keyboard light to reflect either of these
functions activated, trying to decouple the light indication from the
ScrollLock key while in a mintty window.
.SS Searching in the text and scrollback buffer
The \fBSearch\fP menu command and \fBAlt+F3\fP shorcut open a search bar
with an input field for a search string. Matches are highlighted in the
scrollback buffer. \fBEnter\fP/\fBShift+Enter\fP find the next/previous
position of the match and scrolls the scrollback buffer accordingly.
\fBTab\fP focusses back into the terminal pane of the window.
The appearance of the search bar and the matching highlight colours can be
customized.
.br
Matching is case-insensitive and ignores combining characters.
Shift+cursor-left/right offers another scrolling feature. If prompt lines
are marked with scroll markers they navigate to the previous/next prompt, to
provide a better orientation among the output of previously invoked commands.
See the Control Sequences wiki page \fIhttps://github.com/mintty/mintty/wiki/CtrlSeqs#scroll-markers\fP for details.
.SS Flip screen
Applications such as editors and file viewers normally use a terminal feature
called the alternate screen, which is a second screen buffer without scrollback.
When they exit, they switch back to the primary screen to restore the command
line as it was before invoking the application.
The \fBFlip Screen\fP menu command and \fBAlt+F12\fP shortcut allow looking
at the primary screen while the alternate screen is active, and vice versa.
For example, this allows to refer to past commands while editing a file.
.SS Switching session
The \fBCtrl+Tab\fP and \fBCtrl+Shift+Tab\fP shortcuts can be used to
cycle through mintty windows.
Minimized windows are skipped unless both \fBCtrl\fP keys are used.
.SS Virtual Tabs
The Virtual Tabs feature provides a list of all running mintty sessions (session switcher)
as well as configurable launch parameters for new sessions (session launcher).
The session list is shown when right-clicking the title bar (if
virtual tabs mode is configured or with Ctrl) or ctrl+left-clicking it.
By default, the list is also shown in the extended context menu (Ctrl+right-click),
the mouse button 5 menu, and the menus opened with the Ctrl+Menu key
and the Ctrl+Shift+I shortcut (if enabled).
(Menu contents for the various context menu invocations is configurable.)
For configuration, see settings \fBSessionCommands\fP, \fBMenu*\fP,
and \fBSessionGeomSync\fP.
Distinct sets of sessions can be set up with the setting \fB-o Class=...\fP.
Virtual Tabs can be switched quickly with user-defined key assignments,
using user-definable functions switch-[visible-](prev|next).
Mintty manages tabs in order to hide background tabs from appearing
while moving the window, and (since 3.6.5) to support transparency
(avoiding cumulation of opaqueness), and keep the tabbar consistent
in case a tab gets terminated irregularly.
.TQ
\fBTabbar \fP
With setting \fBTabBar\fP, an interactive tabbar complements the
virtual tabs mechanism. (It works like the session switcher available
via extended context menu or title bar menu.)
It is recommended to also set \fBSessionGeomSync=3\fP or higher to
achieve a tabbed window behaviour.
.SS Horizontal scrolling of terminal view and horizontal scrollbar
Mintty provides an optional horizontal scrollbar, which can be enabled
by a \fB--horbar\fP command-line option.
The window view can then be narrowed to be a partial view within
the actual terminal width,
and the view position can be changed by horizontal scrolling.
There are two methods to perform view resizing and positioning:
The horizontal scrollbar can be used to shift the view, while clicking
it with either Ctrl held, or Shift or Alt held, can resize the view;
Ctrl will narrow the view, Shift or Alt will widen it, each at the
opposite side of where the scrollbar is clicked (in order to maintain
a stable clicking position while resizing by multiple clicks);
clicking the scrollbar end arrows resizes by 1 column, clicking the
empty scrollbar areas resizes by more columns.
The other method of horizontal view control uses user-definable functions
which can be assigned to key combinations with option \fBKeyFunctions\fP,
see there for an example.
\fINote:\fP This is an experimental feature.
\fINote:\fP Horizontal scrolling is not supported with virtual tabs mode.
.SS Closing a session
Clicking the window's close button, pressing \fBAlt+F4\fP, or choosing
\fBClose\fP from the window menu sends a \fISIGHUP\fP signal to the process
running in mintty, which normally causes it to exit.
That signal can be ignored, though, in which case the program might have to be
forced to terminate by sending a \fISIGKILL\fP signal instead.
This can be done by holding down \fBShift\fP when using the close button,
shortcut or menu item.
.SS Terminal Break
A traditional BRK event on a serial terminal connection can be simulated.
The Break is available in the extended context menu and it can be mapped
to the Break key (or other user-defined key) by configuration.
Note, however, that a BRK can be ignored by configuration of the terminal
device (pty) or can be ignored by an application by catching the SIGINT signal.
For more forceful interruption of the terminal client application, see the
Tips wiki page \fIhttps://github.com/mintty/mintty/wiki/Tips#terminating-the-foreground-program-the-hard-way\fP.
Note that Ctrl+C is often configured to raise a SIGINT signal. However,
this is not a terminal feature and can also be reconfigured (stty), so
in fact BRK and Ctrl+C are inherently different functions.
.SS Mouse tracking
When an application activates mouse tracking, mouse events are sent to the
application rather than being treated as window events.
This is indicated by the mouse pointer changing from an \fBI\fP shape to an
arrow.
Holding down \fBShift\fP overrides mouse tracking mode and sends mouse
events to the window instead, so that e.g. text can be selected and the
context menu can be accessed.
Mintty supports 5-button mice, handling mouse buttons 4 / 5 like
Alt+click-left / right in most mouse modes.
.SS Character input
Mintty supports input of characters that are not directly mapped in the
keyboard layout: Numeric input, Unicode input, and composed characters
entered after a configurable Compose key.
Visual feedback displays numeric or composing input modes and their input.
.TQ
\fBAlt codes\fP
The Windows Alt+Numpad method for entering character codes is supported,
whereby the Alt key has to be held while entering the character code.
Only the first key has to be on the numpad; subsequent digits can be entered
both on the numpad or the main part of the keyboard.
If the first key is a zero, the code is interpreted as octal.
.br
If the first key is any other digit from 1 to 9, the code is interpreted as
decimal.
.br
If the first key is the \(aq\fB+\fP\(aq on the numpad, the code is interpreted as
hexadecimal, whereby digits A through F can be entered using the letter keys.
.br
If the first key is the \(aq\fB-\fP\(aq on the numpad, the code is interpreted as
decimal; this is normally not needed but can be used to override a
user-defined function assignment to an Alt+numpad key.
For UTF-8 and other Unicode encodings such as GB18030, the entered code is
interpreted as a Unicode codepoint and encoded accordingly before it is sent.
For other encodings, the entered code is sent as is.
If it doesn't fit into one byte, it is sent as multiple bytes, with
the most significant non-zero byte first.
.TQ
\fBUnicode input\fP
With user-definable function \fBunicode-char\fP (Ctrl+Shift+U by default),
input of a hexadecimal Unicode character code is started.
(In UTF-8 terminal mode, the result is the same as hexadecimal Alt code
input described above.)
.TQ
\fBCompose key\fP
Mintty supports a Compose key like on some traditional keyboards, using
compose character sequences from X11.
It can be assigned to a modifier key in the Options menu, section Keys,
or to the CapsLock key.
The Compose key function can also be assigned to another key combination
using user-definable function \fBcompose\fP in setting \fBKeyFunctions\fP.
.SS Keyboard shortcuts
This section gives an overview of all the keyboard shortcuts.
See also the final subsection on user-defined shortcuts.
.TQ
\fBAlt modifier key\fP
Note that \fBAlt+\fP in this description refers to the left Alt key.
For keyboards that have two Alt keys, the right Alt key is not generally
supported as an Alt modifier. The reason is that it cannot be safely
distinguished from the AltGr key of international keyboards which is used
to generate specific additional characters in various keyboard layouts
and can therefore not be used as a generic modifier.
.TQ
\fBScrollback and Selection via keyboard\fP
.br
\(en \fBShift+Up\fP: Line up
.br
\(en \fBShift+Down\fP: Line down
.br
\(en \fBShift+PgUp\fP: Page up
.br
\(en \fBShift+PgDn\fP: Page down
.br
\(en \fBShift+Home\fP: Top
.br
\(en \fBShift+End\fP: Bottom
.br
\(en \fBAlt+F3\fP: Search
.br
\(en \fBShift+cursor-left\fP: Go to previous scroll marker (e.g. in prompt)
.br
\(en \fBShift+cursor-right\fP: Go to next scroll marker (e.g. in prompt)
.br
\(en \fBShift+middle-keypad-key\fP: Enter keyboard selecting mode
Note: The modifier can be configured with setting \fBScrollMod\fP.
Note: In \fIscroll mode\fP, up/down/top/bottom scrolling works without \fBShift\fP.
Keyboard selecting mode: \fBAlt\fP sets rectangular selection.
Once keyboard selecting mode is entered, the following keys are applied:
.br
\(en \fBUp\fP, \fBDown\fP, \fBUp\fP, \fBUp\fP: Modify selection
.br
\(en \fBPgUp\fP, \fBPgDn\fP, \fBHome\fP, \fBEnd\fP: Scroll/Modify selection
.br
\(en \fB[Alt+]middle-keypad-key\fP: Restart [rectangular] selection
.br
\(en \fBInsert\fP or \fBEnter\fP: Copy selection and exit selection mode
.br
\(en \fBDelete\fP or \fBESC\fP: Exit selection mode
.TQ
\fBCopy and paste\fP
.br
\(en \fBCtrl+Ins\fP: Copy
.br
\(en \fBShift+Ins\fP: Paste
.br
\(en \fBCtrl+Shift+Ins\fP: Copy and paste
.TQ
\fBWindow commands\fP
.br
\(en \fBAlt+F2\fP: New (clone window/tab at current size); see notes below
.br
\(en \fBShift+Alt+F2\fP: New (clone at configured size); see notes below
.br
\(en \fBShift+Shift+Alt+F2\fP: New window; see notes below
.br
\(en \fBAlt+F3\fP: Search (in scrollback buffer)
.br
\(en \fBAlt+F4\fP: Close
.br
\(en \fBAlt+F8\fP: Reset (with confirm dialog)
.br
\(en \fBAlt+F10\fP: Default terminal size (rows/columns)
.br
\(en \fBShift+Alt+F10\fP: Default terminal size (rows/columns) and font size
.br
\(en \fBAlt+F11\fP or \fBAlt+Enter\fP: Toggle full screen
.br
\(en \fBShift+Alt+F11\fP or \fBShift+Alt+Enter\fP: Toggle full screen and zoom font
(Note that due to the different height/width factors, this is not a precise operation)
.br
\(en \fBAlt+F12\fP: Flip screen
.br
\(en \fBAlt+Space\fP: Window menu
.br
\(en \fBCtrl+Tab\fP: Next visible window (as sorted by creation time)
.br
\(en \fBCtrl+Shift+Tab\fP: Previous visible window (as sorted by creation time)
.br
\(en \fBCtrl+Ctrl+Tab\fP: Next window (as sorted by creation time)
.br
\(en \fBCtrl+Ctrl+Shift+Tab\fP: Previous window (as sorted by creation time)
.br
\(en \fBCtrl+Alt+mouse-click/drag\fP: Move window
Multi-monitor selection support: Alt+F2 (or user-defined "new" key
as defined with option \fBKeyFunctions\fP) will only spawn a new window
after F2 has been released. While the key is being held, the target monitor
can be selected with a sequence of numeric keypad keys:
.br
\(en cursor-up/down/left/right (8/2/4/6) navigate the target focus to the
respective neighbour in the monitor grid;
.br
\(en the diagonal keys (7/9/1/3) combine two directions respectively;
.br
\(en the central key (5) sets the target focus to the Windows "primary" monitor;
.br
\(en the Ins key (0) or Del resets the focus to the current monitor.
.br
These navigation controls can be applied repeatedly to select a monitor further away.
In virtual tabs mode (with tabbar), Alt+F2 spawns a new tab; with both
Shift keys held, it enforces a new tabbar group.
Note that a heuristic algorithm is used, based on the size of the smallest
monitor attached to the system, so the target may not always be selected
as expected if multiple monitors of different size are available or
monitors are not arranged in a regular grid.
Note also that this feature is overridden by option \fBSessionGeomSync\fP.
.TQ
\fBFont zoom\fP
.br
\(en \fBCtrl+(keypad-)plus\fP: Zoom font in
.br
\(en \fBCtrl+(keypad-)minus\fP: Zoom font out
.br
\(en \fBCtrl+Shift+(keypad-)plus\fP: Zoom font and window in
.br
\(en \fBCtrl+Shift+(keypad-)minus\fP: Zoom font and window out
.br
\(en \fBCtrl+zero\fP: Back to configured font size
.TQ
\fBCtrl+Shift+letter shortcuts\fP
An alternative set of shortcuts for clipboard and window commands using
\fBCtrl+Shift+letter\fP combinations is available. These can be enabled on the
Keys pane of the Options dialog.
.br
\(en \fBCtrl+Shift+A\fP: Select all
.br
\(en \fBCtrl+Shift+C\fP: Copy
.br
\(en \fBCtrl+Shift+V\fP: Paste
.br
\(en \fBCtrl+Shift+N\fP: [DEPRECATED] New Window/Tab
.br
\(en \fBCtrl+Shift+H\fP: Search scrollback buffer
.br