Konsole now supports the xterm color palette
And apparently has for some time[1]. Thanks to Will Gray (graywh) for pointing this out to me. [1] http://websvn.kde.org/?revision=909719&view=revision)
This commit is contained in:
parent
6890d1ecf0
commit
4b6b1648d0
@ -25,7 +25,14 @@ function! csapprox#common#PaletteType()
|
||||
let type = 'xterm'
|
||||
endif
|
||||
elseif &term =~? '^konsole'
|
||||
let type = 'konsole'
|
||||
" Konsole only used its own palette up til KDE 4.2.0
|
||||
if executable('kde4-config') && system('kde4-config --kde-version') =~ '^4\.[10]\.'
|
||||
let type = 'konsole'
|
||||
elseif executable('kde-config') && system('kde-config --version') =~# 'KDE: 3\.'
|
||||
let type = 'konsole'
|
||||
else
|
||||
let type = 'xterm'
|
||||
endif
|
||||
elseif &term =~? '^eterm'
|
||||
let type = 'eterm'
|
||||
else
|
||||
|
@ -146,20 +146,41 @@ set to something that implies high color support. Possible choices include
|
||||
"xterm-256color" for 256 color support and "rxvt-unicode" for 88 color
|
||||
support.
|
||||
*csapprox-palettes*
|
||||
Also, there are three different 256 color cube palettes available and CSApprox
|
||||
has no way to tell which you're using unless $TERM is set to something that is
|
||||
specific to the terminal, like "konsole-256color" or "Eterm". Because of this, the
|
||||
most sane behavior is assuming the user is using the most popular palette,
|
||||
which is used by all but Konsole and Eterm, whenever $TERM is set to something
|
||||
generic like "xterm" or "screen". You can override this default, however -
|
||||
see |csapprox-configure|.
|
||||
Also, there are at least three different 256-color palettes in use. Nearly
|
||||
all terminals use an xterm-compatible palette, so most users need not concern
|
||||
themselves with this, with only two exceptions: Eterm uses a slightly
|
||||
different palette, and older Konsole (pre KDE 2.2.0) used a third palette.
|
||||
CSApprox has no reliable way to tell which palette your terminal uses, so it
|
||||
makes some educated guesses:
|
||||
|
||||
i) If vim thinks that there are 88 colors available, CSApprox will use the
|
||||
xterm/urxvt-compatible 88 color palette (I don't know of any other
|
||||
88 color palette in use anywhere).
|
||||
|
||||
ii) If $TERM starts with "Eterm", CSApprox will approximate based on the
|
||||
Eterm palette.
|
||||
|
||||
iii) If $TERM starts with "konsole", CSApprox will use the legacy Konsole
|
||||
palette if either "kde4-config --kde-version" or "kde-config --version"
|
||||
reports that the KDE version on the system is less than 4.2.0.
|
||||
Otherwise, it will use the xterm palette.
|
||||
|
||||
iv) If $TERM starts with "xterm" or "screen", then CSApprox looks for the
|
||||
vim variables "g:CSApprox_eterm" and "g:CSApprox_konsole".
|
||||
If g:CSApprox_eterm is true, CSApprox uses the Eterm palette.
|
||||
If g:CSApprox_konsole is true, CSApprox uses the old konsole palette.
|
||||
Otherwise, CSApprox uses the xterm palette.
|
||||
|
||||
v) For all other $TERM values, CSApprox uses the xterm palette.
|
||||
|
||||
*csapprox-terminal-example*
|
||||
To turn on high color support without fixing $TERM, you can change t_Co in
|
||||
your .vimrc, and set either CSApprox_konsole or CSApprox_eterm if appropriate.
|
||||
One way would be to put something like this into your |vimrc|:
|
||||
To turn on high color support despite an incorrect $TERM, you can override
|
||||
t_Co (the vim name for the terminfo setting defining how many colors are
|
||||
available) in your .vimrc, and set either CSApprox_konsole or CSApprox_eterm
|
||||
if appropriate. You could put something like this into your |vimrc|:
|
||||
>
|
||||
if (&term == 'xterm' || &term =~? '^screen') && hostname() == 'my-machine'
|
||||
" On my machine, I use Konsole with 256 color support
|
||||
" On my machine, I use an old Konsole with 256 color support
|
||||
set t_Co=256
|
||||
let g:CSApprox_konsole = 1
|
||||
endif
|
||||
@ -198,9 +219,9 @@ g:CSApprox_eterm *g:CSApprox_eterm*
|
||||
palette would be used. This also affects snapshotted schemes.
|
||||
|
||||
g:CSApprox_konsole *g:CSApprox_konsole*
|
||||
If set to a non-zero number, CSApprox will use the Konsole palette when
|
||||
'term' is set to "xterm" or begins with "screen". Otherwise, the xterm
|
||||
palette would be used. This also affects snapshotted schemes.
|
||||
If set to a non-zero number, CSApprox will use the old Konsole palette
|
||||
when 'term' is set to "xterm" or begins with "screen". Otherwise, the
|
||||
xterm palette would be used. This also affects snapshotted schemes.
|
||||
|
||||
g:CSApprox_attr_map *g:CSApprox_attr_map*
|
||||
Since some attributes (like 'guisp') can't be used in a terminal, and
|
||||
@ -501,10 +522,9 @@ iTerm (iTerm.app):
|
||||
*csapprox-konsole*
|
||||
Konsole (konsole):
|
||||
256 color palette
|
||||
Colors composed of: [ 0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF ]
|
||||
Same greyscales as xterm
|
||||
You should set the g:CSApprox_konsole variable unless $TERM begins with
|
||||
'konsole', case insensitive
|
||||
Colors used to be composed of: [ 0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF ]
|
||||
As of KDE 2.2.0, colors match the xterm palette
|
||||
Always used the same greyscales as xterm
|
||||
|
||||
*csapprox-eterm*
|
||||
eterm (Eterm):
|
||||
|
@ -783,6 +783,18 @@ function! s:CSApproxSnapshot(file, overwrite)
|
||||
let lines += [ ' command! -nargs=+ CSAHi exe "hi" <q-args>' ]
|
||||
let lines += [ 'endif' ]
|
||||
let lines += [ '' ]
|
||||
let lines += [ 'function! s:old_kde()' ]
|
||||
let lines += [ ' " Konsole only used its own palette up til KDE 4.2.0' ]
|
||||
let lines += [ " if executable('kde4-config') && system('kde4-config --kde-version') =~ '^4\.[10]\.'" ]
|
||||
let lines += [ ' return 1' ]
|
||||
let lines += [ " elseif executable('kde-config') && system('kde-config --version') =~# 'KDE: 3\.'" ]
|
||||
let lines += [ ' return 1' ]
|
||||
let lines += [ ' else' ]
|
||||
let lines += [ ' return 0' ]
|
||||
let lines += [ ' endif' ]
|
||||
let lines += [ 'endfunction' ]
|
||||
let lines += [ '' ]
|
||||
|
||||
|
||||
let lines += [ 'if 0' ]
|
||||
for round in [ 'konsole', 'eterm', 'xterm', 'urxvt' ]
|
||||
@ -807,11 +819,17 @@ function! s:CSApproxSnapshot(file, overwrite)
|
||||
call s:FixupGuiInfo(highlights)
|
||||
|
||||
if round == 'konsole' || round == 'eterm'
|
||||
if round == 'konsole'
|
||||
let term_matches_round = '(&term =~? "^konsole" && s:old_kde())'
|
||||
else
|
||||
let term_matches_round = '&term =~? "^' . round . '"'
|
||||
endif
|
||||
|
||||
let lines += [ 'elseif has("gui_running") || (&t_Co == ' . &t_Co
|
||||
\ . ' && (&term ==# "xterm" || &term =~# "^screen")'
|
||||
\ . ' && exists("g:CSApprox_' . round . '")'
|
||||
\ . ' && g:CSApprox_' . round . ')'
|
||||
\ . ' || &term =~? "^' . round . '"' ]
|
||||
\ . ' || ' . term_matches_round ]
|
||||
else
|
||||
let lines += [ 'elseif has("gui_running") || &t_Co == ' . &t_Co ]
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user