k9sをDracula Theme対応した
Table of Contents
背景・動機
最近仕事でkubernetesを使う機会に恵まれた。 kubernetesを使うにあたって、モニタリングツールはk9sがデファクトのようなのでhome-managerを使って導入した。 「すべてのツールのカラーテーマはdracula themeに寄せる」という方針なので漏れなく対応した。
試したこと・やったこと
1. home-managerで導入
home-manager moduleはすでに用意されているのでenableするだけでよい。
C-c で閉じるよりも :q で閉じる方が直感的なので noExitOnCtrlC を有効化した。
https://github.com/nix-community/home-manager/blob/master/modules/programs/k9s.nix
{
programs.k9s = {
enable = true;
settings.k9s = {
noExitOnCtrlC = true;
};
};
}
2. dracula theme対応
k9sはskinという機能を用意しており、自前で用意したものを適用できる。 Claude Codeに必要なものを用意させた。
https://k9scli.io/topics/skins/
{
programs.k9s = {
settings.k9s = {
ui.skin = "dracula";
};
skins = {
dracula =
let
foreground = "#f8f8f2";
background = "#282a36";
current_line = "#44475a";
selection = "#44475a";
comment = "#6272a4";
cyan = "#8be9fd";
green = "#50fa7b";
orange = "#ffb86c";
pink = "#ff79c6";
purple = "#bd93f9";
red = "#ff5555";
yellow = "#f1fa8c";
in
{
k9s = {
body = {
fgColor = foreground;
bgColor = background;
logoColor = purple;
};
prompt = {
fgColor = foreground;
bgColor = background;
suggestColor = purple;
};
info = {
fgColor = pink;
sectionColor = foreground;
};
dialog = {
fgColor = foreground;
bgColor = background;
buttonFgColor = foreground;
buttonBgColor = purple;
buttonFocusFgColor = yellow;
buttonFocusBgColor = pink;
labelFgColor = orange;
fieldFgColor = foreground;
};
frame = {
border = {
fgColor = selection;
focusColor = current_line;
};
menu = {
fgColor = foreground;
keyColor = pink;
numKeyColor = pink;
};
crumbs = {
fgColor = foreground;
bgColor = current_line;
activeColor = current_line;
};
status = {
newColor = cyan;
modifyColor = purple;
addColor = green;
errorColor = red;
highlightColor = orange;
killColor = comment;
completedColor = comment;
};
title = {
fgColor = foreground;
bgColor = current_line;
highlightColor = orange;
counterColor = purple;
filterColor = pink;
};
};
views = {
charts = {
bgColor = "default";
defaultDialColors = [
purple
red
];
defaultChartColors = [
purple
red
];
};
table = {
fgColor = foreground;
bgColor = background;
header = {
fgColor = foreground;
bgColor = background;
sorterColor = cyan;
};
};
xray = {
fgColor = foreground;
bgColor = background;
cursorColor = current_line;
graphicColor = purple;
showIcons = false;
};
yaml = {
keyColor = pink;
colonColor = purple;
valueColor = foreground;
};
logs = {
fgColor = foreground;
bgColor = background;
indicator = {
fgColor = foreground;
bgColor = purple;
toggleOnColor = green;
toggleOffColor = cyan;
};
};
};
};
};
};
};
}
3. k9s起動する
無事反映されてることが確認できた。

得られた結果・所感
ドキュメント的に export K9S_SKIN="dracula" ですでに準備されてるものが反映されるのかなと思ったら全然そんなことなかった。
https://k9scli.io/topics/skins/
Lastly, you can completely override these settings in your shell via setting K9S_SKIN in the environment, e.g. export K9S_SKIN=“dracula”.
Claude Codeにthemeを書かせると簡単に欲しいものが出来あがるので便利。
今後の展開・検討事項
k9sの使い方がまだ分からないので使いこなしたい。