1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
-- Example file with lots of options.
-- You can test with with this command:
-- cd ./etc && ../src/termit --init ../doc/rc.lua.example
colormaps = require("termit.colormaps")
utils = require("termit.utils")
defaults = {}
defaults.windowTitle = 'Termit'
defaults.startMaximized = true
defaults.hideTitlebarWhenMaximized = true
defaults.tabName = 'Terminal'
defaults.encoding = 'UTF-8'
defaults.wordCharExceptions = '- .,_/'
defaults.font = 'Terminus 12'
--defaults.foregroundColor = 'gray'
--defaults.backgroundColor = 'black'
defaults.showScrollbar = true
defaults.hideSingleTab = false
defaults.hideTabbar = false
defaults.showBorder = true
defaults.hideMenubar = false
defaults.fillTabbar = true
defaults.scrollbackLines = 4096
defaults.geometry = '80x24'
defaults.allowChangingTitle = false
--defaults.backspaceBinding = 'AsciiBksp'
--defaults.deleteBinding = 'AsciiDel'
defaults.cursorBlinkMode = 'BlinkOff'
defaults.cursorShape = 'Ibeam'
defaults.tabPos = 'Right'
defaults.setStatusbar = function (tabInd)
tab = tabs[tabInd]
if tab then
return tab.encoding..' Bksp: '..tab.backspaceBinding..' Del: '..tab.deleteBinding
end
return ''
end
defaults.colormap = colormaps.delicate
defaults.matches = {['http[-:/.\\w]+'] = function (url) print('Matching url: '..url) end}
defaults.tabs = {{title = 'Test new tab 1'; workingDir = '/tmp'};
{title = 'Test new tab 2'; workingDir = '/tmp'}}
setOptions(defaults)
bindKey('Ctrl-Page_Up', prevTab)
bindKey('Ctrl-Page_Down', nextTab)
bindKey('Ctrl-F', findDlg)
bindKey('Ctrl-2', function () print('Hello2!') end)
bindKey('Ctrl-3', function () print('Hello3!') end)
bindKey('Ctrl-3', nil) -- remove previous binding
-- don't close tab with Ctrl-w, use CtrlShift-w
bindKey('Ctrl-w', nil)
bindKey('CtrlShift-w', closeTab)
setKbPolicy('keycode')
bindMouse('DoubleClick', openTab)
--
userMenu = {}
table.insert(userMenu, {name='Close tab', action=closeTab})
table.insert(userMenu, {name='New tab name', action=function () setTabTitle('New tab name') end})
mi = {}
mi.name = 'Zsh tab'
mi.action = function ()
tabInfo = {}
tabInfo.title = 'Zsh tab'
tabInfo.command = 'zsh'
tabInfo.encoding = 'UTF-8'
tabInfo.workingDir = '/tmp'
tabInfo.backspaceBinding = 'AsciiBksp'
tabInfo.deleteBinding = 'EraseDel'
openTab(tabInfo)
end
table.insert(userMenu, mi)
table.insert(userMenu, {name='set red color', action=function () setTabForegroundColor('red') end})
table.insert(userMenu, {name='Reconfigure', action=reconfigure, accel='Ctrl-r'})
table.insert(userMenu, {name='Selection', action=function () print(selection()) end})
table.insert(userMenu, {name='dumpAllRows', action=function () forEachRow(print) end})
table.insert(userMenu, {name='dumpVisibleRowsToFile',
action=function () utils.dumpToFile(forEachVisibleRow, '/tmp/termit.dump') end})
table.insert(userMenu, {name='findNext', action=findNext, accel='Alt-n'})
table.insert(userMenu, {name='findPrev', action=findPrev, accel='Alt-p'})
table.insert(userMenu, {name='new colormap', action=function () setColormap(colormaps.mikado) end})
table.insert(userMenu, {name='toggle menubar', action=function () toggleMenubar() end})
table.insert(userMenu, {name='toggle tabbar', action=function () toggleTabbar() end})
mi = {}
mi.name = 'Get tab info'
mi.action = function ()
tab = tabs[currentTabIndex()]
if tab then
utils.printTable(tab, ' ')
end
end
table.insert(userMenu, mi)
function round(float)
return math.floor(float + .5)
end
function changeTabFontSize(delta)
tab = tabs[currentTabIndex()]
fontSize = round(tab.fontSize)
setTabFont(string.sub(tab.font, 1, string.find(tab.font, '%d+$') - 1)..(fontSize + delta))
end
table.insert(userMenu, {name='Increase font size', action=function () changeTabFontSize(1) end})
table.insert(userMenu, {name='Decrease font size', action=function () changeTabFontSize(-1) end})
table.insert(userMenu, {name='feed example', action=function () feed('example') end})
table.insert(userMenu, {name='feedChild example', action=function () feedChild('date\n') end})
table.insert(userMenu, {name='move tab left', action=function () setTabPos(currentTabIndex() - 1) end})
table.insert(userMenu, {name='move tab right', action=function () setTabPos(currentTabIndex() + 1) end})
table.insert(userMenu, {name='User quit', action=quit})
addMenu(userMenu, "User menu")
addPopupMenu(userMenu, "User menu")
addMenu(utils.encMenu(), "Encodings")
addPopupMenu(utils.encMenu(), "Encodings")
|