Are you using the latest version of tmuxp? Check tmuxp -V against
https://pypi.org/project/tmuxp/. If it's not the latest, consider updating, e.g.
pip install --user tmuxp.
Step 1: Provide a summary of your problem
We should be able to create windows without specifying the name.
Step 2: Provide tmuxp details
$ tmuxp debug-info
-------------------------
environment:
dist: Linux-6.9.7-amd64-x86_64-with-glibc2.38
arch: x86_64
uname: Linux; debian; 6.9.7-amd64
version: #1 SMP PREEMPT_DYNAMIC Debian 6.9.7-1 (2024-06-27)
-------------------------
python version: 3.12.4 (main, Jun 12 2024, 19:06:53) [GCC 13.2.0]
system PATH: /home/debian/.cargo/bin:/home/debian/.npm-packages/bin:/home/debian/.local/share/gem/ruby/3.1.0/bin:/home/debian/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
tmux version: 3.4
libtmux version: 0.37.0
tmuxp version: 1.47.0
tmux path: /usr/bin/tmux
tmuxp path: /usr/lib/python3/dist-packages/tmuxp
shell: /bin/bash
-------------------------
tmux sessions:
Default: 5 windows (created Sat Jun 29 15:15:18 2024) (attached)
tmux windows:
1: irc (1 panes) [110x32] [layout b0bd,110x32,0,0,0] @0
2: xmpp (1 panes) [110x32] [layout b0be,110x32,0,0,1] @1
3: rss- (1 panes) [110x32] [layout b0bf,110x32,0,0,2] @2
4: downloads (1 panes) [110x32] [layout b0c0,110x32,0,0,3] @3
5: sudo* (1 panes) [110x32] [layout b0c1,110x32,0,0,4] @4 (active)
tmux panes:
1: [110x32] [history 0/10000, 4430 bytes] %4 (active)
tmux global options:
activity-action other
assume-paste-time 1
base-index 1
bell-action any
default-command ''
default-shell /bin/bash
default-size 80x24
destroy-unattached off
detach-on-destroy on
display-panes-active-colour red
display-panes-colour blue
display-panes-time 1000
display-time 750
history-limit 10000
key-table root
lock-after-time 0
lock-command "lock -np"
message-command-style bg=black,fg=yellow
message-line 0
message-style bg=blue,fg=white
mouse on
prefix C-a
prefix2 None
renumber-windows on
repeat-time 500
set-titles off
set-titles-string "#S:#I:#W - \"#T\" #{session_alerts}"
silence-action other
status on
status-bg default
status-fg default
status-format[0] "#[align=left range=left #{E:status-left-style}]#[push-default]#{T;=/#{status-left-length}:status-left}#[pop-default]#[norange default]#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{E:window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-format}#[pop-default]#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{E:window-status-current-style},default},#{E:window-status-current-style},#{E:window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-current-format}#[pop-default]#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}#[nolist align=right range=right #{E:status-right-style}]#[push-default]#{T;=/#{status-right-length}:status-right}#[pop-default]#[norange default]"
status-format[1] "#[align=centre]#{P:#{?pane_active,#[reverse],}#{pane_index}[#{pane_width}x#{pane_height}]#[default] }"
status-interval 15
status-justify left
status-keys vi
status-left "#[fg=brightred][ #[fg=brightblue]#S #[fg=brightred]| "
status-left-length 13
status-left-style default
status-position bottom
status-right "#[fg=brightred]]"
status-right-length 40
status-right-style default
status-style bg=default,fg=white
update-environment[0] DISPLAY
update-environment[1] KRB5CCNAME
update-environment[2] SSH_ASKPASS
update-environment[3] SSH_AUTH_SOCK
update-environment[4] SSH_AGENT_PID
update-environment[5] SSH_CONNECTION
update-environment[6] WINDOWID
update-environment[7] XAUTHORITY
visual-activity off
visual-bell off
visual-silence off
word-separators "!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~"
tmux window options:
cursor-colour none
cursor-style default
menu-style default
menu-selected-style bg=yellow,fg=black
menu-border-style default
menu-border-lines single
aggressive-resize off
allow-passthrough off
allow-rename off
alternate-screen on
automatic-rename on
automatic-rename-format "#{?pane_in_mode,[tmux],#{pane_current_command}}#{?pane_dead,[dead],}"
clock-mode-colour blue
clock-mode-style 24
copy-mode-match-style bg=cyan,fg=black
copy-mode-current-match-style bg=magenta,fg=black
copy-mode-mark-style bg=red,fg=black
fill-character ''
main-pane-height 24
main-pane-width 80
mode-keys vi
mode-style bg=yellow,fg=black
monitor-activity off
monitor-bell on
monitor-silence 0
other-pane-height 0
other-pane-width 0
pane-active-border-style "#{?pane_in_mode,fg=yellow,#{?synchronize-panes,fg=red,fg=green}}"
pane-base-index 1
pane-border-format "#{?pane_active,#[reverse],}#{pane_index}#[default] \"#{pane_title}\""
pane-border-indicators colour
pane-border-lines single
pane-border-status off
pane-border-style default
pane-colours
popup-style default
popup-border-style default
popup-border-lines single
remain-on-exit off
remain-on-exit-format "Pane is dead (#{?#{!=:#{pane_dead_status},},status #{pane_dead_status},}#{?#{!=:#{pane_dead_signal},},signal #{pane_dead_signal},}, #{t:pane_dead_time})"
scroll-on-clear on
synchronize-panes off
window-active-style default
window-size latest
window-style default
window-status-activity-style reverse
window-status-bell-style reverse
window-status-current-format " #I #W "
window-status-current-style bg=magenta,fg=brightwhite
window-status-format " #I #W "
window-status-last-style default
window-status-separator " "
window-status-style default
wrap-search on
xterm-keys on
Step 3: Describe the problem:
Steps to reproduce:
tmux load test.yaml
Observed Results:
$ tmuxp load test.yml
[Loading] /home/debian/test.yml
Traceback (most recent call last):
File "/usr/bin/tmuxp", line 8, in <module>
sys.exit(cli.cli())
^^^^^^^^^
File "/usr/lib/python3/dist-packages/tmuxp/cli/__init__.py", line 146, in cli
command_load(
File "/usr/lib/python3/dist-packages/tmuxp/cli/load.py", line 576, in command_load
load_workspace(
File "/usr/lib/python3/dist-packages/tmuxp/cli/load.py", line 308, in load_workspace
expanded_workspace = loader.expand(
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/tmuxp/workspace/loader.py", line 174, in expand
expand(window, parent=workspace_dict)
File "/usr/lib/python3/dist-packages/tmuxp/workspace/loader.py", line 109, in expand
workspace_dict["window_name"] = expandshell(workspace_dict["window_name"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/tmuxp/workspace/loader.py", line 26, in expandshell
return os.path.expandvars(os.path.expanduser(value)) # NOQA: PTH111
^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen posixpath>", line 259, in expanduser
TypeError: expected str, bytes or os.PathLike object, not NoneType
Expected Results:
Session started called test with a single unnamed window.
Relevant Code:
session_name: test
windows:
- window_name:
panes:
-
Are you using the latest version of tmuxp? Check
tmuxp -V
against https://pypi.org/project/tmuxp/. If it's not the latest, consider updating, e.g.pip install --user tmuxp
.Step 1: Provide a summary of your problem
We should be able to create windows without specifying the name.
Step 2: Provide tmuxp details
Step 3: Describe the problem:
Steps to reproduce:
tmux load test.yaml
Observed Results:
Expected Results:
Session started called test with a single unnamed window.
Relevant Code: