passing options to tmux command: libtmux.exc.UnknownOption
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Trace option handling from tmuxp/cli/load.py through workspacebuilder.py and libtmux/session.py, starting with how the YAML options mapping is passed to tmux. Confirm whether command-level flags such as -L and -f can be represented without treating them as session options, then add coverage for the configuration shown and verify that tmux receives both flags before loading the workspace.
Written by the indexing model from the issue text.
Description
Step 1: Provide a summary of your problem
I thought we could specify tmux options like tmux -L socketname -f .config/custom.conf by doing something like:
session_name: name-of-session
options:
' -L': socketname
'-f': .config/custom.conf
…but either I'm mistaken about that or doing it wrong.
Step 2: Provide tmuxp details
Output of tmuxp debug-info:
-------------------------
environment:
dist: Linux-5.19.0-76051900-generic-x86_64-with-glibc2.35
arch: x86_64
uname: Linux; pop-os; 5.19.0-76051900-generic
version: #202207312230~1660780566~22.04~9d60db1 SMP PREEMPT_DYNAMIC Thu A
-------------------------
python version: 3.10.6 (main, Nov 2 2022, 18:53:38) [GCC 11.3.0]
system PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/m/.local/bin:/home/m/code/bin:/usr/local/go/bin:/home/m/.local/lib/go/bin:/home/m/.local/lib/lua/bin:/home/m/code/software_projects/luarocks-3.8.0/lua_modules/bin:/home/m/.local/lib/rust/cargo/bin
tmux version: 3.2
libtmux version: 0.14.2
tmuxp version: 1.13.1
tmux path: /usr/bin/tmux
tmuxp path: /home/m/.local/lib/python3.10/site-packages/tmuxp
shell: /usr/bin/zsh
-------------------------
tmux sessions:
Diary: 2 windows (created Fri Feb 10 20:52:46 2023)
Email: 1 windows (created Fri Feb 10 20:52:46 2023) (attached)
PM: 1 windows (created Fri Feb 10 20:52:47 2023)
Projects: 4 windows (created Fri Feb 10 20:52:48 2023) (attached)
docs: 1 windows (created Fri Feb 10 20:52:46 2023) (attached)
lrn_parsing-text-files_python: 1 windows (created Sat Feb 11 18:19:15 2023)
tmux windows:
0: docs* (1 panes) [83x51] [layout ade2,83x51,0,0,5] @3 (active)
tmux panes:
0: [83x50] [history 0/2000, 22863 bytes] %5 (active)
tmux global options:
@plugin tmux-plugins/vim-tmux-focus-events
activity-action other
assume-paste-time 1
base-index 0
bell-action any
default-command ''
default-shell /usr/bin/zsh
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 2000
key-table root
lock-after-time 0
lock-command "lock -np"
message-command-style bg=black,fg=yellow
message-style bg=yellow,fg=black
mouse on
prefix C-a
prefix2 None
renumber-windows off
repeat-time 500
set-titles off
set-titles-string "#S:#I:#W - \"#T\" #{session_alerts}"
silence-action other
status on
status-bg colour234
status-fg colour137
status-format[0] "#[align=left range=left #{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} #{window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{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 #{?#{!=:#{window-status-current-style},default},#{window-status-current-style},#{window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{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 #{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=white,bg=black] Do Ctrl+S to save and run the script"
status-left-length 40
status-left-style default
status-position bottom
status-right "#[fg=colour233,bg=colour241,bold]#(grep 'Course_Name: ' .lesson.yml | sed 's/Course_Name:/ /') #[fg=colour233,bg=colour245,bold]#(grep TODO .lesson.yml | head -n 1 | grep -oe '[0-9]*' | sed 's/^/ Step /') "
status-right-length 95
status-right-style default
status-style bg=green,fg=black
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:
aggressive-resize 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
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 "bg=colour236 fg=colour245"
pane-base-index 0
pane-border-format " [#{pane_index}] #{pane_title} "
pane-border-lines single
pane-border-status top
pane-border-style "bg=default fg=colour239"
remain-on-exit off
synchronize-panes off
window-active-style fg=colour15,bg=colour235
window-size latest
window-style fg=colour245,bg=colour236
window-status-activity-style reverse
window-status-bell-style reverse
window-status-current-format ''
window-status-current-style default
window-status-format ''
window-status-last-style default
window-status-separator " "
window-status-style default
wrap-search on
xterm-keys on
Step 3: Describe the problem:
Options do not get passed to tmux command. Error is produced instead.
Steps to reproduce:
Use the config:
session_name: name-of-session
options:
-L: socketname
-f: .config/custom.conf
Observed Results:
❯ tmuxp load .
[Loading] /home/m/code/lrn/parsing_text_files__python/.tmuxp.yaml
[step-1 39c8f8f] Update instructions for step 1.
1 file changed, 3 deletions(-)
Traceback (most recent call last):
File "/home/m/.local/bin/tmuxp", line 8, in <module>
sys.exit(cli.cli())
File "/home/m/.local/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/home/m/.local/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/home/m/.local/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/m/.local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/m/.local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/home/m/.local/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/m/.local/lib/python3.10/site-packages/tmuxp/cli/load.py", line 573, in command_load
load_workspace(config[-1], **tmux_options)
File "/home/m/.local/lib/python3.10/site-packages/tmuxp/cli/load.py", line 418, in load_workspace
_load_attached(builder, detached)
File "/home/m/.local/lib/python3.10/site-packages/tmuxp/cli/load.py", line 159, in _load_attached
builder.build()
File "/home/m/.local/lib/python3.10/site-packages/tmuxp/workspacebuilder.py", line 253, in build
self.session.set_option(option, value)
File "/home/m/.local/lib/python3.10/site-packages/libtmux/session.py", line 451, in set_option
handle_option_error(proc.stderr[0])
File "/home/m/.local/lib/python3.10/site-packages/libtmux/common.py", line 750, in handle_option_error
raise exc.UnknownOption(error)
libtmux.exc.UnknownOption: tmux: unknown option -- f
↵ Error. Exit status 1.
Expected Results:
I thought options: would be provided as options to the tmux command.
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 248
- Avg merge
- 2h 13m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tmux-python/tmuxp
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
tmux-python/tmuxp#1026 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
tmux-python/tmuxp#939 · 1 comment ·
-
enhancement WorkspaceBuilder
Difficulty 4/5 3-5 days Newbie friendliness 48/100
tmux-python/tmuxp#1062 ·
-
enhancement need-comments WorkspaceBuilder
Difficulty 5/5 Over a week Newbie friendliness 35/100
tmux-python/tmuxp#1058 · 2 comments ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
tmux-python/tmuxp#1053 · 10 comments ·
All issues in tmux-python/tmuxp
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100