{
  osConfig,
  inputs,
  pkgs,
  ...
}:
{
  home.sessionVariables.MULTIPLEXER = "zellij";
  persistDirs = [ "/.cache/zellij" ];
  programs.zellij = {
    enable = true;
    enableZshIntegration = true;
    settings = {
      pane_frames = false;
      show_startup_tips = false;
      show_release_notes = false;
    };
  };
  xdg.configFile."zellij/layouts/default.kdl".text = # kdl
    ''
      layout {
          default_tab_template {
              pane size=1 borderless=true {
                  plugin location="file:${
                    inputs.zjstatus.packages.${pkgs.stdenv.hostPlatform.system}.default
                  }/bin/zjstatus.wasm" {
                      format_left   "{mode} ${osConfig.hostname}"
                      format_center "{tabs}"
                      format_right  "{datetime}"
                      format_space  ""
                      format_hide_on_overlength "true"
                      format_precedence "lrc"

                      border_enabled  "false"
                      border_char     "─"
                      border_format   "#[fg=#6C7086]{char}"
                      border_position "top"

                      hide_frame_for_single_pane "false"

                      mode_default_to_mode "normal"
                      mode_normal  "#[bg=#89B4FA] {name} "
                      mode_locked  "#[bg=#f55e18] {name} "
                      mode_session "#[bg=#00ff00] {name} "

                      tab_normal   "#[fg=#6C7086] {index} "
                      tab_active   "#[fg=#9399B2,bold,italic] {index} "
                      tab_display_count         "3"  // limit to showing 3 tabs
                      tab_truncate_start_format "..."
                      tab_truncate_end_format   "..."

                      //TODO: disable if we are not on ssh
                      datetime        "#[fg=#6C7086,bold] {format}"
                      datetime_format "%H:%M:%S"
                      datetime_timezone "Asia/Singapore"
                  }
              }
              children
          }
      }
    '';
}
