Merge lp:~vthompson/ubuntu-terminal-app/testing-fix into lp:ubuntu-terminal-app

Proposed by spookje
Status: Needs review
Proposed branch: lp:~vthompson/ubuntu-terminal-app/testing-fix
Merge into: lp:ubuntu-terminal-app
Diff against target: 24755 lines (+24263/-0) (has conflicts)
96 files modified
.bzrignore (+11/-0)
README (+11/-0)
assets/color-schemes/BlackOnLightYellow.schema (+42/-0)
assets/color-schemes/BlackOnRandomLight.colorscheme (+104/-0)
assets/color-schemes/BlackOnWhite.schema (+42/-0)
assets/color-schemes/DarkPastels.colorscheme (+103/-0)
assets/color-schemes/GreenOnBlack.colorscheme (+104/-0)
assets/color-schemes/Linux.colorscheme (+100/-0)
assets/color-schemes/WhiteOnBlack.schema (+42/-0)
assets/color-schemes/historic/BlackOnLightColor.schema (+42/-0)
assets/color-schemes/historic/DarkPicture.schema (+44/-0)
assets/color-schemes/historic/Example.Schema (+47/-0)
assets/color-schemes/historic/GreenOnBlack.schema (+42/-0)
assets/color-schemes/historic/GreenTint.schema (+49/-0)
assets/color-schemes/historic/GreenTint_MC.schema (+49/-0)
assets/color-schemes/historic/LightPicture.schema (+44/-0)
assets/color-schemes/historic/Linux.schema (+47/-0)
assets/color-schemes/historic/README.Schema (+132/-0)
assets/color-schemes/historic/README.default.Schema (+44/-0)
assets/color-schemes/historic/Transparent.schema (+49/-0)
assets/color-schemes/historic/Transparent_MC.schema (+51/-0)
assets/color-schemes/historic/Transparent_darkbg.schema (+42/-0)
assets/color-schemes/historic/Transparent_lightbg.schema (+51/-0)
assets/color-schemes/historic/XTerm.schema (+46/-0)
assets/color-schemes/historic/syscolor.schema (+44/-0)
assets/color-schemes/historic/vim.schema (+40/-0)
assets/kb-layouts/README (+72/-0)
assets/kb-layouts/default.keytab (+169/-0)
assets/kb-layouts/historic/vt100.keytab (+133/-0)
assets/kb-layouts/historic/x11r5.keytab (+71/-0)
assets/kb-layouts/linux.keytab (+164/-0)
assets/kb-layouts/macbook.keytab (+175/-0)
assets/kb-layouts/solaris.keytab (+108/-0)
assets/kb-layouts/vt420pc.keytab (+168/-0)
debian/changelog (+29/-0)
debian/compat (+1/-0)
debian/control (+40/-0)
debian/copyright (+50/-0)
debian/rules (+21/-0)
debian/source/format (+1/-0)
konsole-qml-plugin.pro (+97/-0)
src/BlockArray.cpp (+377/-0)
src/BlockArray.h (+126/-0)
src/Character.h (+221/-0)
src/CharacterColor.h (+294/-0)
src/ColorScheme.cpp (+774/-0)
src/ColorScheme.h (+342/-0)
src/ColorTables.h (+55/-0)
src/DefaultTranslatorText.h (+2/-0)
src/Emulation.cpp (+458/-0)
src/Emulation.h (+467/-0)
src/ExtendedDefaultTranslator.h (+74/-0)
src/Filter.cpp (+542/-0)
src/Filter.h (+380/-0)
src/History.cpp (+986/-0)
src/History.h (+490/-0)
src/KeyboardTranslator.cpp (+892/-0)
src/KeyboardTranslator.h (+584/-0)
src/LineFont.h (+21/-0)
src/LineFont.src (+786/-0)
src/Pty.cpp (+310/-0)
src/Pty.h (+206/-0)
src/Screen.cpp (+1360/-0)
src/Screen.h (+672/-0)
src/ScreenWindow.cpp (+292/-0)
src/ScreenWindow.h (+257/-0)
src/Session.cpp (+1064/-0)
src/Session.h (+626/-0)
src/ShellCommand.cpp (+167/-0)
src/ShellCommand.h (+90/-0)
src/TerminalCharacterDecoder.cpp (+251/-0)
src/TerminalCharacterDecoder.h (+148/-0)
src/TerminalDisplay.cpp (+2168/-0)
src/TerminalDisplay.h (+715/-0)
src/Vt102Emulation.cpp (+1221/-0)
src/Vt102Emulation.h (+188/-0)
src/default.keytab (+128/-0)
src/konsole_wcwidth.cpp (+224/-0)
src/konsole_wcwidth.h (+24/-0)
src/kprocess.cpp (+412/-0)
src/kprocess.h (+372/-0)
src/kpty.cpp (+701/-0)
src/kpty.h (+191/-0)
src/kpty_p.h (+50/-0)
src/kptydevice.cpp (+422/-0)
src/kptydevice.h (+360/-0)
src/kptyprocess.cpp (+129/-0)
src/kptyprocess.h (+178/-0)
src/ksession.cpp (+242/-0)
src/ksession.h (+132/-0)
src/plugin.cpp (+63/-0)
src/plugin.h (+46/-0)
src/plugins.qmltypes (+169/-0)
src/qmldir (+3/-0)
src/tools.cpp (+80/-0)
src/tools.h (+10/-0)
Conflict adding file .bzrignore.  Moved existing file to .bzrignore.moved.
Conflict adding file debian.  Moved existing file to debian.moved.
Conflict adding file src.  Moved existing file to src.moved.
To merge this branch: bzr merge lp:~vthompson/ubuntu-terminal-app/testing-fix
Reviewer Review Type Date Requested Status
Ubuntu Terminal Developers Pending
Review via email: mp+330470@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

14. By Victor Thompson

Initial fix for backspace and enter

13. By Dmitry Zagnoyko

Fixed text displaying bug (LP: #1182503). Fixes: https://bugs.launchpad.net/bugs/1182503.

Approved by Ubuntu Phone Apps Jenkins Bot, Michael Hall.

12. By Francis Ginther

Version bump.

Approved by Ubuntu Phone Apps Jenkins Bot, Michael Hall.

11. By Dmitry Zagnoyko

Added virtual key press events and fixed widget size properties. Fixes: https://bugs.launchpad.net/bugs/1177155.

Approved by Ubuntu Phone Apps Jenkins Bot, Michael Hall.

10. By Dmitry Zagnoyko

changed project structure.

Approved by Ubuntu Phone Apps Jenkins Bot, Michael Hall.

9. By Dmitry Zagnoyko

Fixed focus accept and VKB events

8. By Dmitry Zagnoyko

Added KSession signal for direct commands sending to terminal emu from qml

7. By Dmitry Zagnoyko

Added missing properties for KTerminal

6. By Dmitry Zagnoyko

Fixed issue with QtCreator

5. By Dmitry Zagnoyko

Object visibility scope fix: removed konsole namespace

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file '.bzrignore'
--- .bzrignore 1970-01-01 00:00:00 +0000
+++ .bzrignore 2017-09-09 05:25:54 +0000
@@ -0,0 +1,11 @@
1Makefile
2src/*.so
3*.pro.user
4
5.moc/
6.obj/
7
8debian/files
9debian/qtdeclarative5-konsole-qml-plugin/
10debian/*.debhelper.log
11debian/*.substvars
0\ No newline at end of file12\ No newline at end of file
113
=== renamed file '.bzrignore' => '.bzrignore.moved'
=== added file 'README'
--- README 1970-01-01 00:00:00 +0000
+++ README 2017-09-09 05:25:54 +0000
@@ -0,0 +1,11 @@
1this is a repository for shared C++ QML plugin, offering access to
2terminal sessions.
3
4if you want to add something, please ask the maintainer of this library first to
5make sure it's a good fit
6
7the current maintainer is: Dmitry Zagnoyko <hiroshidi@gmail.com>
8
9current plugin consist:
10- KTerminal: offers access to terminal session from qml
11- KSessions: offers access to pty(s) from C++ layer
0\ No newline at end of file12\ No newline at end of file
113
=== added directory 'assets'
=== added directory 'assets/color-schemes'
=== added file 'assets/color-schemes/BlackOnLightYellow.schema'
--- assets/color-schemes/BlackOnLightYellow.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/BlackOnLightYellow.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Black on Light Yellow
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | | |
14# V V--color--V V V
15
16color 0 0 0 0 0 0 # regular foreground color (Black)
17color 1 255 255 221 1 0 # regular background color (Light Yellow)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 0 0 0 0 1 # intensive foreground color
33color 11 255 255 221 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added file 'assets/color-schemes/BlackOnRandomLight.colorscheme'
--- assets/color-schemes/BlackOnRandomLight.colorscheme 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/BlackOnRandomLight.colorscheme 2017-09-09 05:25:54 +0000
@@ -0,0 +1,104 @@
1[Background]
2Bold=false
3Color=247,247,214
4Transparency=true
5MaxRandomHue=340
6
7[BackgroundIntense]
8Bold=false
9Color=255,255,221
10Transparency=true
11
12[Color0]
13Bold=false
14Color=0,0,0
15Transparency=false
16
17[Color0Intense]
18Bold=false
19Color=104,104,104
20Transparency=false
21
22[Color1]
23Bold=false
24Color=178,24,24
25Transparency=false
26
27[Color1Intense]
28Bold=false
29Color=255,84,84
30Transparency=false
31
32[Color2]
33Bold=false
34Color=24,178,24
35Transparency=false
36
37[Color2Intense]
38Bold=false
39Color=84,255,84
40Transparency=false
41
42[Color3]
43Bold=false
44Color=178,104,24
45Transparency=false
46
47[Color3Intense]
48Bold=false
49Color=255,255,84
50Transparency=false
51
52[Color4]
53Bold=false
54Color=24,24,178
55Transparency=false
56
57[Color4Intense]
58Bold=false
59Color=84,84,255
60Transparency=false
61
62[Color5]
63Bold=false
64Color=178,24,178
65Transparency=false
66
67[Color5Intense]
68Bold=false
69Color=255,84,255
70Transparency=false
71
72[Color6]
73Bold=false
74Color=24,178,178
75Transparency=false
76
77[Color6Intense]
78Bold=false
79Color=84,255,255
80Transparency=false
81
82[Color7]
83Bold=false
84Color=178,178,178
85Transparency=false
86
87[Color7Intense]
88Bold=false
89Color=255,255,255
90Transparency=false
91
92[Foreground]
93Bold=false
94Color=0,0,0
95Transparency=false
96
97[ForegroundIntense]
98Bold=true
99Color=0,0,0
100Transparency=false
101
102[General]
103Description=Black on Random Light
104Opacity=1
0105
=== added file 'assets/color-schemes/BlackOnWhite.schema'
--- assets/color-schemes/BlackOnWhite.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/BlackOnWhite.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Black on White
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | | |
14# V V--color--V V V
15
16color 0 0 0 0 0 0 # regular foreground color (Black)
17color 1 255 255 255 1 0 # regular background color (White)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 0 0 0 0 1 # intensive foreground color
33color 11 255 255 255 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added file 'assets/color-schemes/DarkPastels.colorscheme'
--- assets/color-schemes/DarkPastels.colorscheme 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/DarkPastels.colorscheme 2017-09-09 05:25:54 +0000
@@ -0,0 +1,103 @@
1[Background]
2Bold=false
3Color=44,44,44
4Transparency=false
5
6[BackgroundIntense]
7Bold=true
8Color=44,44,44
9Transparency=false
10
11[Color0]
12Bold=false
13Color=63,63,63
14Transparency=false
15
16[Color0Intense]
17Bold=true
18Color=112,144,128
19Transparency=false
20
21[Color1]
22Bold=false
23Color=112,80,80
24Transparency=false
25
26[Color1Intense]
27Bold=true
28Color=220,163,163
29Transparency=false
30
31[Color2]
32Bold=false
33Color=96,180,138
34Transparency=false
35
36[Color2Intense]
37Bold=true
38Color=114,213,163
39Transparency=false
40
41[Color3]
42Bold=false
43Color=223,175,143
44Transparency=false
45
46[Color3Intense]
47Bold=true
48Color=240,223,175
49Transparency=false
50
51[Color4]
52Bold=false
53Color=154,184,215
54Transparency=false
55
56[Color4Intense]
57Bold=true
58Color=148,191,243
59Transparency=false
60
61[Color5]
62Bold=false
63Color=220,140,195
64Transparency=false
65
66[Color5Intense]
67Bold=true
68Color=236,147,211
69Transparency=false
70
71[Color6]
72Bold=false
73Color=140,208,211
74Transparency=false
75
76[Color6Intense]
77Bold=true
78Color=147,224,227
79Transparency=false
80
81[Color7]
82Bold=false
83Color=220,220,204
84Transparency=false
85
86[Color7Intense]
87Bold=true
88Color=255,255,255
89Transparency=false
90
91[Foreground]
92Bold=false
93Color=220,220,204
94Transparency=false
95
96[ForegroundIntense]
97Bold=true
98Color=220,220,204
99Transparency=false
100
101[General]
102Description=Dark Pastels
103Opacity=1
0104
=== added file 'assets/color-schemes/GreenOnBlack.colorscheme'
--- assets/color-schemes/GreenOnBlack.colorscheme 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/GreenOnBlack.colorscheme 2017-09-09 05:25:54 +0000
@@ -0,0 +1,104 @@
1
2[Background]
3Bold=false
4Color=0,0,0
5Transparency=false
6
7[BackgroundIntense]
8Bold=false
9Color=0,0,0
10Transparency=false
11
12[Color0]
13Bold=false
14Color=0,0,0
15Transparency=false
16
17[Color0Intense]
18Bold=false
19Color=104,104,104
20Transparency=false
21
22[Color1]
23Bold=false
24Color=250,75,75
25Transparency=false
26
27[Color1Intense]
28Bold=false
29Color=255,84,84
30Transparency=false
31
32[Color2]
33Bold=false
34Color=24,178,24
35Transparency=false
36
37[Color2Intense]
38Bold=false
39Color=84,255,84
40Transparency=false
41
42[Color3]
43Bold=false
44Color=178,104,24
45Transparency=false
46
47[Color3Intense]
48Bold=false
49Color=255,255,84
50Transparency=false
51
52[Color4]
53Bold=false
54Color=92,167,251
55Transparency=false
56
57[Color4Intense]
58Bold=false
59Color=84,84,255
60Transparency=false
61
62[Color5]
63Bold=false
64Color=225,30,225
65Transparency=false
66
67[Color5Intense]
68Bold=false
69Color=255,84,255
70Transparency=false
71
72[Color6]
73Bold=false
74Color=24,178,178
75Transparency=false
76
77[Color6Intense]
78Bold=false
79Color=84,255,255
80Transparency=false
81
82[Color7]
83Bold=false
84Color=178,178,178
85Transparency=false
86
87[Color7Intense]
88Bold=false
89Color=255,255,255
90Transparency=false
91
92[Foreground]
93Bold=false
94Color=24,240,24
95Transparency=false
96
97[ForegroundIntense]
98Bold=true
99Color=24,240,24
100Transparency=false
101
102[General]
103Description=Green on Black
104Opacity=1
0105
=== added file 'assets/color-schemes/Linux.colorscheme'
--- assets/color-schemes/Linux.colorscheme 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/Linux.colorscheme 2017-09-09 05:25:54 +0000
@@ -0,0 +1,100 @@
1[Background]
2Bold=false
3Color=0,0,0
4
5[BackgroundIntense]
6Bold=false
7Color=104,104,104
8
9[Color0]
10Bold=false
11Color=0,0,0
12
13
14[Color0Intense]
15Bold=false
16Color=104,104,104
17
18
19[Color1]
20Bold=false
21Color=178,24,24
22
23
24[Color1Intense]
25Bold=false
26Color=255,84,84
27
28
29[Color2]
30Bold=false
31Color=24,178,24
32
33
34[Color2Intense]
35Bold=false
36Color=84,255,84
37
38
39[Color3]
40Bold=false
41Color=178,104,24
42
43
44[Color3Intense]
45Bold=false
46Color=255,255,84
47
48
49[Color4]
50Bold=false
51Color=24,24,178
52
53
54[Color4Intense]
55Bold=false
56Color=84,84,255
57
58
59[Color5]
60Bold=false
61Color=178,24,178
62
63
64[Color5Intense]
65Bold=false
66Color=255,84,255
67
68
69[Color6]
70Bold=false
71Color=24,178,178
72
73
74[Color6Intense]
75Bold=false
76Color=84,255,255
77
78
79[Color7]
80Bold=false
81Color=178,178,178
82
83
84[Color7Intense]
85Bold=false
86Color=255,255,255
87
88
89[Foreground]
90Bold=false
91Color=178,178,178
92
93
94[ForegroundIntense]
95Bold=false
96Color=255,255,255
97
98
99[General]
100Description=Linux Colors
0101
=== added file 'assets/color-schemes/WhiteOnBlack.schema'
--- assets/color-schemes/WhiteOnBlack.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/WhiteOnBlack.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title White on Black
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | | |
14# V V--color--V V V
15
16color 0 255 255 255 0 0 # regular foreground color (White)
17color 1 0 0 0 1 0 # regular background color (Black)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 255 255 255 0 1 # intensive foreground color
33color 11 0 0 0 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added directory 'assets/color-schemes/historic'
=== added file 'assets/color-schemes/historic/BlackOnLightColor.schema'
--- assets/color-schemes/historic/BlackOnLightColor.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/BlackOnLightColor.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Black on Light Color
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | | |
14# V V--color--V V V
15
16color 0 0 0 0 0 0 # regular foreground color (Black)
17rcolor 1 30 255 1 0 # regular background color (Light Color)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 0 0 0 0 1 # intensive foreground color
33color 11 255 255 221 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added file 'assets/color-schemes/historic/DarkPicture.schema'
--- assets/color-schemes/historic/DarkPicture.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/DarkPicture.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,44 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Marble
6
7image tile Blkmarble.jpg
8
9# foreground colors
10
11# note that the default background color is flagged
12# to become transparent when an image is present.
13
14# slot transparent bold
15# | | |
16# V V--color--V V V
17
18color 0 255 255 255 0 0 # regular foreground color (White)
19color 1 0 0 0 1 0 # regular background color (Black)
20
21color 2 0 0 0 0 0 # regular color 0 Black
22color 3 178 24 24 0 0 # regular color 1 Red
23color 4 24 178 24 0 0 # regular color 2 Green
24color 5 178 104 24 0 0 # regular color 3 Yellow
25color 6 24 24 178 0 0 # regular color 4 Blue
26color 7 178 24 178 0 0 # regular color 5 Magenta
27color 8 24 178 178 0 0 # regular color 6 Cyan
28color 9 178 178 178 0 0 # regular color 7 White
29
30# intensive colors
31
32# instead of changing the colors, we've flaged the text to become bold
33
34color 10 255 255 255 0 1 # intensive foreground color
35color 11 0 0 0 1 0 # intensive background color
36
37color 12 104 104 104 0 0 # intensive color 0
38color 13 255 84 84 0 0 # intensive color 1
39color 14 84 255 84 0 0 # intensive color 2
40color 15 255 255 84 0 0 # intensive color 3
41color 16 84 84 255 0 0 # intensive color 4
42color 17 255 84 255 0 0 # intensive color 5
43color 18 84 255 255 0 0 # intensive color 6
44color 19 255 255 255 0 0 # intensive color 7
045
=== added file 'assets/color-schemes/historic/Example.Schema'
--- assets/color-schemes/historic/Example.Schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Example.Schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,47 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Ugly 1
6
7# add a wallpaper, if you like. Second word one of { tile,center,full }
8
9image tile /opt/kde/share/wallpapers/dancy_pants.jpg
10
11
12# foreground colors
13
14# note that the default background color is flagged
15# to become transparent when an image is present.
16
17# slot transparent bold
18# | | |
19# V V--color--V V V
20
21color 0 0 0 0 0 0 # regular foreground color (Black)
22color 1 255 255 255 1 0 # regular background color (White)
23
24color 2 0 0 0 0 0 # regular color 0 Black
25color 3 255 0 0 0 0 # regular color 1 Red
26color 4 0 255 0 0 0 # regular color 2 Green
27color 5 255 255 0 0 0 # regular color 3 Yellow
28color 6 0 0 255 0 0 # regular color 4 Blue
29color 7 255 0 255 0 0 # regular color 5 Magenta
30color 8 0 255 255 0 0 # regular color 6 Cyan
31color 9 255 255 255 0 0 # regular color 7 White
32
33# intensive colors
34
35# instead of changing the colors, we've flaged the text to become bold
36
37color 10 0 0 0 0 1 # intensive foreground color
38color 11 255 255 255 1 1 # intensive background color
39
40color 12 0 0 0 0 1 # intensive color 0
41color 13 255 0 0 0 1 # intensive color 1
42color 14 0 255 0 0 1 # intensive color 2
43color 15 255 255 0 0 1 # intensive color 3
44color 16 0 0 255 0 1 # intensive color 4
45color 17 255 0 255 0 1 # intensive color 5
46color 18 0 255 255 0 1 # intensive color 6
47color 19 255 255 255 0 1 # intensive color 7
048
=== added file 'assets/color-schemes/historic/GreenOnBlack.schema'
--- assets/color-schemes/historic/GreenOnBlack.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/GreenOnBlack.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Green on Black
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | | |
14# V V--color--V V V
15
16color 0 24 240 24 0 0 # regular foreground color (Green)
17color 1 0 0 0 1 0 # regular background color (Black)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 24 240 24 0 1 # intensive foreground color
33color 11 0 0 0 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added file 'assets/color-schemes/historic/GreenTint.schema'
--- assets/color-schemes/historic/GreenTint.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/GreenTint.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,49 @@
1# linux color schema for konsole
2
3title Green Tint
4
5transparency 0.3 0 150 0
6
7# FIXME
8#
9# The flaw in this schema is that "blick" comes out on the
10# Linux console as intensive background, really.
11# Since this is not used in clients you'll hardly notice
12# it in practice.
13
14# foreground colors
15
16# note that the default background color is flagged
17# to become transparent when an image is present.
18
19# slot transparent bold
20# | red grn blu | |
21# V V--color--V V V
22
23color 0 178 178 178 0 0 # regular foreground color (White)
24color 1 0 0 0 1 0 # regular background color (Black)
25
26color 2 0 0 0 0 0 # regular color 0 Black
27color 3 178 24 24 0 0 # regular color 1 Red
28color 4 24 178 24 0 0 # regular color 2 Green
29color 5 178 104 24 0 0 # regular color 3 Yellow
30color 6 24 24 178 0 0 # regular color 4 Blue
31color 7 178 24 178 0 0 # regular color 5 Magenta
32color 8 24 178 178 0 0 # regular color 6 Cyan
33color 9 178 178 178 0 0 # regular color 7 White
34
35# intensive colors
36
37# instead of changing the colors, we've flaged the text to become bold
38
39color 10 255 255 255 0 0 # intensive foreground color
40color 11 104 104 104 1 0 # intensive background color
41
42color 12 104 104 104 0 0 # intensive color 0
43color 13 255 84 84 0 0 # intensive color 1
44color 14 84 255 84 0 0 # intensive color 2
45color 15 255 255 84 0 0 # intensive color 3
46color 16 84 84 255 0 0 # intensive color 4
47color 17 255 84 255 0 0 # intensive color 5
48color 18 84 255 255 0 0 # intensive color 6
49color 19 255 255 255 0 0 # intensive color 7
050
=== added file 'assets/color-schemes/historic/GreenTint_MC.schema'
--- assets/color-schemes/historic/GreenTint_MC.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/GreenTint_MC.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,49 @@
1# linux color schema for konsole
2
3title Green Tint with Transparent MC
4
5transparency 0.3 0 150 0
6
7# FIXME
8#
9# The flaw in this schema is that "blick" comes out on the
10# Linux console as intensive background, really.
11# Since this is not used in clients you'll hardly notice
12# it in practice.
13
14# foreground colors
15
16# note that the default background color is flagged
17# to become transparent when an image is present.
18
19# slot transparent bold
20# | red grn blu | |
21# V V--color--V V V
22
23color 0 178 178 178 0 0 # regular foreground color (White)
24color 1 0 0 0 1 0 # regular background color (Black)
25
26color 2 0 0 0 0 0 # regular color 0 Black
27color 3 178 24 24 0 0 # regular color 1 Red
28color 4 24 178 24 0 0 # regular color 2 Green
29color 5 178 104 24 0 0 # regular color 3 Yellow
30color 6 0 0 0 1 0 # regular color 4 Blue
31color 7 178 24 178 0 0 # regular color 5 Magenta
32color 8 24 178 178 0 0 # regular color 6 Cyan
33color 9 178 178 178 0 0 # regular color 7 White
34
35# intensive colors
36
37# instead of changing the colors, we've flaged the text to become bold
38
39color 10 255 255 255 0 0 # intensive foreground color
40color 11 104 104 104 1 0 # intensive background color
41
42color 12 104 104 104 0 0 # intensive color 0
43color 13 255 84 84 0 0 # intensive color 1
44color 14 84 255 84 0 0 # intensive color 2
45color 15 255 255 84 0 0 # intensive color 3
46color 16 84 84 255 0 0 # intensive color 4
47color 17 255 84 255 0 0 # intensive color 5
48color 18 84 255 255 0 0 # intensive color 6
49color 19 255 255 255 0 0 # intensive color 7
050
=== added file 'assets/color-schemes/historic/LightPicture.schema'
--- assets/color-schemes/historic/LightPicture.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/LightPicture.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,44 @@
1# example scheme for konsole
2
3# the title is to appear in the menu.
4
5title Paper
6
7image tile Paper01.jpg
8
9# foreground colors
10
11# note that the default background color is flagged
12# to become transparent when an image is present.
13
14# slot transparent bold
15# | | |
16# V V--color--V V V
17
18color 0 0 0 0 0 0 # regular foreground color (Black)
19color 1 255 255 255 1 0 # regular background color (White)
20
21color 2 0 0 0 0 0 # regular color 0 Black
22color 3 178 24 24 0 0 # regular color 1 Red
23color 4 24 178 24 0 0 # regular color 2 Green
24color 5 178 104 24 0 0 # regular color 3 Yellow
25color 6 24 24 178 0 0 # regular color 4 Blue
26color 7 178 24 178 0 0 # regular color 5 Magenta
27color 8 24 178 178 0 0 # regular color 6 Cyan
28color 9 178 178 178 0 0 # regular color 7 White
29
30# intensive colors
31
32# instead of changing the colors, we've flaged the text to become bold
33
34color 10 0 0 0 0 1 # intensive foreground color
35color 11 255 255 255 1 0 # intensive background color
36
37color 12 104 104 104 0 0 # intensive color 0
38color 13 255 84 84 0 0 # intensive color 1
39color 14 84 255 84 0 0 # intensive color 2
40color 15 255 255 84 0 0 # intensive color 3
41color 16 84 84 255 0 0 # intensive color 4
42color 17 255 84 255 0 0 # intensive color 5
43color 18 84 255 255 0 0 # intensive color 6
44color 19 255 255 255 0 0 # intensive color 7
045
=== added file 'assets/color-schemes/historic/Linux.schema'
--- assets/color-schemes/historic/Linux.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Linux.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,47 @@
1# linux color schema for konsole
2
3title Linux Colors
4
5# FIXME
6#
7# The flaw in this schema is that "blick" comes out on the
8# Linux console as intensive background, really.
9# Since this is not used in clients you'll hardly notice
10# it in practice.
11
12# foreground colors
13
14# note that the default background color is flagged
15# to become transparent when an image is present.
16
17# slot transparent bold
18# | red grn blu | |
19# V V--color--V V V
20
21color 0 178 178 178 0 0 # regular foreground color (White)
22color 1 0 0 0 1 0 # regular background color (Black)
23
24color 2 0 0 0 0 0 # regular color 0 Black
25color 3 178 24 24 0 0 # regular color 1 Red
26color 4 24 178 24 0 0 # regular color 2 Green
27color 5 178 104 24 0 0 # regular color 3 Yellow
28color 6 24 24 178 0 0 # regular color 4 Blue
29color 7 178 24 178 0 0 # regular color 5 Magenta
30color 8 24 178 178 0 0 # regular color 6 Cyan
31color 9 178 178 178 0 0 # regular color 7 White
32
33# intensive colors
34
35# instead of changing the colors, we've flaged the text to become bold
36
37color 10 255 255 255 0 0 # intensive foreground color
38color 11 104 104 104 1 0 # intensive background color
39
40color 12 104 104 104 0 0 # intensive color 0
41color 13 255 84 84 0 0 # intensive color 1
42color 14 84 255 84 0 0 # intensive color 2
43color 15 255 255 84 0 0 # intensive color 3
44color 16 84 84 255 0 0 # intensive color 4
45color 17 255 84 255 0 0 # intensive color 5
46color 18 84 255 255 0 0 # intensive color 6
47color 19 255 255 255 0 0 # intensive color 7
048
=== added file 'assets/color-schemes/historic/README.Schema'
--- assets/color-schemes/historic/README.Schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/README.Schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,132 @@
1[README.Schema]
2
3The schemata offered in the Options/Schema menu are
4taken from from configurations files with a *.schema
5pattern either located in $KDEDIR/share/apps/konsole
6or ~/.kde/share/apps/konsole.
7
8Schemata allow to configure the color set that konsole
9uses, together with some more information on rendition
10processing.
11
12Syntax
13
14 File
15 :: { [Line] ['#' Comment] '\n' }
16
17 Line
18 :: "title" Title
19 :: "image" Usage PathToPictureFile
20 :: "transparency" Fade Red Green Blue
21 :: "color" Slot Red Green Blue Transparent Bold
22 :: "rcolor" Slot Saturation Value Transparent Bold
23 :: "sysfg" Slot Transparent Bold
24 :: "sysbg" Slot Transparent Bold
25
26Meaning
27
28 - Title is the text to appear in the Option/Schema menu.
29 It should be unique among all other schemata therefore.
30
31 - The "image" clause allows to place an image on the
32 konsole's background.
33
34 - Usage can be either
35 - "tile" - the image is tilewise replicated.
36 - "center" - the image is centered.
37 - "full" - the image is stretched to fit the window size.
38
39 - The Path of the picture can both be relative
40 (to kde wallpapers) or absolute.
41
42 When a schema uses a background image (or transparency)
43 one has to make at least one color slot transparent to
44 achive any visible effect. Please read below about the
45 "Transparent" field in color,sysbg,sysfg.
46
47 - The "transparency" clause picks and uses the background
48 of the desktop as if it where an image together with
49 a fade effect. This effect will fade the background
50 to the specified color.
51
52 The "Fade" is a real value between 0 and 1, indicating
53 the strength of the fade. A value of 0 will not change
54 the image, a value of 1 will make it the fade color
55 everywhere, and in between. This will make the "glas"
56 of the window be of the color given in the clause and
57 being more(1) or less(0) intransparent.
58
59 - The remaining clauses (color,sysbg,sysfg) are used
60 to setup konsoles rendition system.
61
62 To this end, konsole offers 20 color slots.
63
64 Slot Meaning
65 ----- --------------------------
66 0 regular foreground color
67 1 regular background color
68 2-9 regular bgr color 0-7
69 10 intensive foreground color
70 11 intensive background color
71 12-19 intensive bgr color 0-7
72
73 The traditional meaning of the "bgr" color codes
74 has a bitwise interpretation of an additive three
75 primary color scheme inherited from early EGA
76 color terminals.
77
78 Color Bits Colors
79 ----- ---- -------
80 0 000 Black
81 1 001 Red
82 2 010 Green
83 3 011 Yellow
84 4 100 Blue
85 5 101 Magenta
86 6 110 Cyan
87 7 111 White
88
89 One may or may not stick to this tradition.
90 Konsole allows to assign colors freely to slots.
91
92 The slots fall apart into two groups, regular
93 and intensive colors. The later are used when
94 BOLD rendition is used by the client.
95
96 Each of the groups have a default fore- and
97 background color and the said bgr colors.
98 Normal terminal processing will simply use
99 the default colors.
100
101 The color desired for a slot is indicated
102 in the Red Green Blue fields of the color
103 clause. Use the sysfg or the sysbg clause
104 to indicate the default fore and background
105 colors of the desktop.
106
107 To specify randomized color for a slot use
108 the clause rcolor. The two parameters to it
109 being Saturation - the amount of colour,
110 and Value, the darkness of the colour.
111
112 To use transparency/images and to simulate
113 the behavior of the xterm, one can supply
114 two additional tags to each slot:
115 - Transparent (0/1) meaning to show the
116 background picture, if any.
117 - Bold (0/1) to render characters bold.
118
119
120If you know about the escape codes, you might have
121noticed that intensive and bold rendition are sort
122of confused. This is inherited by the xterm which
123konsole is simulating.
124
125One can use the colortest.sh script supplied
126with the konsole source distribution to test
127a schema.
128
129The schema installed with konsole are more or
130less demonstrations and not really beauty,
131beside the Linux.schema, perhaps, which is
132made after the VGA colors.
0133
=== added file 'assets/color-schemes/historic/README.default.Schema'
--- assets/color-schemes/historic/README.default.Schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/README.default.Schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,44 @@
1# default scheme for konsole (only here for documentation purposes)
2
3# the title is to appear in the menu.
4
5title Konsole Defaults
6
7# image tile /opt/kde/share/wallpapers/gray2.jpg
8
9# foreground colors
10
11# note that the default background color is flagged
12# to become transparent when an image is present.
13
14# slot transparent bold
15# | | |
16# V V--color--V V V
17
18color 0 0 0 0 0 0 # regular foreground color (Black)
19color 1 255 255 255 1 0 # regular background color (White)
20
21color 2 0 0 0 0 0 # regular color 0 Black
22color 3 178 24 24 0 0 # regular color 1 Red
23color 4 24 178 24 0 0 # regular color 2 Green
24color 5 178 104 24 0 0 # regular color 3 Yellow
25color 6 24 24 178 0 0 # regular color 4 Blue
26color 7 178 24 178 0 0 # regular color 5 Magenta
27color 8 24 178 178 0 0 # regular color 6 Cyan
28color 9 178 178 178 0 0 # regular color 7 White
29
30# intensive colors
31
32# instead of changing the colors, we've flaged the text to become bold
33
34color 10 0 0 0 0 1 # intensive foreground color
35color 11 255 255 255 1 0 # intensive background color
36
37color 12 104 104 104 0 0 # intensive color 0
38color 13 255 84 84 0 0 # intensive color 1
39color 14 84 255 84 0 0 # intensive color 2
40color 15 255 255 84 0 0 # intensive color 3
41color 16 84 84 255 0 0 # intensive color 4
42color 17 255 84 255 0 0 # intensive color 5
43color 18 84 255 255 0 0 # intensive color 6
44color 19 255 255 255 0 0 # intensive color 7
045
=== added file 'assets/color-schemes/historic/Transparent.schema'
--- assets/color-schemes/historic/Transparent.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Transparent.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,49 @@
1# linux color schema for konsole
2
3title Transparent Konsole
4
5transparency 0.35 0 0 0
6
7# FIXME
8#
9# The flaw in this schema is that "blick" comes out on the
10# Linux console as intensive background, really.
11# Since this is not used in clients you'll hardly notice
12# it in practice.
13
14# foreground colors
15
16# note that the default background color is flagged
17# to become transparent when an image is present.
18
19# slot transparent bold
20# | red grn blu | |
21# V V--color--V V V
22
23color 0 178 178 178 0 0 # regular foreground color (White)
24color 1 0 0 0 1 0 # regular background color (Black)
25
26color 2 0 0 0 0 0 # regular color 0 Black
27color 3 178 24 24 0 0 # regular color 1 Red
28color 4 24 178 24 0 0 # regular color 2 Green
29color 5 178 104 24 0 0 # regular color 3 Yellow
30color 6 24 24 178 0 0 # regular color 4 Blue
31color 7 178 24 178 0 0 # regular color 5 Magenta
32color 8 24 178 178 0 0 # regular color 6 Cyan
33color 9 178 178 178 0 0 # regular color 7 White
34
35# intensive colors
36
37# instead of changing the colors, we've flaged the text to become bold
38
39color 10 255 255 255 0 0 # intensive foreground color
40color 11 104 104 104 1 0 # intensive background color
41
42color 12 104 104 104 0 0 # intensive color 0
43color 13 255 84 84 0 0 # intensive color 1
44color 14 84 255 84 0 0 # intensive color 2
45color 15 255 255 84 0 0 # intensive color 3
46color 16 84 84 255 0 0 # intensive color 4
47color 17 255 84 255 0 0 # intensive color 5
48color 18 84 255 255 0 0 # intensive color 6
49color 19 255 255 255 0 0 # intensive color 7
050
=== added file 'assets/color-schemes/historic/Transparent_MC.schema'
--- assets/color-schemes/historic/Transparent_MC.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Transparent_MC.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,51 @@
1# linux color schema for konsole
2
3title Transparent for MC
4
5transparency 0.35 0 0 0
6
7# FIXME
8#
9# The flaw in this schema is that "blick" comes out on the
10# Linux console as intensive background, really.
11# Since this is not used in clients you'll hardly notice
12# it in practice.
13
14# foreground colors
15
16# note that the default background color is flagged
17# to become transparent when an image is present.
18
19# slot transparent bold
20# | red grn blu | |
21# V V--color--V V V
22
23color 0 178 178 178 0 0 # regular foreground color (White)
24color 1 0 0 0 1 0 # regular background color (Black)
25
26color 2 0 0 0 0 0 # regular color 0 Black
27color 3 178 24 24 0 0 # regular color 1 Red
28color 4 24 178 24 0 0 # regular color 2 Green
29color 5 178 104 24 0 0 # regular color 3 Yellow
30#color 6 24 24 178 0 0 # regular color 4 Blue
31color 6 0 0 0 1 0 # regular color 4 Blue
32
33color 7 178 24 178 0 0 # regular color 5 Magenta
34color 8 24 178 178 0 0 # regular color 6 Cyan
35color 9 178 178 178 0 0 # regular color 7 White
36
37# intensive colors
38
39# instead of changing the colors, we've flaged the text to become bold
40
41color 10 255 255 255 0 0 # intensive foreground color
42color 11 104 104 104 1 0 # intensive background color
43
44color 12 104 104 104 0 0 # intensive color 0
45color 13 255 84 84 0 0 # intensive color 1
46color 14 84 255 84 0 0 # intensive color 2
47color 15 255 255 84 0 0 # intensive color 3
48color 16 84 84 255 0 0 # intensive color 4
49color 17 255 84 255 0 0 # intensive color 5
50color 18 84 255 255 0 0 # intensive color 6
51color 19 255 255 255 0 0 # intensive color 7
052
=== added file 'assets/color-schemes/historic/Transparent_darkbg.schema'
--- assets/color-schemes/historic/Transparent_darkbg.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Transparent_darkbg.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,42 @@
1# linux color schema for konsole
2
3title Transparent, Dark Background
4
5transparency 0.75 0 0 0
6
7# foreground colors
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | red grn blu | |
14# V V--color--V V V
15
16color 0 255 255 255 0 0 # regular foreground color (White)
17color 1 0 0 0 1 0 # regular background color (Black)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 178 24 24 0 0 # regular color 1 Red
21color 4 24 178 24 0 0 # regular color 2 Green
22color 5 178 104 24 0 0 # regular color 3 Yellow
23color 6 24 24 178 0 0 # regular color 4 Blue
24color 7 178 24 178 0 0 # regular color 5 Magenta
25color 8 24 178 178 0 0 # regular color 6 Cyan
26color 9 178 178 178 0 0 # regular color 7 White
27
28# intensive colors
29
30# instead of changing the colors, we've flaged the text to become bold
31
32color 10 255 255 255 0 0 # intensive foreground color
33color 11 104 104 104 1 0 # intensive background color
34
35color 12 104 104 104 0 0 # intensive color 0
36color 13 255 84 84 0 0 # intensive color 1
37color 14 84 255 84 0 0 # intensive color 2
38color 15 255 255 84 0 0 # intensive color 3
39color 16 84 84 255 0 0 # intensive color 4
40color 17 255 84 255 0 0 # intensive color 5
41color 18 84 255 255 0 0 # intensive color 6
42color 19 255 255 255 0 0 # intensive color 7
043
=== added file 'assets/color-schemes/historic/Transparent_lightbg.schema'
--- assets/color-schemes/historic/Transparent_lightbg.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/Transparent_lightbg.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,51 @@
1# linux color schema for konsole
2
3title Transparent, Light Background
4
5transparency 0.1 0 0 0
6
7# This is a schema for very light backgrounds. It makes some
8# hacks about the colors to make Midnight Commander transparent
9# and with suitable colors.
10
11# foreground colors
12
13# note that the default background color is flagged
14# to become transparent when an image is present.
15
16# slot transparent bold
17# | red grn blu | |
18# V V--color--V V V
19
20color 0 50 50 50 0 0 # regular foreground color (DarkGray)
21color 1 200 200 200 1 0 # regular background color (White)
22
23# color 2 0 0 0 0 0 # regular color 0 Black
24color 2 200 200 200 1 0 # regular background color (White)
25color 3 178 24 24 0 0 # regular color 1 Red
26color 4 24 178 24 0 0 # regular color 2 Green
27color 5 178 104 24 0 0 # regular color 3 Yellow
28#color 6 24 24 178 0 0 # regular color 4 Blue
29color 6 0 0 0 1 0 # regular color 4 Blue
30# Blue is transparent, to make MC transparent
31
32color 7 178 24 178 0 0 # regular color 5 Magenta
33color 8 24 178 178 0 0 # regular color 6 Cyan
34# color 9 178 178 178 0 0 # regular color 7 White
35color 9 50 50 50 0 0 # regular foreground color (DarkGray)
36
37# intensive colors
38
39# instead of changing the colors, we've flaged the text to become bold
40
41color 10 0 0 0 0 0 # intensive foreground color
42color 11 255 255 255 1 0 # intensive background color
43
44color 12 104 104 104 0 0 # intensive color 0
45color 13 255 84 84 0 0 # intensive color 1
46color 14 84 255 84 0 0 # intensive color 2
47color 15 255 255 84 0 0 # intensive color 3
48color 16 84 84 255 0 0 # intensive color 4
49color 17 255 84 255 0 0 # intensive color 5
50color 18 84 255 255 0 0 # intensive color 6
51color 19 255 255 255 0 0 # intensive color 7
052
=== added file 'assets/color-schemes/historic/XTerm.schema'
--- assets/color-schemes/historic/XTerm.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/XTerm.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,46 @@
1# xterm color schema for konsole
2
3# xterm colors can be configured (almost) like
4# konsole colors can. This is the uncustomized
5# xterm schema.
6# Please refere to your local xterm setup files
7# if this schema differs.
8
9title XTerm Colors
10
11# foreground colors -------------------------------
12
13# note that the default background color is flagged
14# to become transparent when an image is present.
15
16# slot transparent bold
17# | red grn blu | |
18# V V--color--V V V
19
20color 0 0 0 0 0 0 # regular foreground color (Black)
21color 1 255 255 255 1 0 # regular background color (White)
22
23color 2 0 0 0 0 0 # regular color 0 Black
24color 3 205 0 0 0 0 # regular color 1 Red
25color 4 0 205 0 0 0 # regular color 2 Green
26color 5 205 205 0 0 0 # regular color 3 Yellow
27color 6 0 0 205 0 0 # regular color 4 Blue
28color 7 205 0 205 0 0 # regular color 5 Magenta
29color 8 0 205 205 0 0 # regular color 6 Cyan
30color 9 229 229 229 0 0 # regular color 7 White
31
32# intensive colors -------------------------------------------
33
34# for some strange reason, intensive colors are bold, also.
35
36color 10 77 77 77 0 1 # intensive foreground color
37color 11 255 255 255 1 1 # intensive background color
38
39color 12 77 77 77 0 1 # intensive color 0
40color 13 255 0 0 0 1 # intensive color 1
41color 14 0 255 0 0 1 # intensive color 2
42color 15 255 255 0 0 1 # intensive color 3
43color 16 0 0 255 0 1 # intensive color 4
44color 17 255 0 255 0 1 # intensive color 5
45color 18 0 255 255 0 1 # intensive color 6
46color 19 255 255 255 0 1 # intensive color 7
047
=== added file 'assets/color-schemes/historic/syscolor.schema'
--- assets/color-schemes/historic/syscolor.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/syscolor.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,44 @@
1# schema that uses system colors
2
3# the title is to appear in the menu.
4
5title System Colors
6
7# image none
8
9# foreground colors
10
11# note that the default background color is flagged
12# to become transparent when an image is present.
13
14# slot transparent bold
15# | | |
16# V V--color--V V V
17
18sysfg 0 0 0 # regular foreground color (system)
19sysbg 1 1 0 # regular background color (system)
20
21color 2 0 0 0 0 0 # regular color 0 Black
22color 3 178 24 24 0 0 # regular color 1 Red
23color 4 24 178 24 0 0 # regular color 2 Green
24color 5 178 104 24 0 0 # regular color 3 Yellow
25color 6 24 24 178 0 0 # regular color 4 Blue
26color 7 178 24 178 0 0 # regular color 5 Magenta
27color 8 24 178 178 0 0 # regular color 6 Cyan
28color 9 178 178 178 0 0 # regular color 7 White
29
30# intensive colors
31
32# instead of changing the colors, we've flaged the text to become bold
33
34color 10 0 0 0 0 1 # intensive foreground color
35color 11 255 255 255 1 0 # intensive background color
36
37color 12 104 104 104 0 0 # intensive color 0
38color 13 255 84 84 0 0 # intensive color 1
39color 14 84 255 84 0 0 # intensive color 2
40color 15 255 255 84 0 0 # intensive color 3
41color 16 84 84 255 0 0 # intensive color 4
42color 17 255 84 255 0 0 # intensive color 5
43color 18 84 255 255 0 0 # intensive color 6
44color 19 255 255 255 0 0 # intensive color 7
045
=== added file 'assets/color-schemes/historic/vim.schema'
--- assets/color-schemes/historic/vim.schema 1970-01-01 00:00:00 +0000
+++ assets/color-schemes/historic/vim.schema 2017-09-09 05:25:54 +0000
@@ -0,0 +1,40 @@
1# VIM-recommended color schema for konsole
2
3# VIM (VI improved) in "help xiterm" recommends these colors for xterm.
4
5title VIM Colors
6
7# foreground colors -------------------------------
8
9# note that the default background color is flagged
10# to become transparent when an image is present.
11
12# slot transparent bold
13# | red grn blu | |
14# V V--color--V V V
15
16color 0 0 0 0 0 0 # regular foreground color (Black)
17color 1 255 255 255 1 0 # regular background color (White)
18
19color 2 0 0 0 0 0 # regular color 0 Black
20color 3 192 0 0 0 0 # regular color 1 Red
21color 4 0 128 0 0 0 # regular color 2 Green
22color 5 128 128 0 0 0 # regular color 3 Yellow
23color 6 0 0 192 0 0 # regular color 4 Blue
24color 7 192 0 192 0 0 # regular color 5 Magenta
25color 8 0 128 128 0 0 # regular color 6 Cyan
26color 9 192 192 192 0 0 # regular color 7 White
27
28# intensive colors -------------------------------------------
29
30color 10 77 77 77 0 1 # intensive foreground color
31color 11 255 255 255 1 1 # intensive background color
32
33color 12 128 128 128 0 0 # intensive color 0
34color 13 255 96 96 0 0 # intensive color 1
35color 14 0 255 0 0 0 # intensive color 2
36color 15 255 255 0 0 0 # intensive color 3
37color 16 128 128 255 0 0 # intensive color 4
38color 17 255 64 255 0 0 # intensive color 5
39color 18 0 255 255 0 0 # intensive color 6
40color 19 255 255 255 0 0 # intensive color 7
041
=== added directory 'assets/kb-layouts'
=== added file 'assets/kb-layouts/README'
--- assets/kb-layouts/README 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/README 2017-09-09 05:25:54 +0000
@@ -0,0 +1,72 @@
1[README.KeyTab]
2
3The keytabs offered in the Options/Keyboard menu are
4taken from from configurations files with a *.keytab
5pattern either located in $KDEDIR/share/apps/konsole
6or ~/.kde/share/apps/konsole.
7
8Keytabs allow to configure the behavior of konsole
9on keyboard events, especially for functions keys.
10Please have a look into the README.keyboard file, too.
11
12The syntax is that each entry has the form :
13
14 "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
15
16Keynames are those defined in <qnamespace.h> with the
17"Qt::Key_" prefix removed.
18
19Mode names are:
20
21 - Shift : Shift Key pressed
22 - Alt : Alt Key pressed
23 - Control : Control Key pressed
24
25 ( The VT100 emulation has modes that can affect the
26 sequences emitted by certain keys. These modes are
27 under control of the client program.
28
29 - Newline : effects Return and Enter key.
30 - Application : effects Up and Down key.
31 - Ansi : effects Up and Down key (This is for VT52, really).
32
33 Since sending a state to a program that has set the state
34 itself is positivly wrong and obsolete design, better forget
35 about this nasty detail. I may well remove this "feature"
36 in a future clean up round. )
37
38 A "+" preceeding a Modename means the Key is pressed.
39 A "-" preceeding a Modename means the Key is not pressed.
40 If no mode is given it means don't care.
41
42 Note that the combination of Key and Modes (set/reset)
43 has to be unique. This means, that
44
45 key A + Shift : "A"
46 key A : "a"
47
48 will not accept the small letter "a" rule as expected,
49 one has to add a "- Shift" to the last clause. Use
50 the stdout/stderr dianostics of konsole when modifying
51 keytabs to find problems like this.
52
53Operations are
54
55 - scrollUpLine : scroll up one line in the history log
56 - scrollUpPage : scroll up one page in the history log
57 - scrollDownLine : scroll down one line in the history log
58 - scrollDownPage : scroll down one page in the history log
59 - emitClipboard : "paste" the current clipboard
60 - emitSelection : "paste" the current selection
61
62Strings have the syntax of C strings,
63one may use the following escapes:
64
65 - \E - escape
66 - \\ - backslash
67 - \" - double quote
68 - \t - tab
69 - \r - return
70 - \n - newline
71 - \b - backspace
72 - \xHH - where HH are two hex digits
073
=== added file 'assets/kb-layouts/default.keytab'
--- assets/kb-layouts/default.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/default.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,169 @@
1# [README.default.Keytab] Default Keyboard Table
2#
3# To customize your keyboard, copy this file to something
4# ending with .keytab and change it to meet you needs.
5# Please read the README.KeyTab and the README.keyboard
6# in this case.
7#
8# --------------------------------------------------------------
9
10keyboard "Default (XFree 4)"
11
12# --------------------------------------------------------------
13#
14# Note that this particular table is a "risc" version made to
15# ease customization without bothering with obsolete details.
16# See VT100.keytab for the more hairy stuff.
17#
18# --------------------------------------------------------------
19
20# common keys
21
22key Escape : "\E"
23
24key Tab -Shift : "\t"
25key Tab +Shift+Ansi : "\E[Z"
26key Tab +Shift-Ansi : "\t"
27key Backtab +Ansi : "\E[Z"
28key Backtab -Ansi : "\t"
29
30key Return-Shift-NewLine : "\r"
31key Return-Shift+NewLine : "\r\n"
32
33key Return+Shift : "\EOM"
34
35# Backspace and Delete codes are preserving CTRL-H.
36
37key Backspace : "\x7f"
38
39# Arrow keys in VT52 mode
40# shift up/down are reserved for scrolling.
41# shift left/right are reserved for switching between tabs (this is hardcoded).
42
43key Up -Shift-Ansi : "\EA"
44key Down -Shift-Ansi : "\EB"
45key Right-Shift-Ansi : "\EC"
46key Left -Shift-Ansi : "\ED"
47
48# Arrow keys in ANSI mode with Application - and Normal Cursor Mode)
49
50key Up -Shift-AnyMod+Ansi+AppCuKeys : "\EOA"
51key Down -Shift-AnyMod+Ansi+AppCuKeys : "\EOB"
52key Right -Shift-AnyMod+Ansi+AppCuKeys : "\EOC"
53key Left -Shift-AnyMod+Ansi+AppCuKeys : "\EOD"
54
55key Up -Shift-AnyMod+Ansi-AppCuKeys : "\E[A"
56key Down -Shift-AnyMod+Ansi-AppCuKeys : "\E[B"
57key Right -Shift-AnyMod+Ansi-AppCuKeys : "\E[C"
58key Left -Shift-AnyMod+Ansi-AppCuKeys : "\E[D"
59
60key Up -Shift+AnyMod+Ansi : "\E[1;*A"
61key Down -Shift+AnyMod+Ansi : "\E[1;*B"
62key Right -Shift+AnyMod+Ansi : "\E[1;*C"
63key Left -Shift+AnyMod+Ansi : "\E[1;*D"
64
65# Keypad keys with NumLock ON
66# (see "Numeric Keypad" section at http://www.nw.com/nw/WWW/products/wizcon/vt100.html )
67#
68# Not enabled for now because it breaks the keypad in Vim.
69#
70#key 0 +KeyPad+AppKeyPad : "\EOp"
71#key 1 +KeyPad+AppKeyPad : "\EOq"
72#key 2 +KeyPad+AppKeyPad : "\EOr"
73#key 3 +KeyPad+AppKeyPad : "\EOs"
74#key 4 +KeyPad+AppKeyPad : "\EOt"
75#key 5 +KeyPad+AppKeyPad : "\EOu"
76#key 6 +KeyPad+AppKeyPad : "\EOv"
77#key 7 +KeyPad+AppKeyPad : "\EOw"
78#key 8 +KeyPad+AppKeyPad : "\EOx"
79#key 9 +KeyPad+AppKeyPad : "\EOy"
80#key + +KeyPad+AppKeyPad : "\EOl"
81#key - +KeyPad+AppKeyPad : "\EOm"
82#key . +KeyPad+AppKeyPad : "\EOn"
83#key * +KeyPad+AppKeyPad : "\EOM"
84#key Enter +KeyPad+AppKeyPad : "\r"
85
86# Keypad keys with NumLock Off
87key Up -Shift+Ansi+AppCuKeys+KeyPad : "\EOA"
88key Down -Shift+Ansi+AppCuKeys+KeyPad : "\EOB"
89key Right -Shift+Ansi+AppCuKeys+KeyPad : "\EOC"
90key Left -Shift+Ansi+AppCuKeys+KeyPad : "\EOD"
91
92key Up -Shift+Ansi-AppCuKeys+KeyPad : "\E[A"
93key Down -Shift+Ansi-AppCuKeys+KeyPad : "\E[B"
94key Right -Shift+Ansi-AppCuKeys+KeyPad : "\E[C"
95key Left -Shift+Ansi-AppCuKeys+KeyPad : "\E[D"
96
97key Home +AppCuKeys+KeyPad : "\EOH"
98key End +AppCuKeys+KeyPad : "\EOF"
99key Home -AppCuKeys+KeyPad : "\E[H"
100key End -AppCuKeys+KeyPad : "\E[F"
101
102key Insert +KeyPad : "\E[2~"
103key Delete +KeyPad : "\E[3~"
104key Prior -Shift+KeyPad : "\E[5~"
105key Next -Shift+KeyPad : "\E[6~"
106
107# other grey PC keys
108
109key Enter+NewLine : "\r\n"
110key Enter-NewLine : "\r"
111
112key Home -AnyMod-AppCuKeys : "\E[H"
113key End -AnyMod-AppCuKeys : "\E[F"
114key Home -AnyMod+AppCuKeys : "\EOH"
115key End -AnyMod+AppCuKeys : "\EOF"
116key Home +AnyMod : "\E[1;*H"
117key End +AnyMod : "\E[1;*F"
118
119key Insert -AnyMod : "\E[2~"
120key Delete -AnyMod : "\E[3~"
121key Insert +AnyMod : "\E[2;*~"
122key Delete +AnyMod : "\E[3;*~"
123
124key Prior -Shift-AnyMod : "\E[5~"
125key Next -Shift-AnyMod : "\E[6~"
126key Prior -Shift+AnyMod : "\E[5;*~"
127key Next -Shift+AnyMod : "\E[6;*~"
128
129# Function keys
130key F1 -AnyMod : "\EOP"
131key F2 -AnyMod : "\EOQ"
132key F3 -AnyMod : "\EOR"
133key F4 -AnyMod : "\EOS"
134key F5 -AnyMod : "\E[15~"
135key F6 -AnyMod : "\E[17~"
136key F7 -AnyMod : "\E[18~"
137key F8 -AnyMod : "\E[19~"
138key F9 -AnyMod : "\E[20~"
139key F10 -AnyMod : "\E[21~"
140key F11 -AnyMod : "\E[23~"
141key F12 -AnyMod : "\E[24~"
142
143key F1 +AnyMod : "\EO*P"
144key F2 +AnyMod : "\EO*Q"
145key F3 +AnyMod : "\EO*R"
146key F4 +AnyMod : "\EO*S"
147key F5 +AnyMod : "\E[15;*~"
148key F6 +AnyMod : "\E[17;*~"
149key F7 +AnyMod : "\E[18;*~"
150key F8 +AnyMod : "\E[19;*~"
151key F9 +AnyMod : "\E[20;*~"
152key F10 +AnyMod : "\E[21;*~"
153key F11 +AnyMod : "\E[23;*~"
154key F12 +AnyMod : "\E[24;*~"
155
156# Work around dead keys
157
158key Space +Control : "\x00"
159
160# Some keys are used by konsole to cause operations.
161# The scroll* operations refer to the history buffer.
162
163key Up +Shift-AppScreen : scrollLineUp
164key Prior +Shift-AppScreen : scrollPageUp
165key Down +Shift-AppScreen : scrollLineDown
166key Next +Shift-AppScreen : scrollPageDown
167
168key ScrollLock : scrollLock
169
0170
=== added directory 'assets/kb-layouts/historic'
=== added file 'assets/kb-layouts/historic/vt100.keytab'
--- assets/kb-layouts/historic/vt100.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/historic/vt100.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,133 @@
1# [vt100.keytab] Konsole Keyboard Table (VT100 keys)
2#
3# --------------------------------------------------------------
4
5keyboard "vt100 (historical)"
6
7# --------------------------------------------------------------
8#
9# This configuration table allows to customize the
10# meaning of the keys.
11#
12# The syntax is that each entry has the form :
13#
14# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
15#
16# Keynames are those defined in <qnamespace.h> with the
17# "Qt::Key_" removed. (We'd better insert the list here)
18#
19# Mode names are :
20#
21# - Shift
22# - Alt
23# - Control
24#
25# The VT100 emulation has two modes that can affect the
26# sequences emitted by certain keys. These modes are
27# under control of the client program.
28#
29# - Newline : effects Return and Enter key.
30# - Application : effects Up and Down key.
31#
32# - Ansi : effects Up and Down key (This is for VT52, really).
33#
34# Operations are
35#
36# - scrollUpLine
37# - scrollUpPage
38# - scrollDownLine
39# - scrollDownPage
40#
41# - emitSelection
42#
43# If the key is not found here, the text of the
44# key event as provided by QT is emitted, possibly
45# preceeded by ESC if the Alt key is pressed.
46#
47# --------------------------------------------------------------
48
49key Escape : "\E"
50key Tab : "\t"
51
52# VT100 can add an extra \n after return.
53# The NewLine mode is set by an escape sequence.
54
55key Return-NewLine : "\r"
56key Return+NewLine : "\r\n"
57
58# Some desperately try to save the ^H.
59
60key Backspace : "\x7f"
61key Delete : "\E[3~"
62
63# These codes are for the VT52 mode of VT100
64# The Ansi mode (i.e. VT100 mode) is set by
65# an escape sequence
66
67key Up -Shift-Ansi : "\EA"
68key Down -Shift-Ansi : "\EB"
69key Right-Shift-Ansi : "\EC"
70key Left -Shift-Ansi : "\ED"
71
72# VT100 emits a mode bit together
73# with the arrow keys.The AppCuKeys
74# mode is set by an escape sequence.
75
76key Up -Shift+Ansi+AppCuKeys : "\EOA"
77key Down -Shift+Ansi+AppCuKeys : "\EOB"
78key Right-Shift+Ansi+AppCuKeys : "\EOC"
79key Left -Shift+Ansi+AppCuKeys : "\EOD"
80
81key Up -Shift+Ansi-AppCuKeys : "\E[A"
82key Down -Shift+Ansi-AppCuKeys : "\E[B"
83key Right-Shift+Ansi-AppCuKeys : "\E[C"
84key Left -Shift+Ansi-AppCuKeys : "\E[D"
85
86# function keys (FIXME: make pf1-pf4)
87
88key F1 : "\E[11~"
89key F2 : "\E[12~"
90key F3 : "\E[13~"
91key F4 : "\E[14~"
92key F5 : "\E[15~"
93
94key F6 : "\E[17~"
95key F7 : "\E[18~"
96key F8 : "\E[19~"
97key F9 : "\E[20~"
98key F10 : "\E[21~"
99key F11 : "\E[23~"
100key F12 : "\E[24~"
101
102key Home : "\E[H"
103key End : "\E[F"
104
105key Prior -Shift : "\E[5~"
106key Next -Shift : "\E[6~"
107key Insert-Shift : "\E[2~"
108
109# Keypad-Enter. See comment on Return above.
110
111key Enter+NewLine : "\r\n"
112key Enter-NewLine : "\r"
113
114key Space +Control : "\x00"
115
116# some of keys are used by konsole.
117
118key Up +Shift : scrollLineUp
119key Prior +Shift : scrollPageUp
120key Down +Shift : scrollLineDown
121key Next +Shift : scrollPageDown
122
123key ScrollLock : scrollLock
124
125
126#----------------------------------------------------------
127
128# keypad characters as offered by Qt
129# cannot be recognized as such.
130
131#----------------------------------------------------------
132
133# Following other strings as emitted by konsole.
0134
=== added file 'assets/kb-layouts/historic/x11r5.keytab'
--- assets/kb-layouts/historic/x11r5.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/historic/x11r5.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,71 @@
1# [x11r5.Keytab] Keyboard Table for X11 R5
2
3keyboard "XTerm (XFree 3.x.x)"
4
5# --------------------------------------------------------------
6#
7# Note that this particular table is a "risc" version made to
8# ease customization without bothering with obsolete details.
9# See VT100.keytab for the more hairy stuff.
10#
11# --------------------------------------------------------------
12
13# common keys
14
15key Escape : "\E"
16key Tab : "\t"
17
18key Return : "\r"
19
20# Backspace and Delete codes are preserving CTRL-H.
21
22key Backspace : "\x7f"
23
24# cursor keys
25
26key Up -Shift : "\EOA"
27key Down -Shift : "\EOB"
28key Right -Shift : "\EOC"
29key Left -Shift : "\EOD"
30
31# other grey PC keys
32
33key Enter : "\r"
34
35key Home : "\E[1~"
36key Insert-Shift : "\E[2~"
37key Delete : "\E[3~"
38key End : "\E[4~"
39key Prior -Shift : "\E[5~"
40key Next -Shift : "\E[6~"
41
42# function keys
43
44key F1 : "\E[11~"
45key F2 : "\E[12~"
46key F3 : "\E[13~"
47key F4 : "\E[14~"
48key F5 : "\E[15~"
49key F6 : "\E[17~"
50key F7 : "\E[18~"
51key F8 : "\E[19~"
52key F9 : "\E[20~"
53key F10 : "\E[21~"
54key F11 : "\E[23~"
55key F12 : "\E[24~"
56
57# Work around dead keys
58
59key Space +Control : "\x00"
60
61# Some keys are used by konsole to cause operations.
62# The scroll* operations refer to the history buffer.
63
64key Up +Shift : scrollLineUp
65key Prior +Shift : scrollPageUp
66key Down +Shift : scrollLineDown
67key Next +Shift : scrollPageDown
68
69key ScrollLock : scrollLock
70
71# keypad characters are not offered differently by Qt.
072
=== added file 'assets/kb-layouts/linux.keytab'
--- assets/kb-layouts/linux.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/linux.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,164 @@
1# [linux.keytab] Konsole Keyboard Table (Linux console keys)
2#
3# --------------------------------------------------------------
4
5# NOT TESTED, MAY NEED SOME CLEANUPS
6keyboard "Linux console"
7
8# --------------------------------------------------------------
9#
10# This configuration table allows to customize the
11# meaning of the keys.
12#
13# The syntax is that each entry has the form :
14#
15# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
16#
17# Keynames are those defined in <qnamespace.h> with the
18# "Qt::Key_" removed. (We'd better insert the list here)
19#
20# Mode names are :
21#
22# - Shift
23# - Alt
24# - Control
25#
26# The VT100 emulation has two modes that can affect the
27# sequences emitted by certain keys. These modes are
28# under control of the client program.
29#
30# - Newline : effects Return and Enter key.
31# - Application : effects Up and Down key.
32#
33# - Ansi : effects Up and Down key (This is for VT52, really).
34#
35# Operations are
36#
37# - scrollUpLine
38# - scrollUpPage
39# - scrollDownLine
40# - scrollDownPage
41#
42# - emitSelection
43#
44# If the key is not found here, the text of the
45# key event as provided by QT is emitted, possibly
46# preceeded by ESC if the Alt key is pressed.
47#
48# --------------------------------------------------------------
49
50key Escape : "\E"
51key Tab : "\t"
52
53# VT100 can add an extra \n after return.
54# The NewLine mode is set by an escape sequence.
55
56key Return-NewLine : "\r"
57key Return+NewLine : "\r\n"
58
59# Some desperately try to save the ^H.
60
61key Backspace : "\x7f"
62key Delete : "\E[3~"
63
64# These codes are for the VT52 mode of VT100
65# The Ansi mode (i.e. VT100 mode) is set by
66# an escape sequence
67
68key Up -Shift-Ansi : "\EA"
69key Down -Shift-Ansi : "\EB"
70key Right-Shift-Ansi : "\EC"
71key Left -Shift-Ansi : "\ED"
72
73# VT100 emits a mode bit together
74# with the arrow keys.The AppCuKeys
75# mode is set by an escape sequence.
76
77key Up -Shift+Ansi+AppCuKeys : "\EOA"
78key Down -Shift+Ansi+AppCuKeys : "\EOB"
79key Right-Shift+Ansi+AppCuKeys : "\EOC"
80key Left -Shift+Ansi+AppCuKeys : "\EOD"
81
82key Up -Shift+Ansi-AppCuKeys : "\E[A"
83key Down -Shift+Ansi-AppCuKeys : "\E[B"
84key Right-Shift+Ansi-AppCuKeys : "\E[C"
85key Left -Shift+Ansi-AppCuKeys : "\E[D"
86
87# linux functions keys F1-F5 differ from xterm
88
89key F1 : "\E[[A"
90key F2 : "\E[[B"
91key F3 : "\E[[C"
92key F4 : "\E[[D"
93key F5 : "\E[[E"
94
95key F6 : "\E[17~"
96key F7 : "\E[18~"
97key F8 : "\E[19~"
98key F9 : "\E[20~"
99key F10 : "\E[21~"
100key F11 : "\E[23~"
101key F12 : "\E[24~"
102
103key Home : "\E[1~"
104key End : "\E[4~"
105
106key Prior -Shift : "\E[5~"
107key Next -Shift : "\E[6~"
108key Insert-Shift : "\E[2~"
109
110# Keypad-Enter. See comment on Return above.
111
112key Enter+NewLine : "\r\n"
113key Enter-NewLine : "\r"
114
115key Space +Control : "\x00"
116
117# linux term ctrl seq
118
119key A +Control : "\x01"
120key B +Control : "\x02"
121key C +Control : "\x03"
122key D +Control : "\x04"
123key E +Control : "\x05"
124key F +Control : "\x06"
125key G +Control : "\x07"
126key H +Control : "\x08"
127key I +Control : "\x09"
128key J +Control : "\x0a"
129key K +Control : "\x0b"
130key L +Control : "\x0c"
131key M +Control : "\x0d"
132key N +Control : "\x0e"
133key O +Control : "\x0f"
134key P +Control : "\x10"
135key Q +Control : "\x11"
136key R +Control : "\x12"
137key S +Control : "\x13"
138key T +Control : "\x14"
139key U +Control : "\x15"
140key V +Control : "\x16"
141key W +Control : "\x17"
142key X +Control : "\x18"
143key Y +Control : "\x19"
144key Z +Control : "\x1a"
145
146
147
148# some of keys are used by konsole.
149
150key Up +Shift : scrollLineUp
151key Prior +Shift : scrollPageUp
152key Down +Shift : scrollLineDown
153key Next +Shift : scrollPageDown
154
155key ScrollLock : scrollLock
156
157#----------------------------------------------------------
158
159# keypad characters as offered by Qt
160# cannot be recognized as such.
161
162#----------------------------------------------------------
163
164# Following other strings as emitted by konsole.
0165
=== added file 'assets/kb-layouts/macbook.keytab'
--- assets/kb-layouts/macbook.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/macbook.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,175 @@
1# [README.default.Keytab] Buildin Keyboard Table
2#
3# To customize your keyboard, copy this file to something
4# ending with .keytab and change it to meet you needs.
5# Please read the README.KeyTab and the README.keyboard
6# in this case.
7#
8# --------------------------------------------------------------
9
10keyboard "Default (XFree 4)"
11
12# --------------------------------------------------------------
13#
14# Note that this particular table is a "risc" version made to
15# ease customization without bothering with obsolete details.
16# See VT100.keytab for the more hairy stuff.
17#
18# --------------------------------------------------------------
19
20# common keys
21
22key Escape : "\x1b"
23
24#key Control : "^"
25
26key Tab -Shift : "\t"
27key Tab +Shift+Ansi : "\E[Z"
28key Tab +Shift-Ansi : "\t"
29key Backtab +Ansi : "\E[Z"
30key Backtab -Ansi : "\t"
31
32key Return-Shift-NewLine : "\r"
33key Return-Shift+NewLine : "\r\n"
34
35key Return+Shift : "\EOM"
36
37# Backspace and Delete codes are preserving CTRL-H.
38
39key Backspace : "\x7f"
40
41# Arrow keys in VT52 mode
42# shift up/down are reserved for scrolling.
43# shift left/right are reserved for switching between tabs (this is hardcoded).
44
45
46# Command + C
47# on mac - Control=Command, Meta=Ctrl
48# do not use Control+C for interrupt signal - it's used for "Copy to clipboard"
49#key Control +C : "\x03"
50key Meta +C: "\x03"
51
52
53# Arrow keys in ANSI mode with Application - and Normal Cursor Mode)
54
55key Up -Shift+Ansi-AppCuKeys : "\E[A"
56key Down -Shift+Ansi-AppCuKeys : "\E[B"
57key Right-Shift+Ansi-AppCuKeys : "\E[C"
58key Left -Shift+Ansi-AppCuKeys : "\E[D"
59
60key Up -Ansi : "\E[1;*A"
61key Down -Ansi : "\E[1;*B"
62key Right -Ansi : "\E[1;*C"
63key Left -Ansi : "\E[1;*D"
64
65#key Up -Shift-Ansi : "\EA"
66#key Down -Shift-Ansi : "\EB"
67#key Right-Shift-Ansi : "\EC"
68#key Left -Shift-Ansi : "\ED"
69
70#key Up -Shift-AnyMod+Ansi-AppCuKeys : "\E[A"
71#key Down -Shift-AnyMod+Ansi-AppCuKeys : "\E[B"
72#key Right -Shift-AnyMod+Ansi-AppCuKeys : "\E[C"
73#key Left -Shift-AnyMod+Ansi-AppCuKeys : "\E[D"
74
75#key Up -Shift-AnyMod+Ansi-AppCuKeys : "\EOA"
76#key Down -Shift-AnyMod+Ansi-AppCuKeys : "\EOB"
77#key Right -Shift-AnyMod+Ansi-AppCuKeys : "\EOC"
78#key Left -Shift-AnyMod+Ansi-AppCuKeys : "\EOD"
79
80#key Up -Shift-AnyMod+Ansi : "\E[1;*A"
81#key Down -Shift-AnyMod+Ansi : "\E[1;*B"
82#key Right -Shift-AnyMod+Ansi : "\E[1;*C"
83#key Left -Shift-AnyMod+Ansi : "\E[1;*D"
84
85# other grey PC keys
86
87key Enter+NewLine : "\r\n"
88key Enter-NewLine : "\r"
89
90key Home -AnyMod -AppCuKeys : "\E[H"
91key End -AnyMod -AppCuKeys : "\E[F"
92key Home -AnyMod +AppCuKeys : "\EOH"
93key End -AnyMod +AppCuKeys : "\EOF"
94key Home +AnyMod : "\E[1;*H"
95key End +AnyMod : "\E[1;*F"
96
97key Insert -AnyMod : "\E[2~"
98key Delete -AnyMod : "\E[3~"
99key Insert +AnyMod : "\E[2;*~"
100key Delete +AnyMod : "\E[3;*~"
101
102key Prior -Shift-AnyMod : "\E[5~"
103key Next -Shift-AnyMod : "\E[6~"
104key Prior -Shift+AnyMod : "\E[5;*~"
105key Next -Shift+AnyMod : "\E[6;*~"
106
107# Function keys
108#key F1 -AnyMod : "\EOP"
109#key F2 -AnyMod : "\EOQ"
110#key F3 -AnyMod : "\EOR"
111#key F4 -AnyMod : "\EOS"
112#define ALT_KP_0 "\033Op"
113#define ALT_KP_1 "\033Oq"
114#define ALT_KP_2 "\033Or"
115#define ALT_KP_3 "\033Os"
116#define ALT_KP_4 "\033Ot"
117#define ALT_KP_5 "\033Ou"
118#define ALT_KP_6 "\033Ov"
119#define ALT_KP_7 "\033Ow"
120#define ALT_KP_8 "\033Ox"
121#define ALT_KP_9 "\033Oy"
122
123key F1 -AnyMod : "\EOP"
124key F2 -AnyMod : "\EOQ"
125key F3 -AnyMod : "\EOR"
126key F4 -AnyMod : "\EOS"
127key F5 -AnyMod : "\EOT"
128key F6 -AnyMod : "\EOU"
129key F7 -AnyMod : "\EOV"
130key F8 -AnyMod : "\EOW"
131key F9 -AnyMod : "\EOX"
132key F10 -AnyMod : "\EOY"
133
134#key F5 -AnyMod : "\E[15~"
135#key F6 -AnyMod : "\E[17~"
136#key F7 -AnyMod : "\E[18~"
137#key F8 -AnyMod : "\E[19~"
138#key F9 -AnyMod : "\E[20~"
139#key F10 -AnyMod : "\E[21~"
140#key F11 -AnyMod : "\E[23~"
141#key F12 -AnyMod : "\E[24~"
142
143#key F1 +AnyMod : "\EO*P"
144#key F2 +AnyMod : "\EO*Q"
145#key F3 +AnyMod : "\EO*R"
146#key F4 +AnyMod : "\EO*S"
147#key F5 +AnyMod : "\E[15;*~"
148#key F6 +AnyMod : "\E[17;*~"
149#key F7 +AnyMod : "\E[18;*~"
150#key F8 +AnyMod : "\E[19;*~"
151#key F9 +AnyMod : "\E[20;*~"
152#key F10 +AnyMod : "\E[21;*~"
153#key F11 +AnyMod : "\E[23;*~"
154#key F12 +AnyMod : "\E[24;*~"
155
156# Work around dead keys
157
158key Space +Control : "\x00"
159
160# Some keys are used by konsole to cause operations.
161# The scroll* operations refer to the history buffer.
162
163key Up +Shift-AppScreen : scrollLineUp
164key Prior +Shift-AppScreen : scrollPageUp
165key Down +Shift-AppScreen : scrollLineDown
166key Next +Shift-AppScreen : scrollPageDown
167
168#key Up +Shift : scrollLineUp
169#key Prior +Shift : scrollPageUp
170#key Down +Shift : scrollLineDown
171#key Next +Shift : scrollPageDown
172
173key ScrollLock : scrollLock
174
175# keypad characters are not offered differently by Qt.
0176
=== added file 'assets/kb-layouts/solaris.keytab'
--- assets/kb-layouts/solaris.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/solaris.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,108 @@
1# [solaris.keytab] Konsole Keyboard Table
2#
3
4keyboard "Solaris console"
5
6# --------------------------------------------------------------
7#
8# This configuration table allows to customize the
9# meaning of the keys.
10#
11# The syntax is that each entry has the form :
12#
13# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
14#
15# Keynames are those defined in <qnamespace.h> with the
16# "Qt::Key_" removed. (We'd better insert the list here)
17#
18# Mode names are :
19#
20# - Shift
21# - Alt
22# - Control
23#
24# The VT100 emulation has two modes that can affect the
25# sequences emitted by certain keys. These modes are
26# under control of the client program.
27#
28#
29# - Newline : effects Return and Enter key.
30# - Application : effects Up and Down key.
31#
32# - Ansi : effects Up and Down key (This is for VT52, really).
33#
34# Operations are
35#
36# - scrollUpLine
37# - scrollUpPage
38# - scrollDownLine
39# - scrollDownPage
40#
41# - emitSelection
42#
43# If the key is not found here, the text of the
44# key event as provided by QT is emitted, possibly
45# preceeded by ESC if the Alt key is pressed.
46#
47# --------------------------------------------------------------
48
49key Escape : "\E"
50key Tab : "\t"
51
52key Return-Alt : "\r"
53key Return+Alt : "\E\r"
54
55# Backspace and Delete codes are preserving CTRL-H.
56
57key Backspace : "\x08"
58#key Delete : "\x7F"
59
60# cursor keys
61
62key Up -Shift : "\EOA"
63key Down -Shift : "\EOB"
64key Right -Shift : "\EOC"
65key Left -Shift : "\EOD"
66
67# other grey PC keys
68
69key Enter : "\r"
70
71key Home : "\E[1~"
72key Insert-Shift : "\E[2~"
73key Delete : "\E[3~"
74key End : "\E[4~"
75key Prior -Shift : "\E[5~"
76key Next -Shift : "\E[6~"
77
78# function keys
79
80key F1 : "\E[11~"
81key F2 : "\E[12~"
82key F3 : "\E[13~"
83key F4 : "\E[14~"
84key F5 : "\E[15~"
85key F6 : "\E[17~"
86key F7 : "\E[18~"
87key F8 : "\E[19~"
88key F9 : "\E[20~"
89key F10 : "\E[21~"
90key F11 : "\E[23~"
91key F12 : "\E[24~"
92
93# Work around dead keys
94
95key Space +Control : "\x00"
96
97# Some keys are used by konsole to cause operations.
98# The scroll* operations refer to the history buffer.
99
100#key Left +Shift : prevSession
101#key Right +Shift : nextSession
102key Up +Shift : scrollLineUp
103key Prior +Shift : scrollPageUp
104key Down +Shift : scrollLineDown
105key Next +Shift : scrollPageDown
106#key Insert+Shift : emitSelection
107
108# keypad characters are not offered differently by Qt.
0109
=== added file 'assets/kb-layouts/vt420pc.keytab'
--- assets/kb-layouts/vt420pc.keytab 1970-01-01 00:00:00 +0000
+++ assets/kb-layouts/vt420pc.keytab 2017-09-09 05:25:54 +0000
@@ -0,0 +1,168 @@
1#
2# NOTE: This keyboard binding is not installed because it
3# apparently doesn't work with actual VT420 systems
4# (see BUG:170220)
5#
6# [vt420pc.keytab] Konsole Keyboard Table (VT420pc keys)
7# adapted by ferdinand gassauer f.gassauer@aon.at
8# Nov 2000
9#
10################################################################
11#
12# The escape sequences emmited by the
13# keys Shift+F1 to Shift+F12 might not fit your needs
14#
15################# IMPORTANT NOTICE #############################
16# the key bindings (Kcontrol -> look and feel -> keybindgs)
17# overrule the settings in this file. The key bindings might be
18# changed by the user WITHOUT notification of the maintainer of
19# the keytab file. Konsole will not work as expected by
20# the maintainer of the keytab file.
21################################################################
22#
23# --------------------------------------------------------------
24
25keyboard "DEC VT420 Terminal"
26
27# --------------------------------------------------------------
28#
29# This configuration table allows to customize the
30# meaning of the keys.
31#
32# The syntax is that each entry has the form :
33#
34# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
35#
36# Keynames are those defined in <qnamespace.h> with the
37# "Qt::Key_" removed. (We'd better insert the list here)
38#
39# Mode names are :
40#
41# - Shift
42# - Alt
43# - Control
44#
45# The VT100 emulation has two modes that can affect the
46# sequences emitted by certain keys. These modes are
47# under control of the client program.
48#
49# - Newline : effects Return and Enter key.
50# - Application : effects Up and Down key.
51#
52# - Ansi : effects Up and Down key (This is for VT52, really).
53#
54# Operations are
55#
56# - scrollUpLine
57# - scrollUpPage
58# - scrollDownLine
59# - scrollDownPage
60#
61# - emitSelection
62#
63# If the key is not found here, the text of the
64# key event as provided by QT is emitted, possibly
65# preceeded by ESC if the Alt key is pressed.
66#
67# --------------------------------------------------------------
68
69key Escape : "\E"
70key Tab : "\t"
71key Backtab: "\E[Z"
72
73# VT100 can add an extra \n after return.
74# The NewLine mode is set by an escape sequence.
75
76key Return-NewLine : "\r"
77key Return+NewLine : "\r\n"
78
79# Some desperately try to save the ^H.
80# may be not everyone wants this
81
82key Backspace : "\x08" # Control H
83key Delete : "\x7f"
84
85# These codes are for the VT420pc
86# The Ansi mode (i.e. VT100 mode) is set by
87# an escape sequence
88
89key Up -Shift-Ansi : "\EA"
90key Down -Shift-Ansi : "\EB"
91key Right-Shift-Ansi : "\EC"
92key Left -Shift-Ansi : "\ED"
93
94# VT100 emits a mode bit together
95# with the arrow keys.The AppCuKeys
96# mode is set by an escape sequence.
97
98key Up -Shift+Ansi+AppCuKeys : "\EOA"
99key Down -Shift+Ansi+AppCuKeys : "\EOB"
100key Right-Shift+Ansi+AppCuKeys : "\EOC"
101key Left -Shift+Ansi+AppCuKeys : "\EOD"
102
103key Up -Shift+Ansi-AppCuKeys : "\E[A"
104key Down -Shift+Ansi-AppCuKeys : "\E[B"
105key Right-Shift+Ansi-AppCuKeys : "\E[C"
106key Left -Shift+Ansi-AppCuKeys : "\E[D"
107
108# function keys
109
110key F1 -Shift : "\E[11~"
111key F2 -Shift : "\E[12~"
112key F3 -Shift : "\E[13~"
113key F4 -Shift : "\E[14~"
114key F5 -Shift : "\E[15~"
115key F6 -Shift : "\E[17~"
116key F7 -Shift : "\E[18~"
117key F8 -Shift : "\E[19~"
118key F9 -Shift : "\E[20~"
119key F10-Shift : "\E[21~"
120key F11-Shift : "\E[23~"
121key F12-Shift : "\E[24~"
122#
123# Shift F1-F12
124#
125key F1 +Shift : "\E[11;2~"
126key F2 +Shift : "\E[12;2~"
127key F3 +Shift : "\E[13;2~"
128key F4 +Shift : "\E[14;2~"
129key F5 +Shift : "\E[15;2~"
130key F6 +Shift : "\E[17;2~"
131key F7 +Shift : "\E[18;2~"
132key F8 +Shift : "\E[19;2~"
133key F9 +Shift : "\E[20;2~"
134key F10+Shift : "\E[21;2~"
135key F11+Shift : "\E[23;2~"
136key F12+Shift : "\E[24;2~"
137
138key Home : "\E[H"
139key End : "\E[F"
140
141key Prior -Shift : "\E[5~"
142key Next -Shift : "\E[6~"
143key Insert-Shift : "\E[2~"
144
145# Keypad-Enter. See comment on Return above.
146
147key Enter+NewLine : "\r\n"
148key Enter-NewLine : "\r"
149
150key Space +Control : "\x00"
151
152# some of keys are used by konsole.
153
154key Up +Shift : scrollLineUp
155key Prior +Shift : scrollPageUp
156key Down +Shift : scrollLineDown
157key Next +Shift : scrollPageDown
158
159key ScrollLock : scrollLock
160
161#----------------------------------------------------------
162
163# keypad characters as offered by Qt
164# cannot be recognized as such.
165
166#----------------------------------------------------------
167
168# Following other strings as emitted by konsole.
0169
=== added directory 'debian'
=== renamed directory 'debian' => 'debian.moved'
=== added file 'debian/changelog'
--- debian/changelog 1970-01-01 00:00:00 +0000
+++ debian/changelog 2017-09-09 05:25:54 +0000
@@ -0,0 +1,29 @@
1konsole-qml-plugin (0.1.2) raring; urgency=low
2
3 * Fixed text display bug (LP:#1182503)
4
5 -- Dmitry Zagnoyko <hiroshidi@gmail.com> Mon, 10 Jun 2013 09:49:02 +0300
6
7konsole-qml-plugin (0.1.1) raring; urgency=low
8
9 * Fixed issue with float values of widget size
10 * Added virtual key event for qml KSession component
11
12 -- Dmitry Zagnoyko <hiroshidi@gmail.com> Mon, 06 May 2013 20:11:10 +0300
13
14konsole-qml-plugin (0.1.0ubuntu1~quantal1~test2) quantal; urgency=low
15
16 * Added qml properties for KTerminal
17 * Fixed visibility sope: removed konsole namespace
18 * Added qmltypes
19 * Fixed qml plugin path
20 * Added KSession class
21
22 -- Dmitry Zagnoyko <hiroshidi@gmail.com> Sat, 20 Apr 2013 21:44:26 +0300
23
24konsole-qml-plugin (0.1.0ubuntu1~quantal1~test1) quantal; urgency=low
25
26 * Initial release
27 * Ported KDE Konsole
28
29 -- Dmitry Zagnoyko <hiroshidi@gmail.com> Fri, 19 Apr 2013 20:22:12 +0300
030
=== added file 'debian/compat'
--- debian/compat 1970-01-01 00:00:00 +0000
+++ debian/compat 2017-09-09 05:25:54 +0000
@@ -0,0 +1,1 @@
19
02
=== added file 'debian/control'
--- debian/control 1970-01-01 00:00:00 +0000
+++ debian/control 2017-09-09 05:25:54 +0000
@@ -0,0 +1,40 @@
1Source: konsole-qml-plugin
2Section: libs
3Priority: optional
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5Build-Depends: debhelper (>= 9.0.0),
6# libgl1-mesa-dev | libgl-dev,
7# libgles2-mesa-dev
8 qtbase5-dev,
9 qtdeclarative5-dev,
10 qt5-default,
11Standards-Version: 3.9.4
12Homepage: http://konsole.kde.org/
13
14Package: qtdeclarative5-konsole-qml-plugin
15Architecture: any
16Multi-Arch: same
17Pre-Depends: ${misc:Pre-Depends}
18Depends: ${misc:Depends}, ${shlibs:Depends},
19Description: KDE Konsole QML plugin - qml terminal plugin
20 Originaly, Konsole is a terminal emulator from KDE. This is ported
21 version and do not require KDE.
22 .
23 This package contains the Konsole terminal emulator plugin
24 for Qt Qml, which offers access to terminal by KTerminal and
25 KSession elements. KTerminal is used for displaying information
26 given by KSession.
27
28
29#Package: konsole-qml-plugin-dbg
30#Priority: extra
31#Architecture: any
32#Section: debug
33#Depends: ${misc:Depends}
34#Description: KDE Konsole QML plugin debugging symbols
35# Originaly, Konsole is a terminal emulator from KDE. This is ported
36# version without KDE tails and do not require KDE.
37# .
38# This package contains the debugging symbols for the KDE Konsole
39# QML plugin.
40
041
=== added file 'debian/copyright'
--- debian/copyright 1970-01-01 00:00:00 +0000
+++ debian/copyright 2017-09-09 05:25:54 +0000
@@ -0,0 +1,50 @@
1Format: http://www.debian.org/doc/packaging-manuals/copyright-format/3.0/
2Upstream-Name: konsole-qml-plugin
3Source:
4
5Files: *
6Copyright: 2013 Dmitry Zagnoyko <hiroshidi@gmail.com>
7 2008 e_k <e_k@users.sourceforge.net>
8 2006-2008 Robert Knight <robertknight@gmail.com>
9 2003-2007 Oswald Buddenhagen <ossi@kde.org>
10 2000 Stephan Kulow <coolo@kde.org>
11 1997-1998 Lars Doelle <lars.doelle@on-line.de>
12License: GPL-3
13
14Files: debian/*
15Copyright: 2013 Dmitry Zagnoyko <hiroshidi@gmail.com>
16License: LGPL-3
17
18License: GPL-3
19 This package is free software; you can redistribute it and/or
20 modify it under the terms of the GNU General Public
21 License as published by the Free Software Foundation; either
22 version 3 of the License.
23 .
24 This package is distributed in the hope that it will be useful,
25 but WITHOUT ANY WARRANTY; without even the implied warranty of
26 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27 General Public License for more details.
28 .
29 You should have received a copy of the GNU General Public License
30 along with this program. If not, see <http://www.gnu.org/licenses/>.
31 .
32 On Debian systems, the complete text of the GNU General
33 Public License can be found in "/usr/share/common-licenses/GPL-3".
34
35License: LGPL-3
36 This package is free software; you can redistribute it and/or
37 modify it under the terms of the GNU Lesser General Public
38 License as published by the Free Software Foundation; either
39 version 3 of the License.
40 .
41 This package is distributed in the hope that it will be useful,
42 but WITHOUT ANY WARRANTY; without even the implied warranty of
43 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
44 Lesser General Public License for more details.
45 .
46 You should have received a copy of the GNU General Public License
47 along with this program. If not, see <http://www.gnu.org/licenses/>.
48 .
49 On Debian systems, the complete text of the GNU Lesser General
50 Public License can be found in "/usr/share/common-licenses/LGPL-3".
051
=== added file 'debian/rules'
--- debian/rules 1970-01-01 00:00:00 +0000
+++ debian/rules 2017-09-09 05:25:54 +0000
@@ -0,0 +1,21 @@
1#!/usr/bin/make -f
2
3# Uncomment this to turn on verbose mode.
4#export DH_VERBOSE=1
5
6#export CFLAGS := $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
7#export CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
8#export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
9
10override_dh_auto_configure:
11 QT_SELECT=qt5 dh_auto_configure
12
13%:
14 dh $@ --list-missing --parallel
15# WARN: currently, no pakgage
16# --dbg-package=konsole-qml-plugin-dbg
17
18
19#override_dh_builddeb:
20# dh_builddeb -- -Zxz
21
022
=== added directory 'debian/source'
=== added file 'debian/source/format'
--- debian/source/format 1970-01-01 00:00:00 +0000
+++ debian/source/format 2017-09-09 05:25:54 +0000
@@ -0,0 +1,1 @@
13.0 (native)
02
=== added file 'konsole-qml-plugin.pro'
--- konsole-qml-plugin.pro 1970-01-01 00:00:00 +0000
+++ konsole-qml-plugin.pro 2017-09-09 05:25:54 +0000
@@ -0,0 +1,97 @@
1#########################################
2## CONFIGS
3#########################################
4
5TEMPLATE = lib
6CONFIG += qt plugin hide_symbols
7QT += qml quick widgets
8
9DEFINES += HAVE_POSIX_OPENPT HAVE_SYS_TIME_H HAVE_UPDWTMPX
10
11#MANUALY DEFINED PLATFORM
12DEFINES += Q_WS_UBUNTU
13
14TARGET = kdekonsole
15PLUGIN_IMPORT_PATH = org/kde/konsole
16PLUGIN_ASSETS = $$PWD/assets/*
17
18#########################################
19## SOURCES
20#########################################
21
22SOURCES += \
23 $$PWD/src/plugin.cpp \
24 $$PWD/src/Pty.cpp \
25 $$PWD/src/kptyprocess.cpp \
26 $$PWD/src/kptydevice.cpp \
27 $$PWD/src/kpty.cpp \
28 $$PWD/src/kprocess.cpp \
29 $$PWD/src/ShellCommand.cpp \
30 $$PWD/src/Vt102Emulation.cpp \
31 $$PWD/src/tools.cpp \
32 $$PWD/src/Session.cpp \
33 $$PWD/src/Screen.cpp \
34 $$PWD/src/KeyboardTranslator.cpp \
35 $$PWD/src/Emulation.cpp \
36 $$PWD/src/History.cpp \
37 $$PWD/src/BlockArray.cpp \
38 $$PWD/src/TerminalCharacterDecoder.cpp \
39 $$PWD/src/konsole_wcwidth.cpp \
40 $$PWD/src/ScreenWindow.cpp \
41 $$PWD/src/Filter.cpp \
42 $$PWD/src/ColorScheme.cpp \
43 $$PWD/src/TerminalDisplay.cpp \
44 $$PWD/src/ksession.cpp
45
46HEADERS += \
47 $$PWD/src/plugin.h \
48 $$PWD/src/Pty.h \
49 $$PWD/src/kptyprocess.h \
50 $$PWD/src/kptydevice.h \
51 $$PWD/src/kpty.h \
52 $$PWD/src/kpty_p.h \
53 $$PWD/src/kprocess.h \
54 $$PWD/src/ShellCommand.h \
55 $$PWD/src/Vt102Emulation.h \
56 $$PWD/src/tools.h \
57 $$PWD/src/Session.h \
58 $$PWD/src/Screen.h \
59 $$PWD/src/KeyboardTranslator.h \
60 $$PWD/src/Emulation.h \
61 $$PWD/src/Character.h \
62 $$PWD/src/History.h \
63 $$PWD/src/CharacterColor.h \
64 $$PWD/src/BlockArray.h \
65 $$PWD/src/TerminalCharacterDecoder.h \
66 $$PWD/src/konsole_wcwidth.h \
67 $$PWD/src/ScreenWindow.h \
68 $$PWD/src/DefaultTranslatorText.h \
69 $$PWD/src/LineFont.h \
70 $$PWD/src/Filter.h \
71 $$PWD/src/ExtendedDefaultTranslator.h \
72 $$PWD/src/ColorTables.h \
73 $$PWD/src/ColorScheme.h \
74 $$PWD/src/TerminalDisplay.h \
75 $$PWD/src/ksession.h
76
77OTHER_FILES += \
78 $$PWD/src/qmldir \
79 $$PWD/src/plugins.qmltypes
80
81MOC_DIR = $$PWD/.moc
82OBJECTS_DIR = $$PWD/.obj
83
84#########################################
85## INTALLS
86#########################################
87
88target.path = $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
89
90assets.files += $$PLUGIN_ASSETS
91assets.path += $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
92
93qmldir.files += $$PWD/src/qmldir \
94 $$PWD/src/plugins.qmltypes
95qmldir.path += $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
96
97INSTALLS += target qmldir assets
098
=== added directory 'src'
=== renamed directory 'src' => 'src.moved'
=== added file 'src/BlockArray.cpp'
--- src/BlockArray.cpp 1970-01-01 00:00:00 +0000
+++ src/BlockArray.cpp 2017-09-09 05:25:54 +0000
@@ -0,0 +1,377 @@
1/*
2 This file is part of Konsole, an X terminal.
3 Copyright (C) 2000 by Stephan Kulow <coolo@kde.org>
4
5 Rewritten for QT4 by e_k <e_k at users.sourceforge.net>, Copyright (C)2008
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA.
21
22*/
23
24// Own
25#include "BlockArray.h"
26
27#include <QtCore>
28
29// System
30#include <assert.h>
31#include <sys/mman.h>
32#include <sys/param.h>
33#include <unistd.h>
34#include <stdio.h>
35
36
37static int blocksize = 0;
38
39BlockArray::BlockArray()
40 : size(0),
41 current(size_t(-1)),
42 index(size_t(-1)),
43 lastmap(0),
44 lastmap_index(size_t(-1)),
45 lastblock(0), ion(-1),
46 length(0)
47{
48 // lastmap_index = index = current = size_t(-1);
49 if (blocksize == 0) {
50 blocksize = ((sizeof(Block) / getpagesize()) + 1) * getpagesize();
51 }
52
53}
54
55BlockArray::~BlockArray()
56{
57 setHistorySize(0);
58 assert(!lastblock);
59}
60
61size_t BlockArray::append(Block * block)
62{
63 if (!size) {
64 return size_t(-1);
65 }
66
67 ++current;
68 if (current >= size) {
69 current = 0;
70 }
71
72 int rc;
73 rc = lseek(ion, current * blocksize, SEEK_SET);
74 if (rc < 0) {
75 perror("HistoryBuffer::add.seek");
76 setHistorySize(0);
77 return size_t(-1);
78 }
79 rc = write(ion, block, blocksize);
80 if (rc < 0) {
81 perror("HistoryBuffer::add.write");
82 setHistorySize(0);
83 return size_t(-1);
84 }
85
86 length++;
87 if (length > size) {
88 length = size;
89 }
90
91 ++index;
92
93 delete block;
94 return current;
95}
96
97size_t BlockArray::newBlock()
98{
99 if (!size) {
100 return size_t(-1);
101 }
102 append(lastblock);
103
104 lastblock = new Block();
105 return index + 1;
106}
107
108Block * BlockArray::lastBlock() const
109{
110 return lastblock;
111}
112
113bool BlockArray::has(size_t i) const
114{
115 if (i == index + 1) {
116 return true;
117 }
118
119 if (i > index) {
120 return false;
121 }
122 if (index - i >= length) {
123 return false;
124 }
125 return true;
126}
127
128const Block * BlockArray::at(size_t i)
129{
130 if (i == index + 1) {
131 return lastblock;
132 }
133
134 if (i == lastmap_index) {
135 return lastmap;
136 }
137
138 if (i > index) {
139 qDebug() << "BlockArray::at() i > index\n";
140 return 0;
141 }
142
143// if (index - i >= length) {
144// kDebug(1211) << "BlockArray::at() index - i >= length\n";
145// return 0;
146// }
147
148 size_t j = i; // (current - (index - i) + (index/size+1)*size) % size ;
149
150 assert(j < size);
151 unmap();
152
153 Block * block = (Block *)mmap(0, blocksize, PROT_READ, MAP_PRIVATE, ion, j * blocksize);
154
155 if (block == (Block *)-1) {
156 perror("mmap");
157 return 0;
158 }
159
160 lastmap = block;
161 lastmap_index = i;
162
163 return block;
164}
165
166void BlockArray::unmap()
167{
168 if (lastmap) {
169 int res = munmap((char *)lastmap, blocksize);
170 if (res < 0) {
171 perror("munmap");
172 }
173 }
174 lastmap = 0;
175 lastmap_index = size_t(-1);
176}
177
178bool BlockArray::setSize(size_t newsize)
179{
180 return setHistorySize(newsize * 1024 / blocksize);
181}
182
183bool BlockArray::setHistorySize(size_t newsize)
184{
185// kDebug(1211) << "setHistorySize " << size << " " << newsize;
186
187 if (size == newsize) {
188 return false;
189 }
190
191 unmap();
192
193 if (!newsize) {
194 delete lastblock;
195 lastblock = 0;
196 if (ion >= 0) {
197 close(ion);
198 }
199 ion = -1;
200 current = size_t(-1);
201 return true;
202 }
203
204 if (!size) {
205 FILE * tmp = tmpfile();
206 if (!tmp) {
207 perror("konsole: cannot open temp file.\n");
208 } else {
209 ion = dup(fileno(tmp));
210 if (ion<0) {
211 perror("konsole: cannot dup temp file.\n");
212 fclose(tmp);
213 }
214 }
215 if (ion < 0) {
216 return false;
217 }
218
219 assert(!lastblock);
220
221 lastblock = new Block();
222 size = newsize;
223 return false;
224 }
225
226 if (newsize > size) {
227 increaseBuffer();
228 size = newsize;
229 return false;
230 } else {
231 decreaseBuffer(newsize);
232 ftruncate(ion, length*blocksize);
233 size = newsize;
234
235 return true;
236 }
237}
238
239void moveBlock(FILE * fion, int cursor, int newpos, char * buffer2)
240{
241 int res = fseek(fion, cursor * blocksize, SEEK_SET);
242 if (res) {
243 perror("fseek");
244 }
245 res = fread(buffer2, blocksize, 1, fion);
246 if (res != 1) {
247 perror("fread");
248 }
249
250 res = fseek(fion, newpos * blocksize, SEEK_SET);
251 if (res) {
252 perror("fseek");
253 }
254 res = fwrite(buffer2, blocksize, 1, fion);
255 if (res != 1) {
256 perror("fwrite");
257 }
258 // printf("moving block %d to %d\n", cursor, newpos);
259}
260
261void BlockArray::decreaseBuffer(size_t newsize)
262{
263 if (index < newsize) { // still fits in whole
264 return;
265 }
266
267 int offset = (current - (newsize - 1) + size) % size;
268
269 if (!offset) {
270 return;
271 }
272
273 // The Block constructor could do somthing in future...
274 char * buffer1 = new char[blocksize];
275
276 FILE * fion = fdopen(dup(ion), "w+b");
277 if (!fion) {
278 delete [] buffer1;
279 perror("fdopen/dup");
280 return;
281 }
282
283 int firstblock;
284 if (current <= newsize) {
285 firstblock = current + 1;
286 } else {
287 firstblock = 0;
288 }
289
290 size_t oldpos;
291 for (size_t i = 0, cursor=firstblock; i < newsize; i++) {
292 oldpos = (size + cursor + offset) % size;
293 moveBlock(fion, oldpos, cursor, buffer1);
294 if (oldpos < newsize) {
295 cursor = oldpos;
296 } else {
297 cursor++;
298 }
299 }
300
301 current = newsize - 1;
302 length = newsize;
303
304 delete [] buffer1;
305
306 fclose(fion);
307
308}
309
310void BlockArray::increaseBuffer()
311{
312 if (index < size) { // not even wrapped once
313 return;
314 }
315
316 int offset = (current + size + 1) % size;
317 if (!offset) { // no moving needed
318 return;
319 }
320
321 // The Block constructor could do somthing in future...
322 char * buffer1 = new char[blocksize];
323 char * buffer2 = new char[blocksize];
324
325 int runs = 1;
326 int bpr = size; // blocks per run
327
328 if (size % offset == 0) {
329 bpr = size / offset;
330 runs = offset;
331 }
332
333 FILE * fion = fdopen(dup(ion), "w+b");
334 if (!fion) {
335 perror("fdopen/dup");
336 delete [] buffer1;
337 delete [] buffer2;
338 return;
339 }
340
341 int res;
342 for (int i = 0; i < runs; i++) {
343 // free one block in chain
344 int firstblock = (offset + i) % size;
345 res = fseek(fion, firstblock * blocksize, SEEK_SET);
346 if (res) {
347 perror("fseek");
348 }
349 res = fread(buffer1, blocksize, 1, fion);
350 if (res != 1) {
351 perror("fread");
352 }
353 int newpos = 0;
354 for (int j = 1, cursor=firstblock; j < bpr; j++) {
355 cursor = (cursor + offset) % size;
356 newpos = (cursor - offset + size) % size;
357 moveBlock(fion, cursor, newpos, buffer2);
358 }
359 res = fseek(fion, i * blocksize, SEEK_SET);
360 if (res) {
361 perror("fseek");
362 }
363 res = fwrite(buffer1, blocksize, 1, fion);
364 if (res != 1) {
365 perror("fwrite");
366 }
367 }
368 current = size - 1;
369 length = size;
370
371 delete [] buffer1;
372 delete [] buffer2;
373
374 fclose(fion);
375
376}
377
0378
=== added file 'src/BlockArray.h'
--- src/BlockArray.h 1970-01-01 00:00:00 +0000
+++ src/BlockArray.h 2017-09-09 05:25:54 +0000
@@ -0,0 +1,126 @@
1/*
2 This file is part of Konsole, an X terminal.
3 Copyright (C) 2000 by Stephan Kulow <coolo@kde.org>
4
5 Rewritten for QT4 by e_k <e_k at users.sourceforge.net>, Copyright (C)2008
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA.
21*/
22
23#ifndef BLOCKARRAY_H
24#define BLOCKARRAY_H
25
26#include <unistd.h>
27
28//#error Do not use in KDE 2.1
29
30#define BlockSize (1 << 12)
31#define ENTRIES ((BlockSize - sizeof(size_t) ) / sizeof(unsigned char))
32
33struct Block {
34 Block() {
35 size = 0;
36 }
37 unsigned char data[ENTRIES];
38 size_t size;
39};
40
41// ///////////////////////////////////////////////////////
42
43class BlockArray {
44public:
45 /**
46 * Creates a history file for holding
47 * maximal size blocks. If more blocks
48 * are requested, then it drops earlier
49 * added ones.
50 */
51 BlockArray();
52
53 /// destructor
54 ~BlockArray();
55
56 /**
57 * adds the Block at the end of history.
58 * This may drop other blocks.
59 *
60 * The ownership on the block is transfered.
61 * An unique index number is returned for accessing
62 * it later (if not yet dropped then)
63 *
64 * Note, that the block may be dropped completely
65 * if history is turned off.
66 */
67 size_t append(Block * block);
68
69 /**
70 * gets the block at the index. Function may return
71 * 0 if the block isn't available any more.
72 *
73 * The returned block is strictly readonly as only
74 * maped in memory - and will be invalid on the next
75 * operation on this class.
76 */
77 const Block * at(size_t index);
78
79 /**
80 * reorders blocks as needed. If newsize is null,
81 * the history is emptied completely. The indices
82 * returned on append won't change their semantic,
83 * but they may not be valid after this call.
84 */
85 bool setHistorySize(size_t newsize);
86
87 size_t newBlock();
88
89 Block * lastBlock() const;
90
91 /**
92 * Convenient function to set the size in KBytes
93 * instead of blocks
94 */
95 bool setSize(size_t newsize);
96
97 size_t len() const {
98 return length;
99 }
100
101 bool has(size_t index) const;
102
103 size_t getCurrent() const {
104 return current;
105 }
106
107private:
108 void unmap();
109 void increaseBuffer();
110 void decreaseBuffer(size_t newsize);
111
112 size_t size;
113 // current always shows to the last inserted block
114 size_t current;
115 size_t index;
116
117 Block * lastmap;
118 size_t lastmap_index;
119 Block * lastblock;
120
121 int ion;
122 size_t length;
123
124};
125
126#endif
0127
=== added file 'src/Character.h'
--- src/Character.h 1970-01-01 00:00:00 +0000
+++ src/Character.h 2017-09-09 05:25:54 +0000
@@ -0,0 +1,221 @@
1/*
2 This file is part of Konsole, KDE's terminal.
3
4 Copyright 2007-2008 by Robert Knight <robertknight@gmail.com>
5 Copyright 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA.
21*/
22
23#ifndef CHARACTER_H
24#define CHARACTER_H
25
26// Qt
27#include <QtCore/QHash>
28
29// Local
30#include "CharacterColor.h"
31
32typedef unsigned char LineProperty;
33
34static const int LINE_DEFAULT = 0;
35static const int LINE_WRAPPED = (1 << 0);
36static const int LINE_DOUBLEWIDTH = (1 << 1);
37static const int LINE_DOUBLEHEIGHT = (1 << 2);
38
39#define DEFAULT_RENDITION 0
40#define RE_BOLD (1 << 0)
41#define RE_BLINK (1 << 1)
42#define RE_UNDERLINE (1 << 2)
43#define RE_REVERSE (1 << 3) // Screen only
44#define RE_INTENSIVE (1 << 3) // Widget only
45#define RE_CURSOR (1 << 4)
46#define RE_EXTENDED_CHAR (1 << 5)
47
48/**
49 * A single character in the terminal which consists of a unicode character
50 * value, foreground and background colors and a set of rendition attributes
51 * which specify how it should be drawn.
52 */
53class Character
54{
55public:
56 /**
57 * Constructs a new character.
58 *
59 * @param _c The unicode character value of this character.
60 * @param _f The foreground color used to draw the character.
61 * @param _b The color used to draw the character's background.
62 * @param _r A set of rendition flags which specify how this character is to be drawn.
63 */
64 inline Character(quint16 _c = ' ',
65 CharacterColor _f = CharacterColor(COLOR_SPACE_DEFAULT,DEFAULT_FORE_COLOR),
66 CharacterColor _b = CharacterColor(COLOR_SPACE_DEFAULT,DEFAULT_BACK_COLOR),
67 quint8 _r = DEFAULT_RENDITION)
68 : character(_c), rendition(_r), foregroundColor(_f), backgroundColor(_b) {}
69
70 union
71 {
72 /** The unicode character value for this character. */
73 quint16 character;
74 /**
75 * Experimental addition which allows a single Character instance to contain more than
76 * one unicode character.
77 *
78 * charSequence is a hash code which can be used to look up the unicode
79 * character sequence in the ExtendedCharTable used to create the sequence.
80 */
81 quint16 charSequence;
82 };
83
84 /** A combination of RENDITION flags which specify options for drawing the character. */
85 quint8 rendition;
86
87 /** The foreground color used to draw this character. */
88 CharacterColor foregroundColor;
89 /** The color used to draw this character's background. */
90 CharacterColor backgroundColor;
91
92 /**
93 * Returns true if this character has a transparent background when
94 * it is drawn with the specified @p palette.
95 */
96 bool isTransparent(const ColorEntry* palette) const;
97 /**
98 * Returns true if this character should always be drawn in bold when
99 * it is drawn with the specified @p palette, independent of whether
100 * or not the character has the RE_BOLD rendition flag.
101 */
102 ColorEntry::FontWeight fontWeight(const ColorEntry* base) const;
103
104 /**
105 * returns true if the format (color, rendition flag) of the compared characters is equal
106 */
107 bool equalsFormat(const Character &other) const;
108
109 /**
110 * Compares two characters and returns true if they have the same unicode character value,
111 * rendition and colors.
112 */
113 friend bool operator == (const Character& a, const Character& b);
114 /**
115 * Compares two characters and returns true if they have different unicode character values,
116 * renditions or colors.
117 */
118 friend bool operator != (const Character& a, const Character& b);
119};
120
121inline bool operator == (const Character& a, const Character& b)
122{
123 return a.character == b.character &&
124 a.rendition == b.rendition &&
125 a.foregroundColor == b.foregroundColor &&
126 a.backgroundColor == b.backgroundColor;
127}
128
129inline bool operator != (const Character& a, const Character& b)
130{
131 return a.character != b.character ||
132 a.rendition != b.rendition ||
133 a.foregroundColor != b.foregroundColor ||
134 a.backgroundColor != b.backgroundColor;
135}
136
137inline bool Character::isTransparent(const ColorEntry* base) const
138{
139 return ((backgroundColor._colorSpace == COLOR_SPACE_DEFAULT) &&
140 base[backgroundColor._u+0+(backgroundColor._v?BASE_COLORS:0)].transparent)
141 || ((backgroundColor._colorSpace == COLOR_SPACE_SYSTEM) &&
142 base[backgroundColor._u+2+(backgroundColor._v?BASE_COLORS:0)].transparent);
143}
144
145inline bool Character::equalsFormat(const Character& other) const
146{
147 return
148 backgroundColor==other.backgroundColor &&
149 foregroundColor==other.foregroundColor &&
150 rendition==other.rendition;
151}
152
153inline ColorEntry::FontWeight Character::fontWeight(const ColorEntry* base) const
154{
155 if (backgroundColor._colorSpace == COLOR_SPACE_DEFAULT)
156 return base[backgroundColor._u+0+(backgroundColor._v?BASE_COLORS:0)].fontWeight;
157 else if (backgroundColor._colorSpace == COLOR_SPACE_SYSTEM)
158 return base[backgroundColor._u+2+(backgroundColor._v?BASE_COLORS:0)].fontWeight;
159 else
160 return ColorEntry::UseCurrentFormat;
161}
162
163extern unsigned short vt100_graphics[32];
164
165
166/**
167 * A table which stores sequences of unicode characters, referenced
168 * by hash keys. The hash key itself is the same size as a unicode
169 * character ( ushort ) so that it can occupy the same space in
170 * a structure.
171 */
172class ExtendedCharTable
173{
174public:
175 /** Constructs a new character table. */
176 ExtendedCharTable();
177 ~ExtendedCharTable();
178
179 /**
180 * Adds a sequences of unicode characters to the table and returns
181 * a hash code which can be used later to look up the sequence
182 * using lookupExtendedChar()
183 *
184 * If the same sequence already exists in the table, the hash
185 * of the existing sequence will be returned.
186 *
187 * @param unicodePoints An array of unicode character points
188 * @param length Length of @p unicodePoints
189 */
190 ushort createExtendedChar(ushort* unicodePoints , ushort length);
191 /**
192 * Looks up and returns a pointer to a sequence of unicode characters
193 * which was added to the table using createExtendedChar().
194 *
195 * @param hash The hash key returned by createExtendedChar()
196 * @param length This variable is set to the length of the
197 * character sequence.
198 *
199 * @return A unicode character sequence of size @p length.
200 */
201 ushort* lookupExtendedChar(ushort hash , ushort& length) const;
202
203 /** The global ExtendedCharTable instance. */
204 static ExtendedCharTable instance;
205private:
206 // calculates the hash key of a sequence of unicode points of size 'length'
207 ushort extendedCharHash(ushort* unicodePoints , ushort length) const;
208 // tests whether the entry in the table specified by 'hash' matches the
209 // character sequence 'unicodePoints' of size 'length'
210 bool extendedCharMatch(ushort hash , ushort* unicodePoints , ushort length) const;
211 // internal, maps hash keys to character sequence buffers. The first ushort
212 // in each value is the length of the buffer, followed by the ushorts in the buffer
213 // themselves.
214 QHash<ushort,ushort*> extendedCharTable;
215};
216
217
218Q_DECLARE_TYPEINFO(Character, Q_MOVABLE_TYPE);
219
220#endif // CHARACTER_H
221
0222
=== added file 'src/CharacterColor.h'
--- src/CharacterColor.h 1970-01-01 00:00:00 +0000
+++ src/CharacterColor.h 2017-09-09 05:25:54 +0000
@@ -0,0 +1,294 @@
1/*
2 This file is part of Konsole, KDE's terminal.
3
4 Copyright 2007-2008 by Robert Knight <robertknight@gmail.com>
5 Copyright 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA.
21*/
22
23#ifndef CHARACTERCOLOR_H
24#define CHARACTERCOLOR_H
25
26// Qt
27#include <QtGui/QColor>
28
29//#include <kdemacros.h>
30#define KDE_NO_EXPORT
31
32/**
33 * An entry in a terminal display's color palette.
34 *
35 * A color palette is an array of 16 ColorEntry instances which map
36 * system color indexes (from 0 to 15) into actual colors.
37 *
38 * Each entry can be set as bold, in which case any text
39 * drawn using the color should be drawn in bold.
40 *
41 * Each entry can also be transparent, in which case the terminal
42 * display should avoid drawing the background for any characters
43 * using the entry as a background.
44 */
45class ColorEntry
46{
47public:
48 /** Specifies the weight to use when drawing text with this color. */
49 enum FontWeight
50 {
51 /** Always draw text in this color with a bold weight. */
52 Bold,
53 /** Always draw text in this color with a normal weight. */
54 Normal,
55 /**
56 * Use the current font weight set by the terminal application.
57 * This is the default behavior.
58 */
59 UseCurrentFormat
60 };
61
62 /**
63 * Constructs a new color palette entry.
64 *
65 * @param c The color value for this entry.
66 * @param tr Specifies that the color should be transparent when used as a background color.
67 * @param weight Specifies the font weight to use when drawing text with this color.
68 */
69 ColorEntry(QColor c, bool tr, FontWeight weight = UseCurrentFormat)
70 : color(c), transparent(tr), fontWeight(weight) {}
71
72 /**
73 * Constructs a new color palette entry with an undefined color, and
74 * with the transparent and bold flags set to false.
75 */
76 ColorEntry() : transparent(false), fontWeight(UseCurrentFormat) {}
77
78 /**
79 * Sets the color, transparency and boldness of this color to those of @p rhs.
80 */
81 void operator=(const ColorEntry& rhs)
82 {
83 color = rhs.color;
84 transparent = rhs.transparent;
85 fontWeight = rhs.fontWeight;
86 }
87
88 /** The color value of this entry for display. */
89 QColor color;
90
91 /**
92 * If true character backgrounds using this color should be transparent.
93 * This is not applicable when the color is used to render text.
94 */
95 bool transparent;
96 /**
97 * Specifies the font weight to use when drawing text with this color.
98 * This is not applicable when the color is used to draw a character's background.
99 */
100 FontWeight fontWeight;
101};
102
103
104// Attributed Character Representations ///////////////////////////////
105
106// Colors
107
108#define BASE_COLORS (2+8)
109#define INTENSITIES 2
110#define TABLE_COLORS (INTENSITIES*BASE_COLORS)
111
112#define DEFAULT_FORE_COLOR 0
113#define DEFAULT_BACK_COLOR 1
114
115//a standard set of colors using black text on a white background.
116//defined in TerminalDisplay.cpp
117
118extern const ColorEntry base_color_table[TABLE_COLORS] KDE_NO_EXPORT;
119
120/* CharacterColor is a union of the various color spaces.
121
122 Assignment is as follows:
123
124 Type - Space - Values
125
126 0 - Undefined - u: 0, v:0 w:0
127 1 - Default - u: 0..1 v:intense w:0
128 2 - System - u: 0..7 v:intense w:0
129 3 - Index(256) - u: 16..255 v:0 w:0
130 4 - RGB - u: 0..255 v:0..256 w:0..256
131
132 Default colour space has two separate colours, namely
133 default foreground and default background colour.
134*/
135
136#define COLOR_SPACE_UNDEFINED 0
137#define COLOR_SPACE_DEFAULT 1
138#define COLOR_SPACE_SYSTEM 2
139#define COLOR_SPACE_256 3
140#define COLOR_SPACE_RGB 4
141
142/**
143 * Describes the color of a single character in the terminal.
144 */
145class CharacterColor
146{
147 friend class Character;
148
149public:
150 /** Constructs a new CharacterColor whoose color and color space are undefined. */
151 CharacterColor()
152 : _colorSpace(COLOR_SPACE_UNDEFINED),
153 _u(0),
154 _v(0),
155 _w(0)
156 {}
157
158 /**
159 * Constructs a new CharacterColor using the specified @p colorSpace and with
160 * color value @p co
161 *
162 * The meaning of @p co depends on the @p colorSpace used.
163 *
164 * TODO : Document how @p co relates to @p colorSpace
165 *
166 * TODO : Add documentation about available color spaces.
167 */
168 CharacterColor(quint8 colorSpace, int co)
169 : _colorSpace(colorSpace),
170 _u(0),
171 _v(0),
172 _w(0)
173 {
174 switch (colorSpace)
175 {
176 case COLOR_SPACE_DEFAULT:
177 _u = co & 1;
178 break;
179 case COLOR_SPACE_SYSTEM:
180 _u = co & 7;
181 _v = (co >> 3) & 1;
182 break;
183 case COLOR_SPACE_256:
184 _u = co & 255;
185 break;
186 case COLOR_SPACE_RGB:
187 _u = co >> 16;
188 _v = co >> 8;
189 _w = co;
190 break;
191 default:
192 _colorSpace = COLOR_SPACE_UNDEFINED;
193 }
194 }
195
196 /**
197 * Returns true if this character color entry is valid.
198 */
199 bool isValid()
200 {
201 return _colorSpace != COLOR_SPACE_UNDEFINED;
202 }
203
204 /**
205 * Toggles the value of this color between a normal system color and the corresponding intensive
206 * system color.
207 *
208 * This is only applicable if the color is using the COLOR_SPACE_DEFAULT or COLOR_SPACE_SYSTEM
209 * color spaces.
210 */
211 void toggleIntensive();
212
213 /**
214 * Returns the color within the specified color @p palette
215 *
216 * The @p palette is only used if this color is one of the 16 system colors, otherwise
217 * it is ignored.
218 */
219 QColor color(const ColorEntry* palette) const;
220
221 /**
222 * Compares two colors and returns true if they represent the same color value and
223 * use the same color space.
224 */
225 friend bool operator == (const CharacterColor& a, const CharacterColor& b);
226 /**
227 * Compares two colors and returns true if they represent different color values
228 * or use different color spaces.
229 */
230 friend bool operator != (const CharacterColor& a, const CharacterColor& b);
231
232private:
233 quint8 _colorSpace;
234
235 // bytes storing the character color
236 quint8 _u;
237 quint8 _v;
238 quint8 _w;
239};
240
241inline bool operator == (const CharacterColor& a, const CharacterColor& b)
242{
243 return a._colorSpace == b._colorSpace &&
244 a._u == b._u &&
245 a._v == b._v &&
246 a._w == b._w;
247}
248inline bool operator != (const CharacterColor& a, const CharacterColor& b)
249{
250 return !operator==(a,b);
251}
252
253inline const QColor color256(quint8 u, const ColorEntry* base)
254{
255 // 0.. 16: system colors
256 if (u < 8) return base[u+2 ].color; u -= 8;
257 if (u < 8) return base[u+2+BASE_COLORS].color; u -= 8;
258
259 // 16..231: 6x6x6 rgb color cube
260 if (u < 216) return QColor(((u/36)%6) ? (40*((u/36)%6)+55) : 0,
261 ((u/ 6)%6) ? (40*((u/ 6)%6)+55) : 0,
262 ((u/ 1)%6) ? (40*((u/ 1)%6)+55) : 0); u -= 216;
263
264 // 232..255: gray, leaving out black and white
265 int gray = u*10+8; return QColor(gray,gray,gray);
266}
267
268inline QColor CharacterColor::color(const ColorEntry* base) const
269{
270 switch (_colorSpace)
271 {
272 case COLOR_SPACE_DEFAULT: return base[_u+0+(_v?BASE_COLORS:0)].color;
273 case COLOR_SPACE_SYSTEM: return base[_u+2+(_v?BASE_COLORS:0)].color;
274 case COLOR_SPACE_256: return color256(_u,base);
275 case COLOR_SPACE_RGB: return QColor(_u,_v,_w);
276 case COLOR_SPACE_UNDEFINED: return QColor();
277 }
278
279 Q_ASSERT(false); // invalid color space
280
281 return QColor();
282}
283
284inline void CharacterColor::toggleIntensive()
285{
286 if (_colorSpace == COLOR_SPACE_SYSTEM || _colorSpace == COLOR_SPACE_DEFAULT)
287 {
288 _v = !_v;
289 }
290}
291
292
293#endif // CHARACTERCOLOR_H
294
0295
=== added file 'src/ColorScheme.cpp'
--- src/ColorScheme.cpp 1970-01-01 00:00:00 +0000
+++ src/ColorScheme.cpp 2017-09-09 05:25:54 +0000
@@ -0,0 +1,774 @@
1/*
2 This source file is part of Konsole, a terminal emulator.
3
4 Copyright 2007-2008 by Robert Knight <robertknight@gmail.com>
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20*/
21
22// Own
23#include "ColorScheme.h"
24#include "tools.h"
25
26// Qt
27#include <QtGui/QBrush>
28#include <QtCore/QFile>
29#include <QtCore/QFileInfo>
30#include <QtDebug>
31#include <QSettings>
32#include <QDir>
33
34
35// KDE
36//#include <KColorScheme>
37//#include <KConfig>
38//#include <KLocale>
39//#include <KDebug>
40//#include <KConfigGroup>
41//#include <KStandardDirs>
42
43
44const ColorEntry ColorScheme::defaultTable[TABLE_COLORS] =
45 // The following are almost IBM standard color codes, with some slight
46 // gamma correction for the dim colors to compensate for bright X screens.
47 // It contains the 8 ansiterm/xterm colors in 2 intensities.
48{
49 ColorEntry( QColor(0x00,0x00,0x00), 0), ColorEntry(
50QColor(0xFF,0xFF,0xFF), 1), // Dfore, Dback
51 ColorEntry( QColor(0x00,0x00,0x00), 0), ColorEntry(
52QColor(0xB2,0x18,0x18), 0), // Black, Red
53 ColorEntry( QColor(0x18,0xB2,0x18), 0), ColorEntry(
54QColor(0xB2,0x68,0x18), 0), // Green, Yellow
55 ColorEntry( QColor(0x18,0x18,0xB2), 0), ColorEntry(
56QColor(0xB2,0x18,0xB2), 0), // Blue, Magenta
57 ColorEntry( QColor(0x18,0xB2,0xB2), 0), ColorEntry(
58QColor(0xB2,0xB2,0xB2), 0), // Cyan, White
59 // intensive
60 ColorEntry( QColor(0x00,0x00,0x00), 0), ColorEntry(
61QColor(0xFF,0xFF,0xFF), 1),
62 ColorEntry( QColor(0x68,0x68,0x68), 0), ColorEntry(
63QColor(0xFF,0x54,0x54), 0),
64 ColorEntry( QColor(0x54,0xFF,0x54), 0), ColorEntry(
65QColor(0xFF,0xFF,0x54), 0),
66 ColorEntry( QColor(0x54,0x54,0xFF), 0), ColorEntry(
67QColor(0xFF,0x54,0xFF), 0),
68 ColorEntry( QColor(0x54,0xFF,0xFF), 0), ColorEntry(
69QColor(0xFF,0xFF,0xFF), 0)
70};
71
72const char* const ColorScheme::colorNames[TABLE_COLORS] =
73{
74 "Foreground",
75 "Background",
76 "Color0",
77 "Color1",
78 "Color2",
79 "Color3",
80 "Color4",
81 "Color5",
82 "Color6",
83 "Color7",
84 "ForegroundIntense",
85 "BackgroundIntense",
86 "Color0Intense",
87 "Color1Intense",
88 "Color2Intense",
89 "Color3Intense",
90 "Color4Intense",
91 "Color5Intense",
92 "Color6Intense",
93 "Color7Intense"
94};
95// dummy silently comment out the tr_NOOP
96#define tr_NOOP
97const char* const ColorScheme::translatedColorNames[TABLE_COLORS] =
98{
99 tr_NOOP("Foreground"),
100 tr_NOOP("Background"),
101 tr_NOOP("Color 1"),
102 tr_NOOP("Color 2"),
103 tr_NOOP("Color 3"),
104 tr_NOOP("Color 4"),
105 tr_NOOP("Color 5"),
106 tr_NOOP("Color 6"),
107 tr_NOOP("Color 7"),
108 tr_NOOP("Color 8"),
109 tr_NOOP("Foreground (Intense)"),
110 tr_NOOP("Background (Intense)"),
111 tr_NOOP("Color 1 (Intense)"),
112 tr_NOOP("Color 2 (Intense)"),
113 tr_NOOP("Color 3 (Intense)"),
114 tr_NOOP("Color 4 (Intense)"),
115 tr_NOOP("Color 5 (Intense)"),
116 tr_NOOP("Color 6 (Intense)"),
117 tr_NOOP("Color 7 (Intense)"),
118 tr_NOOP("Color 8 (Intense)")
119};
120
121ColorScheme::ColorScheme()
122{
123 _table = 0;
124 _randomTable = 0;
125 _opacity = 1.0;
126}
127ColorScheme::ColorScheme(const ColorScheme& other)
128 : _opacity(other._opacity)
129 ,_table(0)
130 ,_randomTable(0)
131{
132 setName(other.name());
133 setDescription(other.description());
134
135 if ( other._table != 0 )
136 {
137 for ( int i = 0 ; i < TABLE_COLORS ; i++ )
138 setColorTableEntry(i,other._table[i]);
139 }
140
141 if ( other._randomTable != 0 )
142 {
143 for ( int i = 0 ; i < TABLE_COLORS ; i++ )
144 {
145 const RandomizationRange& range = other._randomTable[i];
146 setRandomizationRange(i,range.hue,range.saturation,range.value);
147 }
148 }
149}
150ColorScheme::~ColorScheme()
151{
152 delete[] _table;
153 delete[] _randomTable;
154}
155
156void ColorScheme::setDescription(const QString& description) { _description = description; }
157QString ColorScheme::description() const { return _description; }
158
159void ColorScheme::setName(const QString& name) { _name = name; }
160QString ColorScheme::name() const { return _name; }
161
162void ColorScheme::setColorTableEntry(int index , const ColorEntry& entry)
163{
164 Q_ASSERT( index >= 0 && index < TABLE_COLORS );
165
166 if ( !_table )
167 {
168 _table = new ColorEntry[TABLE_COLORS];
169
170 for (int i=0;i<TABLE_COLORS;i++)
171 _table[i] = defaultTable[i];
172 }
173
174 _table[index] = entry;
175}
176ColorEntry ColorScheme::colorEntry(int index , uint randomSeed) const
177{
178 Q_ASSERT( index >= 0 && index < TABLE_COLORS );
179
180 if ( randomSeed != 0 )
181 qsrand(randomSeed);
182
183 ColorEntry entry = colorTable()[index];
184
185 if ( randomSeed != 0 &&
186 _randomTable != 0 &&
187 !_randomTable[index].isNull() )
188 {
189 const RandomizationRange& range = _randomTable[index];
190
191
192 int hueDifference = range.hue ? (qrand() % range.hue) - range.hue/2 : 0;
193 int saturationDifference = range.saturation ? (qrand() % range.saturation) - range.saturation/2 : 0;
194 int valueDifference = range.value ? (qrand() % range.value) - range.value/2 : 0;
195
196 QColor& color = entry.color;
197
198 int newHue = qAbs( (color.hue() + hueDifference) % MAX_HUE );
199 int newValue = qMin( qAbs(color.value() + valueDifference) , 255 );
200 int newSaturation = qMin( qAbs(color.saturation() + saturationDifference) , 255 );
201
202 color.setHsv(newHue,newSaturation,newValue);
203 }
204
205 return entry;
206}
207void ColorScheme::getColorTable(ColorEntry* table , uint randomSeed) const
208{
209 for ( int i = 0 ; i < TABLE_COLORS ; i++ )
210 table[i] = colorEntry(i,randomSeed);
211}
212bool ColorScheme::randomizedBackgroundColor() const
213{
214 return _randomTable == 0 ? false : !_randomTable[1].isNull();
215}
216void ColorScheme::setRandomizedBackgroundColor(bool randomize)
217{
218 // the hue of the background colour is allowed to be randomly
219 // adjusted as much as possible.
220 //
221 // the value and saturation are left alone to maintain read-ability
222 if ( randomize )
223 {
224 setRandomizationRange( 1 /* background color index */ , MAX_HUE , 255 , 0 );
225 }
226 else
227 {
228 if ( _randomTable )
229 setRandomizationRange( 1 /* background color index */ , 0 , 0 , 0 );
230 }
231}
232
233void ColorScheme::setRandomizationRange( int index , quint16 hue , quint8 saturation ,
234 quint8 value )
235{
236 Q_ASSERT( hue <= MAX_HUE );
237 Q_ASSERT( index >= 0 && index < TABLE_COLORS );
238
239 if ( _randomTable == 0 )
240 _randomTable = new RandomizationRange[TABLE_COLORS];
241
242 _randomTable[index].hue = hue;
243 _randomTable[index].value = value;
244 _randomTable[index].saturation = saturation;
245}
246
247const ColorEntry* ColorScheme::colorTable() const
248{
249 if ( _table )
250 return _table;
251 else
252 return defaultTable;
253}
254QColor ColorScheme::foregroundColor() const
255{
256 return colorTable()[0].color;
257}
258QColor ColorScheme::backgroundColor() const
259{
260 return colorTable()[1].color;
261}
262bool ColorScheme::hasDarkBackground() const
263{
264 // value can range from 0 - 255, with larger values indicating higher brightness.
265 // so 127 is in the middle, anything less is deemed 'dark'
266 return backgroundColor().value() < 127;
267}
268void ColorScheme::setOpacity(qreal opacity) { _opacity = opacity; }
269qreal ColorScheme::opacity() const { return _opacity; }
270
271void ColorScheme::read(const QString & fileName)
272{
273 QSettings s(fileName, QSettings::IniFormat);
274 s.beginGroup("General");
275
276 _description = s.value("Description", QObject::tr("Un-named Color Scheme")).toString();
277 _opacity = s.value("Opacity",qreal(1.0)).toDouble();
278 s.endGroup();
279
280 for (int i=0 ; i < TABLE_COLORS ; i++)
281 {
282 readColorEntry(&s, i);
283 }
284}
285#if 0
286// implemented upstream - user apps
287void ColorScheme::read(KConfig& config)
288{
289 KConfigGroup configGroup = config.group("General");
290
291 QString description = configGroup.readEntry("Description", QObject::tr("Un-named Color Scheme"));
292
293 _description = tr(description.toUtf8());
294 _opacity = configGroup.readEntry("Opacity",qreal(1.0));
295
296 for (int i=0 ; i < TABLE_COLORS ; i++)
297 {
298 readColorEntry(config,i);
299 }
300}
301void ColorScheme::write(KConfig& config) const
302{
303 KConfigGroup configGroup = config.group("General");
304
305 configGroup.writeEntry("Description",_description);
306 configGroup.writeEntry("Opacity",_opacity);
307
308 for (int i=0 ; i < TABLE_COLORS ; i++)
309 {
310 RandomizationRange random = _randomTable != 0 ? _randomTable[i] : RandomizationRange();
311 writeColorEntry(config,colorNameForIndex(i),colorTable()[i],random);
312 }
313}
314#endif
315
316QString ColorScheme::colorNameForIndex(int index)
317{
318 Q_ASSERT( index >= 0 && index < TABLE_COLORS );
319
320 return QString(colorNames[index]);
321}
322QString ColorScheme::translatedColorNameForIndex(int index)
323{
324 Q_ASSERT( index >= 0 && index < TABLE_COLORS );
325
326 return translatedColorNames[index];
327}
328
329void ColorScheme::readColorEntry(QSettings * s , int index)
330{
331 s->beginGroup(colorNameForIndex(index));
332
333 ColorEntry entry;
334
335 QStringList rgbList = s->value("Color", QStringList()).toStringList();
336 if (rgbList.count() != 3)
337 {
338 Q_ASSERT(0);
339 }
340 int r, g, b;
341 r = rgbList[0].toInt();
342 g = rgbList[1].toInt();
343 b = rgbList[2].toInt();
344 entry.color = QColor(r, g, b);
345
346 entry.transparent = s->value("Transparent",false).toBool();
347
348 // Deprecated key from KDE 4.0 which set 'Bold' to true to force
349 // a color to be bold or false to use the current format
350 //
351 // TODO - Add a new tri-state key which allows for bold, normal or
352 // current format
353 if (s->contains("Bold"))
354 entry.fontWeight = s->value("Bold",false).toBool() ? ColorEntry::Bold :
355 ColorEntry::UseCurrentFormat;
356
357 quint16 hue = s->value("MaxRandomHue",0).toInt();
358 quint8 value = s->value("MaxRandomValue",0).toInt();
359 quint8 saturation = s->value("MaxRandomSaturation",0).toInt();
360
361 setColorTableEntry( index , entry );
362
363 if ( hue != 0 || value != 0 || saturation != 0 )
364 setRandomizationRange( index , hue , saturation , value );
365
366 s->endGroup();
367}
368#if 0
369// implemented upstream - user apps
370void ColorScheme::writeColorEntry(KConfig& config , const QString& colorName, const ColorEntry& entry , const RandomizationRange& random) const
371{
372 KConfigGroup configGroup(&config,colorName);
373
374 configGroup.writeEntry("Color",entry.color);
375 configGroup.writeEntry("Transparency",(bool)entry.transparent);
376 if (entry.fontWeight != ColorEntry::UseCurrentFormat)
377 {
378 configGroup.writeEntry("Bold",entry.fontWeight == ColorEntry::Bold);
379 }
380
381 // record randomization if this color has randomization or
382 // if one of the keys already exists
383 if ( !random.isNull() || configGroup.hasKey("MaxRandomHue") )
384 {
385 configGroup.writeEntry("MaxRandomHue",(int)random.hue);
386 configGroup.writeEntry("MaxRandomValue",(int)random.value);
387 configGroup.writeEntry("MaxRandomSaturation",(int)random.saturation);
388 }
389}
390#endif
391
392//
393// Work In Progress - A color scheme for use on KDE setups for users
394// with visual disabilities which means that they may have trouble
395// reading text with the supplied color schemes.
396//
397// This color scheme uses only the 'safe' colors defined by the
398// KColorScheme class.
399//
400// A complication this introduces is that each color provided by
401// KColorScheme is defined as a 'background' or 'foreground' color.
402// Only foreground colors are allowed to be used to render text and
403// only background colors are allowed to be used for backgrounds.
404//
405// The ColorEntry and TerminalDisplay classes do not currently
406// support this restriction.
407//
408// Requirements:
409// - A color scheme which uses only colors from the KColorScheme class
410// - Ability to restrict which colors the TerminalDisplay widget
411// uses as foreground and background color
412// - Make use of KGlobalSettings::allowDefaultBackgroundImages() as
413// a hint to determine whether this accessible color scheme should
414// be used by default.
415//
416//
417// -- Robert Knight <robertknight@gmail.com> 21/07/2007
418//
419AccessibleColorScheme::AccessibleColorScheme()
420 : ColorScheme()
421{
422#if 0
423// It's not finished in konsole and it breaks Qt4 compilation as well
424 // basic attributes
425 setName("accessible");
426 setDescription(QObject::tr("Accessible Color Scheme"));
427
428 // setup colors
429 const int ColorRoleCount = 8;
430
431 const KColorScheme colorScheme(QPalette::Active);
432
433 QBrush colors[ColorRoleCount] =
434 {
435 colorScheme.foreground( colorScheme.NormalText ),
436 colorScheme.background( colorScheme.NormalBackground ),
437
438 colorScheme.foreground( colorScheme.InactiveText ),
439 colorScheme.foreground( colorScheme.ActiveText ),
440 colorScheme.foreground( colorScheme.LinkText ),
441 colorScheme.foreground( colorScheme.VisitedText ),
442 colorScheme.foreground( colorScheme.NegativeText ),
443 colorScheme.foreground( colorScheme.NeutralText )
444 };
445
446 for ( int i = 0 ; i < TABLE_COLORS ; i++ )
447 {
448 ColorEntry entry;
449 entry.color = colors[ i % ColorRoleCount ].color();
450
451 setColorTableEntry( i , entry );
452 }
453#endif
454}
455
456KDE3ColorSchemeReader::KDE3ColorSchemeReader( QIODevice* device ) :
457 _device(device)
458{
459}
460ColorScheme* KDE3ColorSchemeReader::read()
461{
462 Q_ASSERT( _device->openMode() == QIODevice::ReadOnly ||
463 _device->openMode() == QIODevice::ReadWrite );
464
465 ColorScheme* scheme = new ColorScheme();
466
467 QRegExp comment("#.*$");
468 while ( !_device->atEnd() )
469 {
470 QString line(_device->readLine());
471 line.remove(comment);
472 line = line.simplified();
473
474 if ( line.isEmpty() )
475 continue;
476
477 if ( line.startsWith(QLatin1String("color")) )
478 {
479 if (!readColorLine(line,scheme))
480 qDebug() << "Failed to read KDE 3 color scheme line" << line;
481 }
482 else if ( line.startsWith(QLatin1String("title")) )
483 {
484 if (!readTitleLine(line,scheme))
485 qDebug() << "Failed to read KDE 3 color scheme title line" << line;
486 }
487 else
488 {
489 qDebug() << "KDE 3 color scheme contains an unsupported feature, '" <<
490 line << "'";
491 }
492 }
493
494 return scheme;
495}
496bool KDE3ColorSchemeReader::readColorLine(const QString& line,ColorScheme* scheme)
497{
498 QStringList list = line.split(QChar(' '));
499
500 if (list.count() != 7)
501 return false;
502 if (list.first() != "color")
503 return false;
504
505 int index = list[1].toInt();
506 int red = list[2].toInt();
507 int green = list[3].toInt();
508 int blue = list[4].toInt();
509 int transparent = list[5].toInt();
510 int bold = list[6].toInt();
511
512 const int MAX_COLOR_VALUE = 255;
513
514 if( (index < 0 || index >= TABLE_COLORS )
515 || (red < 0 || red > MAX_COLOR_VALUE )
516 || (blue < 0 || blue > MAX_COLOR_VALUE )
517 || (green < 0 || green > MAX_COLOR_VALUE )
518 || (transparent != 0 && transparent != 1 )
519 || (bold != 0 && bold != 1) )
520 return false;
521
522 ColorEntry entry;
523 entry.color = QColor(red,green,blue);
524 entry.transparent = ( transparent != 0 );
525 entry.fontWeight = ( bold != 0 ) ? ColorEntry::Bold : ColorEntry::UseCurrentFormat;
526
527 scheme->setColorTableEntry(index,entry);
528 return true;
529}
530bool KDE3ColorSchemeReader::readTitleLine(const QString& line,ColorScheme* scheme)
531{
532 if( !line.startsWith(QLatin1String("title")) )
533 return false;
534
535 int spacePos = line.indexOf(' ');
536 if( spacePos == -1 )
537 return false;
538
539 QString description = line.mid(spacePos+1);
540
541 scheme->setDescription(description.toUtf8());
542 return true;
543}
544ColorSchemeManager::ColorSchemeManager()
545 : _haveLoadedAll(false)
546{
547}
548ColorSchemeManager::~ColorSchemeManager()
549{
550 QHashIterator<QString,const ColorScheme*> iter(_colorSchemes);
551 while (iter.hasNext())
552 {
553 iter.next();
554 delete iter.value();
555 }
556}
557void ColorSchemeManager::loadAllColorSchemes()
558{
559 qDebug() << "loadAllColorSchemes";
560 int success = 0;
561 int failed = 0;
562
563 QList<QString> nativeColorSchemes = listColorSchemes();
564
565 QListIterator<QString> nativeIter(nativeColorSchemes);
566 while ( nativeIter.hasNext() )
567 {
568 if ( loadColorScheme( nativeIter.next() ) )
569 success++;
570 else
571 failed++;
572 }
573
574 QList<QString> kde3ColorSchemes = listKDE3ColorSchemes();
575 QListIterator<QString> kde3Iter(kde3ColorSchemes);
576 while ( kde3Iter.hasNext() )
577 {
578 if ( loadKDE3ColorScheme( kde3Iter.next() ) )
579 success++;
580 else
581 failed++;
582 }
583
584 if ( failed > 0 )
585 qDebug() << "failed to load " << failed << " color schemes.";
586
587 _haveLoadedAll = true;
588}
589QList<const ColorScheme*> ColorSchemeManager::allColorSchemes()
590{
591 if ( !_haveLoadedAll )
592 {
593 loadAllColorSchemes();
594 }
595
596 return _colorSchemes.values();
597}
598bool ColorSchemeManager::loadKDE3ColorScheme(const QString& filePath)
599{
600 QFile file(filePath);
601 if (!filePath.endsWith(QLatin1String(".schema")) || !file.open(QIODevice::ReadOnly))
602 return false;
603
604 KDE3ColorSchemeReader reader(&file);
605 ColorScheme* scheme = reader.read();
606 scheme->setName(QFileInfo(file).baseName());
607 file.close();
608
609 if (scheme->name().isEmpty())
610 {
611 qDebug() << "color scheme name is not valid.";
612 delete scheme;
613 return false;
614 }
615
616 QFileInfo info(filePath);
617
618 if ( !_colorSchemes.contains(info.baseName()) )
619 _colorSchemes.insert(scheme->name(),scheme);
620 else
621 {
622 qDebug() << "color scheme with name" << scheme->name() << "has already been" <<
623 "found, ignoring.";
624 delete scheme;
625 }
626
627 return true;
628}
629#if 0
630void ColorSchemeManager::addColorScheme(ColorScheme* scheme)
631{
632 _colorSchemes.insert(scheme->name(),scheme);
633
634 // save changes to disk
635 QString path = KGlobal::dirs()->saveLocation("data","konsole/") + scheme->name() + ".colorscheme";
636 KConfig config(path , KConfig::NoGlobals);
637
638 scheme->write(config);
639}
640#endif
641bool ColorSchemeManager::loadColorScheme(const QString& filePath)
642{
643 if ( !filePath.endsWith(QLatin1String(".colorscheme")) || !QFile::exists(filePath) )
644 return false;
645
646 QFileInfo info(filePath);
647
648 ColorScheme* scheme = new ColorScheme();
649 scheme->setName(info.baseName());
650 scheme->read(filePath);
651
652 if (scheme->name().isEmpty())
653 {
654 qDebug() << "Color scheme in" << filePath << "does not have a valid name and was not loaded.";
655 delete scheme;
656 return false;
657 }
658
659 if ( !_colorSchemes.contains(info.baseName()) )
660 {
661 _colorSchemes.insert(scheme->name(),scheme);
662 }
663 else
664 {
665 qDebug() << "color scheme with name" << scheme->name() << "has already been" <<
666 "found, ignoring.";
667
668 delete scheme;
669 }
670
671 return true;
672}
673QList<QString> ColorSchemeManager::listKDE3ColorSchemes()
674{
675 QString dname(get_color_schemes_dir());
676 QDir dir(dname);
677 QStringList filters;
678 filters << "*.schema";
679 dir.setNameFilters(filters);
680 QStringList list = dir.entryList(filters);
681 QStringList ret;
682 foreach(QString i, list)
683 ret << dname + "/" + i;
684 return ret;
685 //return KGlobal::dirs()->findAllResources("data",
686 // "konsole/*.schema",
687 // KStandardDirs::NoDuplicates);
688 //
689}
690QList<QString> ColorSchemeManager::listColorSchemes()
691{
692 QString dname(get_color_schemes_dir());
693 QDir dir(dname);
694 QStringList filters;
695 filters << "*.colorscheme";
696 dir.setNameFilters(filters);
697 QStringList list = dir.entryList(filters);
698 QStringList ret;
699 foreach(QString i, list)
700 ret << dname + "/" + i;
701 return ret;
702// return KGlobal::dirs()->findAllResources("data",
703// "konsole/*.colorscheme",
704// KStandardDirs::NoDuplicates);
705}
706const ColorScheme ColorSchemeManager::_defaultColorScheme;
707const ColorScheme* ColorSchemeManager::defaultColorScheme() const
708{
709 return &_defaultColorScheme;
710}
711bool ColorSchemeManager::deleteColorScheme(const QString& name)
712{
713 Q_ASSERT( _colorSchemes.contains(name) );
714
715 // lookup the path and delete
716 QString path = findColorSchemePath(name);
717 if ( QFile::remove(path) )
718 {
719 _colorSchemes.remove(name);
720 return true;
721 }
722 else
723 {
724 qDebug() << "Failed to remove color scheme -" << path;
725 return false;
726 }
727}
728QString ColorSchemeManager::findColorSchemePath(const QString& name) const
729{
730// QString path = KStandardDirs::locate("data","konsole/"+name+".colorscheme");
731 QString path(get_color_schemes_dir() + "/"+ name + ".colorscheme");
732 if ( !path.isEmpty() )
733 return path;
734
735 //path = KStandardDirs::locate("data","konsole/"+name+".schema");
736 path = get_color_schemes_dir() + "/"+ name + ".schema";
737
738 return path;
739}
740const ColorScheme* ColorSchemeManager::findColorScheme(const QString& name)
741{
742 if ( name.isEmpty() )
743 return defaultColorScheme();
744
745 if ( _colorSchemes.contains(name) )
746 return _colorSchemes[name];
747 else
748 {
749 // look for this color scheme
750 QString path = findColorSchemePath(name);
751 if ( !path.isEmpty() && loadColorScheme(path) )
752 {
753 return findColorScheme(name);
754 }
755 else
756 {
757 if (!path.isEmpty() && loadKDE3ColorScheme(path))
758 return findColorScheme(name);
759 }
760
761 qDebug() << "Could not find color scheme - " << name;
762
763 return 0;
764 }
765}
766
767ColorSchemeManager* ColorSchemeManager::theColorSchemeManager = 0;
768//K_GLOBAL_STATIC( ColorSchemeManager , theColorSchemeManager )
769ColorSchemeManager* ColorSchemeManager::instance()
770{
771 if (! theColorSchemeManager)
772 theColorSchemeManager = new ColorSchemeManager();
773 return theColorSchemeManager;
774}
0775
=== added file 'src/ColorScheme.h'
--- src/ColorScheme.h 1970-01-01 00:00:00 +0000
+++ src/ColorScheme.h 2017-09-09 05:25:54 +0000
@@ -0,0 +1,342 @@
1/*
2 This source file is part of Konsole, a terminal emulator.
3
4 Copyright 2007-2008 by Robert Knight <robertknight@gmail.com>
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20*/
21
22#ifndef COLORSCHEME_H
23#define COLORSCHEME_H
24
25// Qt
26#include <QtCore/QHash>
27#include <QtCore/QList>
28#include <QtCore/QMetaType>
29#include <QtCore/QIODevice>
30#include <QtCore/QSet>
31#include <QSettings>
32
33// Konsole
34#include "CharacterColor.h"
35
36class QIODevice;
37//class KConfig;
38
39
40/**
41 * Represents a color scheme for a terminal display.
42 *
43 * The color scheme includes the palette of colors used to draw the text and character backgrounds
44 * in the display and the opacity level of the display background.
45 */
46class ColorScheme
47{
48public:
49 /**
50 * Constructs a new color scheme which is initialised to the default color set
51 * for Konsole.
52 */
53 ColorScheme();
54 ColorScheme(const ColorScheme& other);
55 ~ColorScheme();
56
57 /** Sets the descriptive name of the color scheme. */
58 void setDescription(const QString& description);
59 /** Returns the descriptive name of the color scheme. */
60 QString description() const;
61
62 /** Sets the name of the color scheme */
63 void setName(const QString& name);
64 /** Returns the name of the color scheme */
65 QString name() const;
66
67#if 0
68// Implemented upstream - in user apps
69 /** Reads the color scheme from the specified configuration source */
70 void read(KConfig& config);
71 /** Writes the color scheme to the specified configuration source */
72 void write(KConfig& config) const;
73#endif
74 void read(const QString & filename);
75
76 /** Sets a single entry within the color palette. */
77 void setColorTableEntry(int index , const ColorEntry& entry);
78
79 /**
80 * Copies the color entries which form the palette for this color scheme
81 * into @p table. @p table should be an array with TABLE_COLORS entries.
82 *
83 * @param table Array into which the color entries for this color scheme
84 * are copied.
85 * @param randomSeed Color schemes may allow certain colors in their
86 * palette to be randomized. The seed is used to pick the random color.
87 */
88 void getColorTable(ColorEntry* table, uint randomSeed = 0) const;
89
90 /**
91 * Retrieves a single color entry from the table.
92 *
93 * See getColorTable()
94 */
95 ColorEntry colorEntry(int index , uint randomSeed = 0) const;
96
97 /**
98 * Convenience method. Returns the
99 * foreground color for this scheme,
100 * this is the primary color used to draw the
101 * text in this scheme.
102 */
103 QColor foregroundColor() const;
104 /**
105 * Convenience method. Returns the background color for
106 * this scheme, this is the primary color used to
107 * draw the terminal background in this scheme.
108 */
109 QColor backgroundColor() const;
110
111 /**
112 * Returns true if this color scheme has a dark background.
113 * The background color is said to be dark if it has a value of less than 127
114 * in the HSV color space.
115 */
116 bool hasDarkBackground() const;
117
118 /**
119 * Sets the opacity level of the display background. @p opacity ranges
120 * between 0 (completely transparent background) and 1 (completely
121 * opaque background).
122 *
123 * Defaults to 1.
124 *
125 * TODO: More documentation
126 */
127 void setOpacity(qreal opacity);
128 /**
129 * Returns the opacity level for this color scheme, see setOpacity()
130 * TODO: More documentation
131 */
132 qreal opacity() const;
133
134 /**
135 * Enables randomization of the background color. This will cause
136 * the palette returned by getColorTable() and colorEntry() to
137 * be adjusted depending on the value of the random seed argument
138 * to them.
139 */
140 void setRandomizedBackgroundColor(bool randomize);
141
142 /** Returns true if the background color is randomized. */
143 bool randomizedBackgroundColor() const;
144
145 static QString colorNameForIndex(int index);
146 static QString translatedColorNameForIndex(int index);
147
148private:
149 // specifies how much a particular color can be randomized by
150 class RandomizationRange
151 {
152 public:
153 RandomizationRange() : hue(0) , saturation(0) , value(0) {}
154
155 bool isNull() const
156 {
157 return ( hue == 0 && saturation == 0 && value == 0 );
158 }
159
160 quint16 hue;
161 quint8 saturation;
162 quint8 value;
163 };
164
165 // returns the active color table. if none has been set specifically,
166 // this is the default color table.
167 const ColorEntry* colorTable() const;
168
169#if 0
170// implemented upstream - user apps
171 // reads a single colour entry from a KConfig source
172 // and sets the palette entry at 'index' to the entry read.
173 void readColorEntry(KConfig& config , int index);
174 // writes a single colour entry to a KConfig source
175 void writeColorEntry(KConfig& config , const QString& colorName, const ColorEntry& entry,const RandomizationRange& range) const;
176#endif
177 void readColorEntry(QSettings *s, int index);
178
179 // sets the amount of randomization allowed for a particular color
180 // in the palette. creates the randomization table if
181 // it does not already exist
182 void setRandomizationRange( int index , quint16 hue , quint8 saturation , quint8 value );
183
184 QString _description;
185 QString _name;
186 qreal _opacity;
187 ColorEntry* _table; // pointer to custom color table or 0 if the default
188 // color scheme is being used
189
190
191 static const quint16 MAX_HUE = 340;
192
193 RandomizationRange* _randomTable; // pointer to randomization table or 0
194 // if no colors in the color scheme support
195 // randomization
196
197 static const char* const colorNames[TABLE_COLORS];
198 static const char* const translatedColorNames[TABLE_COLORS];
199
200 static const ColorEntry defaultTable[]; // table of default color entries
201};
202
203/**
204 * A color scheme which uses colors from the standard KDE color palette.
205 *
206 * This is designed primarily for the benefit of users who are using specially
207 * designed colors.
208 *
209 * TODO Implement and make it the default on systems with specialized KDE
210 * color schemes.
211 */
212class AccessibleColorScheme : public ColorScheme
213{
214public:
215 AccessibleColorScheme();
216};
217
218/**
219 * Reads a color scheme stored in the .schema format used in the KDE 3 incarnation
220 * of Konsole
221 *
222 * Only the basic essentials ( title and color palette entries ) are currently
223 * supported. Additional options such as background image and background
224 * blend colors are ignored.
225 */
226class KDE3ColorSchemeReader
227{
228public:
229 /**
230 * Constructs a new reader which reads from the specified device.
231 * The device should be open in read-only mode.
232 */
233 KDE3ColorSchemeReader( QIODevice* device );
234
235 /**
236 * Reads and parses the contents of the .schema file from the input
237 * device and returns the ColorScheme defined within it.
238 *
239 * Returns a null pointer if an error occurs whilst parsing
240 * the contents of the file.
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches