Releases: joshmedeski/sesh
Sesh v2, first beta release!
Sesh has been completely rewritten over the last few months! I'm not feature complete yet, but I'm ready for beta tests to help catch bugs and prepare for release.
Here is what's here:
- Completely rewritten codebase using the dependency injection pattern
- Simplified and more predictable and organized logic
- Automated package mocks using Mockery
Features completed so far:
sesh list
sesh connect
Features to complete:
sesh clone
- Icon support
What's changed?
- Dropped
startup_script
in favor ofstartup_command
-startup_script = "~/.config/sesh/scripts/node_dev"
+startup_command = "~/.config/sesh/scripts/node_dev"
Note: You'll need to make sure your script files are executable.
Please submit an GitHub issue or go to the linked discussion with any bugs, unexpected behavior, or requests as I finalize the v2 release, thanks!
v1.2.0
Connect no longer requires the argument to be wrapped in quotes, you can now pass as many arguments as you want and sesh will concatenate all of them together into one variable to determine the appropriate session. This is especially helpful when sesh list shows icons or a config session name includes a space.
Thanks for the contribution @kevinrobayna! 🎉
v1.1.1
v1.1.0
- Support absolute session config paths
- Support
~/
and~
as a session config path - Silently continue if the config file isn't found
v1.0.1
Sesh config options and more!
![SCR-20240328-rnuj](https://private-user-images.githubusercontent.com/2036594/317924959-35e6f0fe-4b1a-436b-a3e3-35181aa4df07.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzOTgxNTIsIm5iZiI6MTczOTM5Nzg1MiwicGF0aCI6Ii8yMDM2NTk0LzMxNzkyNDk1OS0zNWU2ZjBmZS00YjFhLTQzNmItYTNlMy0zNTE4MWFhNGRmMDcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMjIwNDEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzY3MjkwMTUyMWE4YTM5N2Q2MzVhZTAwZDhjZjMzMTdkNDg1M2VjNzRmNjk0MGQzMTIwNmY5MTNmMGU4M2E4OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.mQL-LdMcMpMcDeKuUSuDtPL4nNYmOLVpFryU2a_Jes0)
Hello, sesh has officially hit v1.0! 🎉
Thank you to all the contributors and community members that have helped test sesh for the past few months.
New Features
Import Additional Configurations
You can now import additional toml
files into the main file if you want to break up your configuration.
import = ["~/additional-config.toml"]
Default Session Configuration
You can now configure all session with a default command or script. It will execute that command after creating the session.
[default_session]
name = "dotfiles"
path = "~/code/dotfiles"
startup_command = "nvim -c ":Telescope find_files"
You can also write a script and execute it using the starup_script
. Note: You can only choose the startup script or startup command, they can't be used at the same time.
[default_session]
name = "dotfiles"
path = "~/code/dotfiles"
startup_script = "~/code/dotfiles/startup.sh"
Listing Configurations
Session configurations will now load by default if no flags are provided (the return after tmux sessions and before zoxide results). If you want to explicitly list them, you can use the -c
flag.
sesh list -c
Breaking Changes
Dropping [[startup_scripts]]
in place of [[session]]
-[[startup_scripts]]
-session_path = "~/c/joshmedeski.com"
-script_path = "~/. config/sesh/scripts/node_dev"
+[[session]]
+name = "joshmedeski.com"
+path = "~/c/joshmedeski.com"
+startup_script = "~/. config/sesh/scripts/node_dev"
Dropping default_startup_script
in place [default_session]
which supports startup_script
or startup_command
options
-default_startup_script = "~/.config/sesh/scripts/open_files"
+[default_session]
+startup_script = "~/.config/sesh/scripts/open_files"
v0.15.0
v0.14.0
- Sessions now support spaces in the path names or session names
- Make sure to update your fzf script to wrap the connect argument in quotes
bind-key "T" run-shell "sesh connect \"$(
sesh list -tz | fzf-tmux -p 55%,60% \
--no-sort --border-label ' sesh ' --prompt '⚡ ' \
--header ' ^a all ^t tmux ^x zoxide ^f find' \
--bind 'tab:down,btab:up' \
--bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list)' \
--bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t)' \
--bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z)' \
--bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)'
)\""
The important parts are \"$("
before the sesh list and )\""
after.