mirror of
https://github.com/tmux-plugins/tmux-continuum.git
synced 2024-10-31 20:58:47 +00:00
initial stab at systemd support for tmux-continuum
This commit is contained in:
parent
15649e9d07
commit
05a4a827e5
@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
source "$CURRENT_DIR/scripts/helpers.sh"
|
source "$CURRENT_DIR/scripts/helpers.sh"
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
source "$CURRENT_DIR/helpers.sh"
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
@ -14,14 +16,22 @@ is_osx() {
|
|||||||
[ $(uname) == "Darwin" ]
|
[ $(uname) == "Darwin" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_systemd() {
|
||||||
|
[ $(ps -o comm= -p1) == 'systemd' ]
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
if is_tmux_automatic_start_enabled; then
|
if is_tmux_automatic_start_enabled; then
|
||||||
if is_osx; then
|
if is_osx; then
|
||||||
"$CURRENT_DIR/handle_tmux_automatic_start/osx_enable.sh"
|
"$CURRENT_DIR/handle_tmux_automatic_start/osx_enable.sh"
|
||||||
|
elif is_systemd; then
|
||||||
|
"$CURRENT_DIR/handle_tmux_automatic_start/systemd_enable.sh"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if is_osx; then
|
if is_osx; then
|
||||||
"$CURRENT_DIR/handle_tmux_automatic_start/osx_disable.sh"
|
"$CURRENT_DIR/handle_tmux_automatic_start/osx_disable.sh"
|
||||||
|
elif is_systemd; then
|
||||||
|
"$CURRENT_DIR/handle_tmux_automatic_start/systemd_disable.sh"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
10
scripts/handle_tmux_automatic_start/systemd_disable.sh
Executable file
10
scripts/handle_tmux_automatic_start/systemd_disable.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/../variables.sh"
|
||||||
|
|
||||||
|
main() {
|
||||||
|
systemctl --user disable ${systemd_service_name}
|
||||||
|
}
|
||||||
|
main
|
57
scripts/handle_tmux_automatic_start/systemd_enable.sh
Executable file
57
scripts/handle_tmux_automatic_start/systemd_enable.sh
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
CURRENT_DIR="$( dirname ${BASH_SOURCE[0]} )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/../helpers.sh"
|
||||||
|
source "$CURRENT_DIR/../variables.sh"
|
||||||
|
|
||||||
|
template() {
|
||||||
|
local tmux_start_script="$1"
|
||||||
|
shift
|
||||||
|
local options="$@"
|
||||||
|
local content=""
|
||||||
|
|
||||||
|
read -r -d '' content <<-EOF
|
||||||
|
[Unit]
|
||||||
|
Description=tmux default session (detached)
|
||||||
|
Documentation=man:tmux(1)
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=True
|
||||||
|
Environment=DISPLAY=:0
|
||||||
|
ExecStart=/usr/bin/tmux ${systemd_tmux_server_start_cmd}
|
||||||
|
ExecStartPost=/usr/bin/tmux run /home/peteches/.tmux/plugins/tmux-resurrect/scripts/restore.sh
|
||||||
|
|
||||||
|
ExecStop=/home/peteches/.tmux/plugins/tmux-resurrect/scripts/save.sh
|
||||||
|
ExecStop=/usr/bin/tmux kill-server
|
||||||
|
KillMode=none
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "$content"
|
||||||
|
}
|
||||||
|
|
||||||
|
systemd_tmux_is_enabled() {
|
||||||
|
systemctl --user is_enabled $(basename "${systemd_unit_file_path}") >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
enable_tmux_unit_on_boot() {
|
||||||
|
if ! systemd_tmux_is_enabled; then
|
||||||
|
systemctl --user enable ${systemd_service_name}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local options="$(get_tmux_option "$auto_start_config_option" "${auto_start_config_default}")"
|
||||||
|
local systemd_tmux_server_start_cmd="$(get_tmux_option "${systemd_tmux_server_start_cmd}" "${systemd_tmux_default_server_start_cmd}" )"
|
||||||
|
local tmux_start_script_path="${CURRENT_DIR}/linux_start_tmux.sh"
|
||||||
|
local systemd_unit_file=$(template "${tmux_start_script_path}" "${options}")
|
||||||
|
echo "$systemd_unit_file" > "${systemd_unit_file_path}"
|
||||||
|
enable_tmux_unit_on_boot
|
||||||
|
}
|
||||||
|
main
|
@ -32,3 +32,6 @@ status_script="#($CURRENT_DIR/scripts/continuum_status.sh)"
|
|||||||
status_on_style_wrap_option="@continuum-status-on-wrap-style" # example value: "#[fg=green]#{value}#[fg=white]"
|
status_on_style_wrap_option="@continuum-status-on-wrap-style" # example value: "#[fg=green]#{value}#[fg=white]"
|
||||||
status_off_style_wrap_option="@continuum-status-off-wrap-style" # example value: "#[fg=yellow,bold]#{value}#[fg=white,nobold]"
|
status_off_style_wrap_option="@continuum-status-off-wrap-style" # example value: "#[fg=yellow,bold]#{value}#[fg=white,nobold]"
|
||||||
status_wrap_string="\#{value}"
|
status_wrap_string="\#{value}"
|
||||||
|
|
||||||
|
systemd_service_name="tmux.service"
|
||||||
|
systemd_unit_file_path="$HOME/.config/systemd/user/${systemd_service_name}"
|
||||||
|
Loading…
Reference in New Issue
Block a user