Update tako config
This commit is contained in:
parent
a9e6391d22
commit
6d7a22be91
2 changed files with 78 additions and 13 deletions
34
tako/completers/passget.tako
Normal file
34
tako/completers/passget.tako
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
from os.path import isdir, join
|
||||
|
||||
ROOT = __tako_env__.get('PASSWORD_STORE_DIR', $HOME + '/.password-store')
|
||||
SUFFIX = '.gpg'
|
||||
|
||||
def make_display(directory):
|
||||
def display(completion):
|
||||
if isdir(join(ROOT, directory, completion)):
|
||||
return completion + '/'
|
||||
if completion.endswith(SUFFIX):
|
||||
return join(directory, completion[:-len(SUFFIX)])
|
||||
return completion
|
||||
return display
|
||||
|
||||
def passget_completer(prefix, line, begidx, endidx, ctx):
|
||||
'''
|
||||
Completes with
|
||||
'''
|
||||
if not line.startswith('passget'): return {}
|
||||
|
||||
directory = ''
|
||||
|
||||
if '/' in prefix:
|
||||
pre_dir, pre = prefix.rsplit('/', 1)
|
||||
if isdir(join(ROOT, directory, pre_dir)):
|
||||
directory = join(directory, pre_dir)
|
||||
prefix = pre
|
||||
|
||||
completions = $(ls @(join(ROOT, directory)))
|
||||
|
||||
display = make_display(directory)
|
||||
return {display(i) for i in completions if i.startswith(prefix)}
|
||||
|
||||
completer add passget passget_completer
|
||||
|
|
@ -1,14 +1,43 @@
|
|||
import re
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
|
||||
def source_many(directory, predicate):
|
||||
for filename in listdir(directory):
|
||||
if not predicate(filename): continue
|
||||
source @(join(directory, filename))
|
||||
|
||||
is_tako = lambda filename: re.match('^.*\.tako', filename)
|
||||
source_many('/etc/profile.d', is_tako)
|
||||
source_many($HOME + '/.config/tako/completers', is_tako)
|
||||
|
||||
$TAKO_SETTINGS.auto_pushd = True
|
||||
|
||||
$WORKON_HOME = $HOME + '/.virtualenvs'
|
||||
$XDG_CONFIG_HOME = $HOME + '/.config'
|
||||
$SXHKD_SHELL = '/bin/sh'
|
||||
$EDITOR = 'emacs'
|
||||
$VISUAL = $EDITOR
|
||||
$PATH.insert(0, $HOME + '/bin')
|
||||
$PATH.insert(0, $HOME + '/.local/bin')
|
||||
|
||||
$LS_COLORS = $(dircolors @($HOME + '/.config/zsh/dircolors.256dark'))[0][len("'LS_COLORS="):-len("';")]
|
||||
|
||||
def _workon(args, stdin=None):
|
||||
if len(args) < 1:
|
||||
return 'Need name of virtualenv\n'
|
||||
source @('/'.join([$WORKON_HOME, args[0], 'bin/activate.tako']))
|
||||
source @('/'.join([$WORKON_HOME, args[0], 'bin/postactivate.tako']))
|
||||
|
||||
$TAKO_SETTINGS.aliases.update({
|
||||
'startx': 'ssh-agent startx ; vlock',
|
||||
'la': 'ls -a',
|
||||
'ls': 'ls --color=auto',
|
||||
'la': 'ls -A',
|
||||
'll': 'ls -l',
|
||||
'units': 'units --verbose',
|
||||
'trr': 'transmission-remote',
|
||||
'vol': 'pulseaudio-ctl set',
|
||||
'workon': _workon,
|
||||
})
|
||||
|
||||
if '256color' in $TERM:
|
||||
|
|
@ -48,19 +77,21 @@ def git_branch():
|
|||
|
||||
$TAKO_SETTINGS.prompt_fields['git_branch'] = git_branch
|
||||
|
||||
username = colorize('purple', '{user}')
|
||||
host = colorize('blue', '{hostname}')
|
||||
directory = colorize('green', '{cwd}')
|
||||
lbrkt = colorize('gray', '[')
|
||||
rbrkt = colorize('gray', ']')
|
||||
colon = colorize('gray', ':')
|
||||
def make_prompt():
|
||||
username = colorize('purple', '{user}')
|
||||
host = colorize('blue', '{hostname}')
|
||||
directory = colorize('green', '{cwd}')
|
||||
lbrkt = colorize('gray', '[')
|
||||
rbrkt = colorize('gray', ']')
|
||||
colon = colorize('gray', ':')
|
||||
|
||||
$TAKO_SETTINGS.prompt = lbrkt + colon.join([
|
||||
return lbrkt + colon.join([
|
||||
username,
|
||||
host,
|
||||
directory,
|
||||
]) + '{git_branch}' + rbrkt + '\n{prompt_end} '
|
||||
]) + '{git_branch}' + rbrkt + '\n{prompt_end} '
|
||||
|
||||
'{color_155}'
|
||||
$TAKO_SETTINGS.prompt = make_prompt()
|
||||
|
||||
$TAKO_SETTINGS.show_traceback = True
|
||||
$TAKO_SETTINGS.traceback_logfile = $HOME + '/tmp/tako.log'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue