Tmux কীভাবে সেট আপ করবেন যাতে এটি নির্দিষ্ট উইন্ডো খোলা দিয়ে শুরু হয়?


272

Tmux কীভাবে সেট আপ করবেন যাতে এটি নির্দিষ্ট উইন্ডো খোলা দিয়ে শুরু হয়?

উত্তর:


257

আপনি একটি ছোট শেল স্ক্রিপ্ট লিখতে পারেন যা প্রয়োজনীয় প্রোগ্রামগুলির সাথে tmux চালু করে। আমার শেল স্ক্রিপ্টে নিম্নলিখিত রয়েছে যা আমি ডেভ-টিএমাক্স বলি। একটি দেব পরিবেশ:

#!/bin/sh
tmux new-session -d 'vim'
tmux split-window -v 'ipython'
tmux split-window -h
tmux new-window 'mutt'
tmux -2 attach-session -d

তাই প্রতিবার আমি আমার প্রিয় দেব পরিবেশটি চালু করতে চাই যা আমি করতে পারি

$ dev-tmux

4
ধন্যবাদ! bash --rcfileনির্দিষ্ট ডিভলটুলস সংস্করণ সক্ষম হওয়া সহ বৈজ্ঞানিক লিনাক্সের উপর একটি সুন্দর শেল পাওয়ার জন্য এটির সাথে কাজ করার জন্য আমাকে কিছু ভয়ঙ্কর পলায়ন করতে হয়েছিল । যদি কেউ একই কাজ করার চেষ্টা করে তবে এটি এখানে ছেড়ে দেবে। tmux new-window -n "git lg" "scl enable devtoolset-3 'bash --rcfile <(echo \"source \"$HOME/.bashrc\";cd ~/workspace/coolproject/;git lg\")'"
লাল্লান

1
আমি মনে করি দ্বিতীয় লাইনটি অবশ্যই পরিবর্তন হওয়া উচিত, এটি 'ভিএম' এর আগে -s বিকল্পের প্রয়োজন। এর অর্থ "tmux new-session -d 'vim'" এর পরিবর্তে "tmux new-session -d -s 'vim'" প্রতিস্থাপন করতে হবে
আহমেদ ইউসোফান

2
@ আহমাদিউসোফান, vimওখানে উইন্ডোটির প্রথম (এবং কেবলমাত্র তখন) বাক্সে কার্যকর হওয়া কমান্ডটি বোঝায়। আপনি যদি পরিবর্তে সেশনটির নাম 'ভিএম' রাখতে চান তবে হ্যাঁ, আপনি ঠিক বলেছেন, আপনি -sপতাকাটি ব্যবহার করতে পারেন । পুরো বাক্য গঠন: tmux new-session -d -s SessionName -n WindowName Command
মিটজা

সতর্কতা অবলম্বন করুন: আপনি যদি ইতিমধ্যে (অন্য কোথাও) টিএমউक्स সেশন শুরু করে থাকেন তবে কমান্ডগুলি অন্য সেশনে শেষ হতে পারে! @ ওয়াকার-লিমের উত্তরে এই সমস্যা নেই।
হাজা

173

আমি পেনগুলির একটি জটিল গ্রিড তৈরি করার চেষ্টা করছিলাম এবং বার বার প্যানগুলি স্যুইচিং এবং বিভক্ত করার সাথে মোকাবিলা করতে হয়েছিল। আমার শিক্ষাগুলি এখানে:

tmux new-session \;

আপনাকে একটি নতুন অধিবেশন দিয়ে শুরু করুন। এটি অনুভূমিক বা উল্লম্ব ব্যবহার split-window -hবা -vপরবর্তীকালে বিভক্ত করতে যেমন:

tmux new-session \; split-window -v \; split-window -h \;

এই জাতীয় 3 টি ফলক তৈরি করে:

------------
|          |
|----------|
|    |     |
------------

সেই প্যানে কমান্ড চালাতে, কেবল send-keys 'my-command'কমান্ডটি দিয়ে যুক্ত করুন এবং C-mএটি কার্যকর করে:

tmux new-session \; \
  send-keys 'tail -f /var/log/monitor.log' C-m \; \
  split-window -v \; \
  split-window -h \; \
  send-keys 'top' C-m \; 

এবং ফলস্বরূপ সেশনটি দেখতে হবে।

------------
|  tail    |
|----------|
|    | top |
------------

এখন আমি নীচে বাম ফলকটি আবার উপ-বিভক্ত করার চেষ্টা করেছি, সুতরাং আরম্ভ করে তৈরি করা ফলকের সংখ্যাটি কোথায় রয়েছে তা ব্যবহার করে পিছনে ব্যবহার করে last-paneবা আরও জটিল উইন্ডোগুলিতে স্যুইচ করে চলেছি ।select-pane -t 110

tmux new-session \; \
  send-keys 'tail -f /var/log/monitor.log' C-m \; \
  split-window -v \; \
  split-window -h \; \
  send-keys 'top' C-m \; \
  select-pane -t 1 \; \
  split-window -v \; \
  send-keys 'weechat' C-m \;

তা করে। বেসিক্যালি আপনার চারপাশের উপায় জেনে split-windowএবং select-paneআপনার যা প্রয়োজন তা হল। -p 75ফলকের split-windowআকারের উপর আরও নিয়ন্ত্রণ রাখতে প্যানেলের শতকরা আকারের আকারটি পাস করাও সহজ ।

tmux new-session \; \
  send-keys 'tail -f /var/log/monitor.log' C-m \; \
  split-window -v -p 75 \; \
  split-window -h -p 30 \; \
  send-keys 'top' C-m \; \
  select-pane -t 1 \; \
  split-window -v \; \
  send-keys 'weechat' C-m \;

যার মতো দেখতে সেশনের ফলাফল

------------------
|      tail      |
|----------------|
|          | top |
|----------|     |
| weechat  |     |
------------------

আশা করি যা tmuxভবিষ্যতে উত্সাহীদের সহায়তা করে ।


2
আশ্চর্যজনক গাইডলাইন, আপনি কী আমাকে বিভক্ত হওয়ার পরে উল্লম্ব প্যানেলের প্রস্থকে পুনরায় আকার দিতে হবে তা গাইড করতে পারেন।
MinhNV

2
@ মিনিহএনভি -h -p 30উপলব্ধ উচ্চতার 30% সহ একটি অনুভূমিক প্যানেল তৈরি করে; -v -p 7575% প্রস্থ সহ উল্লম্ব জন্য একই।
আফ্রিকান

1
এর উদ্দেশ্য কী \:? আমি স্ক্রিপ্টগুলি এর সাথে এবং ছাড়াও কাজ করতে দেখেছি।
কেভিন ম্যাকডোনফ

2
আপডেট: \;সেমিকালনকে ব্যাশের পরিবর্তে টিএমউক্সে পাস করে, কমান্ডগুলি tmux- এ একটি কল দিয়ে প্রেরণ করা যায়। stackoverflow.com/questions/20913198/…
কেভিন ম্যাকডোনফ

96

আপনি নিজের .tmux.confপছন্দ থেকে বিভিন্ন সেশন উত্স করতে পারেন:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

এবং তারপরে আপনার প্রয়োজনীয় সেশনগুলি বিন্যাস করুন:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

এটি দুটি উইন্ডো খুলবে, যার দ্বিতীয়টির নাম হবে ফু / বার এবং এর উপরে উল্লম্বভাবে অর্ধেক (50%) বিভক্ত হবে বারের উপর দিয়ে চলমান। ফোকাসটি উইন্ডো 2 (ফু / বার), শীর্ষ ফলক (ফু) এ থাকবে।

তারপরে আপনি আপনার পছন্দসই টিএমউक्स সেশনটি (এই ক্ষেত্রে সেশন 1) দিয়ে শুরু করতে পারেন PrefixShifts


4
অতিরিক্ত ফাইলগুলির প্রয়োজন ছাড়াই .tmux.conf এর ভিতরে এই অধিবেশনটি শুরু করা যাবে না?
এএনও

2
এর মধ্যে একটি হতে পারে: আপনি সহজেই আরও
সিলেকশন

1
এটি কি সেশন বাসা বাঁধবে না? আমি চালানোর অর্থ Prefix Shift Sআমার টিএমউক্সে থাকা এবং আপনার ফাইলটি স্যোসিং করা একটি নতুন সেশন শুরু করার চেষ্টা করে যা টিএমউক্স পছন্দ করে না এবং না করলে আপনি তা জোর না করে না করেন।
ব্যবহারকারী 35915

1
@ user35915 এটি সহজভাবে একটি শিশু অধিবেশন, কিন্তু একটি পৃথক এক চালু হচ্ছে না - উপর আপনি যেমন উপসর্গ-s অথবা prefix-) এবং ব্যবহার prefix- (সুইচ করতে পারেন
sehe

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। তবে এস (এস নয়) এর সাথে বাইন্ডিং তালিকাভুক্তি সেশনের জন্য অন্তর্নির্মিত tmux বন্ডিংকে ওভাররাইড করবে।
গণনা 0

54

Tmuxinator ব্যবহার করুন - এটি আপনাকে একাধিক সেশনগুলি কনফিগার করার অনুমতি দেয় এবং আপনি যে কোনও সময় কোনটি চালু করবেন তা চয়ন করতে পারেন। আপনি নির্দিষ্ট উইন্ডো বা প্যানে কমান্ড চালু করতে এবং উইন্ডোগুলিকে শিরোনাম দিতে পারেন। জ্যাঙ্গো অ্যাপ্লিকেশনগুলি বিকাশের সাথে এখানে ব্যবহারের একটি উদাহরণ

নমুনা কনফিগারেশন ফাইল:

# ~/.tmuxinator/project_name.yml
# you can make as many tabs as you wish...

project_name: Tmuxinator
project_root: ~/code/rails_project
socket_name: foo # Not needed. Remove to use default socket
rvm: 1.9.2@rails_project
pre: sudo /etc/rc.d/mysqld start
tabs:
  - editor:
      layout: main-vertical
      panes:
        - vim
        - #empty, will just run plain bash
        - top
  - shell: git pull
  - database: rails db
  - server: rails s
  - logs: tail -f logs/development.log
  - console: rails c
  - capistrano:
  - server: ssh me@myhost

সম্পূর্ণ ব্যাখ্যার জন্য উপরের লিঙ্কে README দেখুন।


2
tmuxinator মূলত আমি যা খুজছিলাম। ধন্যবাদ!
জাস্টিন ফোর্স

3
tmuxp এও রয়েছে যা মোটামুটি একই রকম: github.com/tony/tmuxp
বেন


16
:~$ tmux new-session "tmux source-file ~/session1"  

session1

neww
split-window -v 'ipython'  
split-window -h  
new-window 'mutt'  

.bashrc এ একটি উপন্যাস তৈরি করুন

:~$ echo `alias tmux_s1='tmux new-session "tmux source-file ~/session1"'` >>~/.bashrc  
:~$ . ~/.bashrc  
:~$ tmux_s1  

~ কি neww? আমি এই আদেশটি কোথাও খুঁজে পাচ্ছি না ~ is দেখে মনে হচ্ছে এটি হ'ল new-window, যদিও আপনি দীর্ঘ এবং সংক্ষিপ্ত ফর্মটি কেন ব্যবহার করছেন তা আমি বুঝতে পারি না।
অলিগোফ্রেন

11

প্রথমে আমার কাছে @ জেসনওয়ারিয়ান থেকে যোগাযোগ ছিল তবে আপনার যদি আরও ২ টি কনফিগার থাকে তবে এটি বিভ্রান্তিকর হতে পারে।

সুতরাং আমি একটি উপনাম ফাংশন তৈরি করেছি:

tmx () {
    tmux "$2" source-file "$HOME/.tmux/$1.conf";
}

ইন ~/.tmux/আমি অনেক ব্যবহারের জন্য একাধিক সেশন আছে। উদাহরণস্বরূপ আমি বিভিন্ন কোম্পানির জন্য কাজ করি যার একে অপরের দেব পরিবেশ থাকে। উপরের উপন্যাসটির সাথে আমি কেবল কল করতে পারি: tmx company1এবং আমার প্রয়োজনীয় কনফিগারটি লোড করুন।

আপডেট:tmux কমান্ডের পরে "$ 2" এর উদ্দেশ্য হ'ল আপনি অতিরিক্ত tmux আরগগুলি পাস করতে সক্ষম হবেন।


1
@ Soc1c এর টিপসের সাথে এটি একত্রে একটি সুপার-মিষ্টি সেটআপ তৈরি করা হয়েছে ( github.com/fatso83/dotfiles/commit/35a7ed )) ধন্যবাদ!
অলিগোফ্রেন

ইতিমধ্যে কোনও বিদ্যমান টিএমউक्स সেশন না পাওয়া (পাওয়া no server running on /tmp/tmux-1000/default) এর জন্য আসলে ফাংশনটি কাজ করে না । এজন্য আমার কমান্ডটি প্যাচ করার দরকার ছিল tmux new-session। সূত্র github.com/fatso83/dotfiles/commit/...
oligofren থেকে

1
আমি সিস্টেমড দিয়ে আমার টিএমউক্স সেটআপ করেছি did সুতরাং বুট পরে সর্বদা একটি অধিবেশন চলছে। wiki.archlinux.org/index.php/Tmux#Autostart_with_s systemmd এর উল্লেখ না করার জন্য দুঃখিত।
ড্যানব্রুগ

10

আমার "গেট.এল" স্ক্রিপ্ট থেকে, যা আমি প্রতিটি সকালে অনুরোধ করি তারপরে "get.XXX" কাজগুলির একটি গুচ্ছ চালানোর জন্য যা আমি ট্র্যাক করি তা রিফ্রেশ করে। তাদের মধ্যে কিছু স্বতঃ-প্রস্থান করছে। গিগা শেষ হওয়ার পরে অন্যদের আরও ইন্টারঅ্যাকশন প্রয়োজন (যেমন ইমাস তৈরি করতে বলার মতো)।

#!/bin/sh
tmux att -t get ||
tmux \
  new -s get -n capp \; \
  send-keys 'get.capp' C-m \; \
  neww -n emacs \; \
  send-keys 'get.emacs' C-m \; \
  neww -n git \; \
  send-keys 'get.git' C-m \; \
  neww -n mini \; \
  send-keys 'get.mini' C-m \; \
  neww -n port \; \
  send-keys 'get.port' C-m \; \
  neww -n rakudo \; \
  send-keys 'get.rakudo' C-m \; \
  neww -n neil \; \
  send-keys 'get.neil && get.neil2 && exit' C-m \; \
  neww -n red \; \
  send-keys 'get.red && exit' C-m \; \
  neww -n cpan \; \
  send-keys 'get.cpan && exit' C-m \; \
  selectw -t emacs

8

আপনি যদি কেবল দুটি প্যানে স্ক্রিনটি বিভক্ত করতে চান (অনুভূমিকভাবে বলুন), আপনি এই কমান্ডটি চালাতে পারেন (কোনও tmux বা শেল স্ক্রিপ্টের প্রয়োজন নেই):

tmux new-session \; split-window -h \;

আপনার পর্দাটি দেখতে এমন হবে:

[ks@localhost ~]$                      │[ks@localhost ~]$ 
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
[10] 0:ks@localhost:~*                  "localhost.localdomain" 19:51 31-янв-16

8

এবং এইভাবেই আমি এটি করি:

#!/bin/bash

function has-session {
  tmux has-session -t name_of_my_session 2>/dev/null
}

if has-session ; then
  echo "Session already exists"
else
  cd /path/to/my/project
  tmux new-session -d -s name_of_my_session 'vim'
  tmux split-window -h -p 40 start_web_server
  tmux split-window -v
  tmux attach-session -d -t name_of_my_session
fi

আমার প্রতিটি প্রকল্পের জন্য আমার একটি ফাইল আছে। এছাড়াও আপনি শখের প্রকল্পগুলির জন্য কিছু কাজের জন্য তাদের গ্রুপ করতে পারেন।

এছাড়াও আপনি এটিকে ~/binফোল্ডারে স্থানান্তর করতে , এটিকে যুক্ত করতে PATHএবং tmux_my_awesome_projectনাম দিতে পারেন । তারপরে আপনি এটিকে প্রতিটি স্থান থেকে চালাতে সক্ষম হবেন।


4

এটি আমার পক্ষে কাজ করে। প্রদত্ত নাম এবং homeউইন্ডোতে অটো নির্বাচন করে 5 টি উইন্ডো তৈরি করা হচ্ছে ।

new  -n home
neww -n emacs
neww -n puppet
neww -n haskell
neww -n ruby
selectw -t 1

3

ভাই চেষ্টা করুন , এটি একটি প্রকল্প বুটস্ট্র্যাপার।

এটি সাথে যোগাযোগের জন্য সহজ এপিআইএস সরবরাহ করে tmux

এটি দেখতে এমন কিছু দেখাচ্ছে:

#!/bin/sh
# @ project_name/tasks/init.sh
structure project_name
  window editor
    run 'vim'
  window terminal
    run 'echo happy coding ...'
focus editor
connect project_name

একটি প্রকল্প চালু করার জন্য নিম্নলিখিত কমান্ডটি চালানো দরকার -

bro start <project_name>

নীচে স্ক্রিনকাস্ট চেকআউট করুন, এটি কীভাবে শুরু করবেন broএবং এর tmuxএপিআই ব্যবহার করবেন তা দেখায় ।

https://user-images.githubusercontent.com/8296449/50532502-2cf3e400-0b6e-11e9-84af-c5f77a04e5cc.gif


2

এই জন্য একটি tmux প্লাগইন আছে।

Tmux- পুনরুত্থান পরীক্ষা করে দেখুন

সিস্টেম পুনরায় আরম্ভের পরে tmux পরিবেশ পুনরুদ্ধার করুন।

Tmux দুর্দান্ত, যখন আপনাকে কম্পিউটারটি পুনরায় চালু করতে হবে except আপনি সমস্ত চলমান প্রোগ্রামগুলি, কার্যক্ষম ডিরেক্টরিগুলি, ফলক বিন্যাসগুলি হারাবেন There সেখানে সহায়ক ব্যবস্থাপনার সরঞ্জাম রয়েছে তবে আপনার কার্যপ্রবাহের বিকাশ ঘটে বা আপনি নতুন প্রকল্প শুরু করার সাথে সাথে তাদের প্রাথমিক কনফিগারেশন এবং অবিচ্ছিন্ন আপডেটগুলি প্রয়োজন।

tmux- পুনরুত্থান আপনার tmux এনভায়রনমেন্ট থেকে সমস্ত সামান্য বিশদ সংরক্ষণ করে যাতে এটি সিস্টেম পুনরায় আরম্ভের পরে (বা যখন আপনি এটির মতো অনুভব করেন) পুরোপুরি পুনরুদ্ধার করা যায়। কোন কনফিগারেশন প্রয়োজন। আপনার অনুভব করা উচিত যে আপনি কখনই টেমাক্স ছাড়েন না।

অথবা tmux-Continum

বৈশিষ্ট্য:

  • tmux পরিবেশের অবিচ্ছিন্ন সঞ্চয়
  • কম্পিউটার / সার্ভার চালু হলে স্বয়ংক্রিয় tmux শুরু
  • tmux শুরু হওয়ার পরে স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করুন

1

আপনার এটি আপনার tmux কনফিগারেশন ফাইলে নির্দিষ্ট করা উচিত ( ~/.tmux.confউদাহরণস্বরূপ:

new mocp
neww mutt

new -d
neww
neww

(প্রথমটি এমওসিপি এবং দ্বিতীয়টিতে মুট দিয়ে দুটি উইন্ডোজের সাথে একটি সেশন খোলে এবং 3 টি খালি উইন্ডো সহ একটি পৃথক পৃথক সেশন)।


1

আমি এই স্ক্রিপ্ট তৈরি করেছি । এটিতে tmuxinator, রুবি বা অন্যের দরকার নেই। এটি কেবল একটি বাশ স্ক্রিপ্ট, কনফিগারযোগ্য:

কনফিগার্ড নামের একটি ফাইলের মধ্যে এমন কিছু থাকা উচিত:

combo=()
combo+=('logs' 'cd /var/log; clear; pwd')
combo+=('home' 'cd ~; clear; pwd')

এবং ব্যাশ কোডটি হওয়া উচিত:

#!/bin/bash

if [ -r config ]; then
    echo ""
    echo "Loading custom file"
    . config
else
    . config.dist
fi

tmux start-server

window=0
windownumber=-1

for i in "${combo[@]}"; do

    if [ $((window%2)) == 0 ]; then
        name=${i}
        ((windownumber++))
    else
        command=${i}
    fi

    if [ ${combo[0]} == "${i}" ]; then
        tmux new-session -d -s StarTmux -n "${name}"
    else
        if [ $((window%2)) == 0 ]; then
            tmux new-window -tStarTmux:$windownumber -n "${name}"
        fi
    fi

    if [ $((window%2)) == 1 ]; then
        tmux send-keys -tStarTmux:$windownumber "${command}" C-m
    fi

    ((window++))
done

tmux select-window -tStarTmux:0
tmux attach-session -d -tStarTmux

হাই সেনসোরারিও, যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে। দয়া করে এখানে একবার দেখুন: কেন এবং কীভাবে কিছু উত্তর মুছে ফেলা হয়?
বম্মি

আশ্চর্যজনকভাবে এনবি, tmux start_serverনিজে থেকেই কোনও সার্ভার শুরু করে না। Github.com/tmux/tmux/issues/182
জ্যাক ওয়াসি

1

tmuxp JSON বা YAML সেশন কনফিগারেশন এবং পাইথন এপিআই সমর্থন করে। ওয়াইএএমএল সিনট্যাক্সে একটি নতুন সেশন তৈরি করার জন্য একটি সহজ টিএমউक्सপি কনফিগারেশন ফাইলটি হ'ল:

session_name: 2-pane-vertical
windows:
  - window_name: my test window
    panes:
      - pwd
      - pwd

1

প্লাগ -ইন tmux-Continum আপনার tmux সেশনটি স্বয়ংক্রিয়ভাবে সংরক্ষণ করবে এবং পরের বার tmux শুরু হওয়ার সাথে সাথে এটি লোড হবে, এখানে কিছু কাস্টম স্ক্রিপ্ট সমাধানের চেয়ে সেটআপ করা সহজ হওয়া উচিত।

বৈশিষ্ট্য:

  • tmux পরিবেশের অবিচ্ছিন্ন সঞ্চয়
  • কম্পিউটার / সার্ভার চালু হলে স্বয়ংক্রিয় tmux শুরু
  • tmux শুরু হওয়ার পরে স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করুন

চাহিদা অনুযায়ী আপনার সেশনটি সংরক্ষণ করতে আপনি tmux- পুনরুত্থান প্লাগইন ব্যবহার করতে পারেন । tmux-পুনরুজ্জীবিত এছাড়াও চালানোর জন্য প্রয়োজন বোধ করা হয় tmux-কন্টিনাম

tmux- পুনরুত্থান আপনার tmux এনভায়রনমেন্ট থেকে সমস্ত সামান্য বিশদ সংরক্ষণ করে যাতে এটি সিস্টেম পুনরায় আরম্ভের পরে (বা যখন আপনি এটির মতো অনুভব করেন) পুরোপুরি পুনরুদ্ধার করা যায়। কোন কনফিগারেশন প্রয়োজন। আপনার অনুভব করা উচিত যে আপনি কখনই টেমাক্স ছাড়েন না।


1

নতুন সেশন তৈরি হওয়ার সময় আপনি কমান্ডগুলি কার্যকর করতে tmux হুক ব্যবহার করতে পারেন । বিশেষত, এটি session-createdহুক ব্যবহার করে অর্জিত হয় ।

উদাহরণস্বরূপ, নীচে ডানদিকে চলমান এইচটিপি দিয়ে পর্দাটি তিনভাবে বিভক্ত করার জন্য আপনি নিম্নলিখিত ~/.tmux.confফাইলটি আপনার ফাইলে যুক্ত করতে পারেন :

set-hook -g session-created 'split -h ; split -v top'

এই পদ্ধতির সুবিধাটি হ'ল কাঙ্ক্ষিত ফলাফল পেতে আপনাকে কোনও বিশেষ উপায়ে (যেমন শেল স্ক্রিপ্ট বা ওরফে) টিএমউक्स চালাতে হবে না। আপনি এই অন্যান্য উত্তরেtmux new-session -A -s mysession বর্ণিত সাথে এটিও একত্রিত করতে পারেন যেমন হুক কমান্ডগুলি কেবল তখনই চালিত হয় যখন আপনি প্রথম সেশনটি তৈরি করেন এবং পরবর্তী সংযুক্তিতে নয় on

এই বৈশিষ্ট্যটি d15d54c2c দ্বারা 2016 সালে ফিরে যুক্ত হয়েছিল। এটি অন্তর্ভুক্ত করার জন্য প্রথম প্রকাশটি ২.৪।


0

আমি এই পৃষ্ঠায় সমস্ত ধারণাগুলি ব্যবহার করার চেষ্টা করেছি এবং সেগুলির কোনও পছন্দ করি না didn't আমি কেবল একটি সমাধান চেয়েছিলাম যা আমার টার্মিনালটি খোলার সাথে সাথে উইন্ডোজের একটি নির্দিষ্ট সেট দিয়ে tmux শুরু হয়েছিল। আমি এটি আদর্শবান হতে চেয়েছিলাম, যেমন একটি নতুন টার্মিনাল উইন্ডো খোলার জন্য এটি পূর্ববর্তীটি থেকে টিএমএক্স সেশনটি গ্রহণ করবে।

উপরের সমাধানগুলি প্রায়শই একাধিক tmux সেশন খোলার প্রবণতা রাখে এবং আমি কেবল একটি চাই। প্রথমত, আমি এটি আমার সাথে যুক্ত করেছি ~/.bash_profile:

tmux start-server
if [[ -z "$TMUX" ]]
then
  exec tmux attach -d -t default
fi

তারপরে আমি আমার সাথে নিম্নলিখিতগুলি যুক্ত করেছি ~/.tmux.conf:

new -s default -n emacs /usr/local/bin/emacs
neww -n shell /usr/local/bin/bash
neww -n shell /usr/local/bin/bash
selectw -t 1

এখন প্রতিবার আমি যখন টার্মিনাল শুরু করি বা tmux বা যে কোনও কিছু শুরু করি, আমি হয় আমার বিদ্যমান কাঙ্ক্ষিত সেটআপটির (পুনরায় নামকরণ করা অধিবেশন default) পুনরায় সংযুক্ত হই , বা সেই সেটআপটি দিয়ে একটি নতুন সেশন তৈরি করি।


আশ্চর্যজনকভাবে, tmux start_serverনিজে থেকে কোনও সার্ভার শুরু করে না। Github.com/tmux/tmux/issues/182
জ্যাক ওয়াসি

0

এই স্ক্রিপ্টটি "ই" এবং তিনটি উইন্ডো নাম দিয়ে একটি সেশন শুরু করে

#!/bin/sh 
tmux new-session -s e   -n etc -d 'cd /etc; bash -i'
tmux new-window  -t e:1 -n home   'cd ~; bash -i'
tmux new-window  -t e:2 -n log   'cd /var/log; bash -i'

tmux select-window -t e:1
tmux -2 attach-session -t e
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.