| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- " MIT License. Copyright (c) 2017-2021 YoungHoon Rhiu et al.
- " vim: et ts=2 sts=2 sw=2
- scriptencoding utf-8
- if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM') && !has('nvim')
- finish
- endif
- function! airline#extensions#xkblayout#status()
- if exists('g:XkbSwitchLib')
- let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
- let keyboard_layout = get(split(keyboard_layout, '\.'), -1, '')
- elseif exists('*FcitxCurrentIMwithRime')
- let keyboard_layout = FcitxCurrentIMwithRime()
- elseif exists('*FcitxCurrentIM')
- let keyboard_layout = FcitxCurrentIM()
- elseif has('nvim')
- try
- let keyboard_layout = luaeval('require"ime".current()')
- catch /.*/
- try
- let keyboard_layout = luaeval('require"fcitx5-ui".displayCurrentIM()')
- catch /.*/
- let keyboard_layout = ''
- endtry
- endtry
- else
- let keyboard_layout = ''
- endif
- " substitute keyboard-us to us
- let keyboard_layout = substitute(keyboard_layout, 'keyboard-', '', 'g')
- let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
- if has_key(short_codes, keyboard_layout)
- let keyboard_layout = short_codes[keyboard_layout]
- endif
- return keyboard_layout
- endfunction
- function! airline#extensions#xkblayout#init(ext)
- call airline#parts#define_function('xkblayout', 'airline#extensions#xkblayout#status')
- endfunction
|