diff options
| author | Leander Scherer <leander@schererleander.de> | 2026-01-08 02:48:11 +0100 |
|---|---|---|
| committer | Leander Scherer <leander@schererleander.de> | 2026-01-08 19:08:12 +0100 |
| commit | 6174f3650cf42aaf008012e828d5a1f8e2ce037f (patch) | |
| tree | 9bbbd99680cd5adb56596a14734d4896bc6af733 /modules/users/cli | |
| parent | c582c4d0675aada46fa196b7af1941ed753d055f (diff) | |
refactor(modules): separate nixos/home-manager modules, use standard option conventions
Diffstat (limited to 'modules/users/cli')
| -rw-r--r-- | modules/users/cli/default.nix | 7 | ||||
| -rw-r--r-- | modules/users/cli/opencode/default.nix | 30 | ||||
| -rw-r--r-- | modules/users/cli/tmux/default.nix | 55 |
3 files changed, 92 insertions, 0 deletions
diff --git a/modules/users/cli/default.nix b/modules/users/cli/default.nix new file mode 100644 index 0000000..98fe1fb --- /dev/null +++ b/modules/users/cli/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + imports = [ + ./tmux + ./opencode + ]; +} diff --git a/modules/users/cli/opencode/default.nix b/modules/users/cli/opencode/default.nix new file mode 100644 index 0000000..8c1071d --- /dev/null +++ b/modules/users/cli/opencode/default.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + ... +}: +let + cfg = config.nx.cli.opencode; + inherit (lib) mkOption types mkIf; +in +{ + + options.nx.cli.opencode = { + enable = mkOption { + description = "opencode open source ai coding agent"; + type = types.bool; + default = false; + }; + }; + + config = mkIf cfg.enable { + programs.opencode = { + enable = true; + settings = { + theme = "system"; + share = "disabled"; + autoupdate = false; + }; + }; + }; +} diff --git a/modules/users/cli/tmux/default.nix b/modules/users/cli/tmux/default.nix new file mode 100644 index 0000000..9259c0b --- /dev/null +++ b/modules/users/cli/tmux/default.nix @@ -0,0 +1,55 @@ +{ + config, + pkgs, + lib, + ... +}: +let + inherit (lib) mkOption types mkIf; + cfg = config.nx.tmux; + +in +{ + options.nx.tmux = { + enable = mkOption { + description = "tmux"; + type = types.bool; + default = config.nx.terminal.multiplexer == "tmux"; + }; + }; + config = mkIf cfg.enable { + programs.tmux = { + enable = true; + keyMode = "vi"; + secureSocket = true; + shell = "${pkgs.${config.nx.terminal.defaultShell}}/bin/${config.nx.terminal.defaultShell}"; + terminal = "xterm-256color"; + extraConfig = '' + unbind C-b + set-option -g prefix C-a + bind-key C-a send-prefix + bind -n M-Left select-pane -L + bind -n M-Right select-pane -R + bind -n M-Up select-pane -U + bind -n M-Down select-pane -D + + # style + set -g status-position top + set -g status-justify absolute-centre + set -g status-style 'fg=color7 bg=default' + set -g status-right "" + # set -g status-right ' #(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)' + # set -g status-right "" + set -g status-left '#S' + set -g status-left-style 'fg=color8' + set -g status-right-length 0 + set -g status-left-length 100 + setw -g window-status-current-style 'fg=colour6 bg=default bold' + setw -g window-status-current-format '#I:#W ' + setw -g window-status-style 'fg=color8' + + set -g mouse on + ''; + }; + }; +} |
