summaryrefslogtreecommitdiff
path: root/share/kak/kakrc
blob: 7a9f1692cc4b956cf897e9160a7d41b4ffa8a395 (plain)
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
def -params 1 -docstring "colorscheme <name>: enable named colorscheme" \
  -shell-candidates %{
      localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak
      for col in ${kak_runtime}/colors/*.kak ${localconfdir}/colors/*.kak; do
          candidate=$(basename "${col}" .kak)
          case ${candidate} in
             \**) ;;
             *) echo ${candidate} ;;
          esac
      done
  } \
  colorscheme %{ %sh{
    localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak
    if [ $# -eq 1 ]; then
        if [ -f "${localconfdir}/colors/$1.kak" ];then
            echo "source '${localconfdir}/colors/$1.kak'"
        else
            echo "source '${kak_runtime}/colors/$1.kak'"
        fi
    else
        echo "echo -color Error 'Usage: colorscheme <scheme name>'"
    fi
}}

%sh{
    autoload_directory() {
        find -L "$1" -type f -name '*\.kak' \
            -exec printf 'try %%{ source "%s" } catch %%{ echo -debug Autoload: could not load "%s" }\n' '{}' '{}' \;
    }

    localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak

    echo "colorscheme default"

    if [ -d "${localconfdir}/autoload" ]; then
        autoload_directory ${localconfdir}/autoload
    elif [ -d "${kak_runtime}/autoload" ]; then
        autoload_directory ${kak_runtime}/autoload
    fi

    if [ -f "${kak_runtime}/kakrc.local" ]; then
        echo "source '${kak_runtime}/kakrc.local'"
    fi

    if [ -f "${localconfdir}/kakrc" ]; then
        echo "source '${localconfdir}/kakrc'"
    fi
}