aboutsummaryrefslogtreecommitdiff
path: root/home-manager/tests/modules/programs/tmux
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/tests/modules/programs/tmux')
-rw-r--r--home-manager/tests/modules/programs/tmux/default.nix7
-rw-r--r--home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.conf31
-rw-r--r--home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.nix28
-rw-r--r--home-manager/tests/modules/programs/tmux/emacs-with-plugins.conf54
-rw-r--r--home-manager/tests/modules/programs/tmux/emacs-with-plugins.nix41
-rw-r--r--home-manager/tests/modules/programs/tmux/hm-session-vars.sh5
-rw-r--r--home-manager/tests/modules/programs/tmux/not-enabled.nix13
-rw-r--r--home-manager/tests/modules/programs/tmux/secure-socket-enabled.nix17
-rw-r--r--home-manager/tests/modules/programs/tmux/vi-all-true.conf31
-rw-r--r--home-manager/tests/modules/programs/tmux/vi-all-true.nix30
10 files changed, 257 insertions, 0 deletions
diff --git a/home-manager/tests/modules/programs/tmux/default.nix b/home-manager/tests/modules/programs/tmux/default.nix
new file mode 100644
index 00000000000..d4501c60981
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/default.nix
@@ -0,0 +1,7 @@
+{
+ tmux-emacs-with-plugins = ./emacs-with-plugins.nix;
+ tmux-not-enabled = ./not-enabled.nix;
+ tmux-vi-all-true = ./vi-all-true.nix;
+ tmux-secure-socket-enabled = ./secure-socket-enabled.nix;
+ tmux-disable-confirmation-prompt = ./disable-confirmation-prompt.nix;
+}
diff --git a/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.conf b/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.conf
new file mode 100644
index 00000000000..b599e603e4a
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.conf
@@ -0,0 +1,31 @@
+# ============================================= #
+# Start with defaults from the Sensible plugin #
+# --------------------------------------------- #
+run-shell @sensible_rtp@
+# ============================================= #
+
+set -g default-terminal "screen"
+set -g base-index 0
+setw -g pane-base-index 0
+
+
+
+
+
+set -g status-keys emacs
+set -g mode-keys emacs
+
+
+
+
+
+bind-key & kill-window
+bind-key x kill-pane
+
+
+setw -g aggressive-resize off
+setw -g clock-mode-style 12
+set -s escape-time 500
+set -g history-limit 2000
+
+
diff --git a/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.nix b/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.nix
new file mode 100644
index 00000000000..82c53438b00
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/disable-confirmation-prompt.nix
@@ -0,0 +1,28 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ substituteExpected = path: pkgs.substituteAll {
+ src = path;
+
+ sensible_rtp = pkgs.tmuxPlugins.sensible.rtp;
+ };
+
+in
+
+{
+ config = {
+ programs.tmux = {
+ enable = true;
+ disableConfirmationPrompt = true;
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.tmux.conf
+ assertFileContent home-files/.tmux.conf \
+ ${substituteExpected ./disable-confirmation-prompt.conf}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/programs/tmux/emacs-with-plugins.conf b/home-manager/tests/modules/programs/tmux/emacs-with-plugins.conf
new file mode 100644
index 00000000000..b047c97a766
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/emacs-with-plugins.conf
@@ -0,0 +1,54 @@
+# ============================================= #
+# Start with defaults from the Sensible plugin #
+# --------------------------------------------- #
+run-shell @tmuxplugin_sensible_rtp@
+# ============================================= #
+
+set -g default-terminal "screen"
+set -g base-index 0
+setw -g pane-base-index 0
+
+new-session
+
+bind v split-window -h
+bind s split-window -v
+
+
+set -g status-keys emacs
+set -g mode-keys emacs
+
+
+
+
+
+
+
+setw -g aggressive-resize on
+setw -g clock-mode-style 24
+set -s escape-time 500
+set -g history-limit 2000
+
+
+
+# ============================================= #
+# Load plugins with Home Manager #
+# --------------------------------------------- #
+
+# tmuxplugin-logging
+# ---------------------
+
+run-shell @tmuxplugin_logging@/share/tmux-plugins/logging/logging.tmux
+
+
+# tmuxplugin-prefix-highlight
+# ---------------------
+
+run-shell @tmuxplugin_prefix_highlight@/share/tmux-plugins/prefix-highlight/prefix_highlight.tmux
+
+
+# tmuxplugin-fzf-tmux-url
+# ---------------------
+
+run-shell @tmuxplugin_fzf_tmux_url@/share/tmux-plugins/fzf-tmux-url/fzf-url.tmux
+
+# ============================================= #
diff --git a/home-manager/tests/modules/programs/tmux/emacs-with-plugins.nix b/home-manager/tests/modules/programs/tmux/emacs-with-plugins.nix
new file mode 100644
index 00000000000..5e147b7290e
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/emacs-with-plugins.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ substituteExpected = path: pkgs.substituteAll {
+ src = path;
+
+ tmuxplugin_fzf_tmux_url = pkgs.tmuxPlugins.fzf-tmux-url;
+ tmuxplugin_logging = pkgs.tmuxPlugins.logging;
+ tmuxplugin_prefix_highlight = pkgs.tmuxPlugins.prefix-highlight;
+ tmuxplugin_sensible_rtp = pkgs.tmuxPlugins.sensible.rtp;
+ };
+
+in
+
+{
+ config = {
+ programs.tmux = {
+ aggressiveResize = true;
+ clock24 = true;
+ enable = true;
+ keyMode = "emacs";
+ newSession = true;
+ reverseSplit = true;
+
+ plugins = with pkgs.tmuxPlugins; [
+ logging
+ prefix-highlight
+ fzf-tmux-url
+ ];
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.tmux.conf
+ assertFileContent home-files/.tmux.conf \
+ ${substituteExpected ./emacs-with-plugins.conf}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/programs/tmux/hm-session-vars.sh b/home-manager/tests/modules/programs/tmux/hm-session-vars.sh
new file mode 100644
index 00000000000..40d9c24b50d
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/hm-session-vars.sh
@@ -0,0 +1,5 @@
+# Only source this once.
+if [ -n "$__HM_SESS_VARS_SOURCED" ]; then return; fi
+export __HM_SESS_VARS_SOURCED=1
+
+export TMUX_TMPDIR="${XDG_RUNTIME_DIR:-"/run/user/\$(id -u)"}"
diff --git a/home-manager/tests/modules/programs/tmux/not-enabled.nix b/home-manager/tests/modules/programs/tmux/not-enabled.nix
new file mode 100644
index 00000000000..b7c675a83a2
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/not-enabled.nix
@@ -0,0 +1,13 @@
+{ config, lib, ... }:
+
+with lib;
+
+{
+ config = {
+ programs.tmux = { enable = false; };
+
+ nmt.script = ''
+ assertPathNotExists home-files/.tmux.conf
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/programs/tmux/secure-socket-enabled.nix b/home-manager/tests/modules/programs/tmux/secure-socket-enabled.nix
new file mode 100644
index 00000000000..34e9129c5a4
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/secure-socket-enabled.nix
@@ -0,0 +1,17 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ programs.tmux = {
+ enable = true;
+ secureSocket = true;
+ };
+
+ nmt.script = ''
+ assertFileExists home-path/etc/profile.d/hm-session-vars.sh
+ assertFileContent home-path/etc/profile.d/hm-session-vars.sh ${./hm-session-vars.sh}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/programs/tmux/vi-all-true.conf b/home-manager/tests/modules/programs/tmux/vi-all-true.conf
new file mode 100644
index 00000000000..08e37e19b97
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/vi-all-true.conf
@@ -0,0 +1,31 @@
+# ============================================= #
+# Start with defaults from the Sensible plugin #
+# --------------------------------------------- #
+run-shell @sensible_rtp@
+# ============================================= #
+
+set -g default-terminal "screen"
+set -g base-index 0
+setw -g pane-base-index 0
+
+new-session
+
+bind v split-window -h
+bind s split-window -v
+
+
+set -g status-keys vi
+set -g mode-keys vi
+
+
+
+
+
+
+
+setw -g aggressive-resize on
+setw -g clock-mode-style 24
+set -s escape-time 500
+set -g history-limit 2000
+
+
diff --git a/home-manager/tests/modules/programs/tmux/vi-all-true.nix b/home-manager/tests/modules/programs/tmux/vi-all-true.nix
new file mode 100644
index 00000000000..e88ed587c03
--- /dev/null
+++ b/home-manager/tests/modules/programs/tmux/vi-all-true.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ substituteExpected = path: pkgs.substituteAll {
+ src = path;
+
+ sensible_rtp = pkgs.tmuxPlugins.sensible.rtp;
+ };
+
+in {
+ config = {
+ programs.tmux = {
+ aggressiveResize = true;
+ clock24 = true;
+ enable = true;
+ keyMode = "vi";
+ newSession = true;
+ reverseSplit = true;
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.tmux.conf
+ assertFileContent home-files/.tmux.conf \
+ ${substituteExpected ./vi-all-true.conf}
+ '';
+ };
+}