मेरे पास एक टर्मिनल विंडो है जिसमें एक दर्जन नामित टैब खुले हैं।
मैं वर्तमान कॉन्फ़िगरेशन को सहेजना चाहूंगा और इसे नाम और निर्देशिका के साथ पुनर्स्थापित करूंगा।
क्या इसे करने का कोई तरीका है?
मेरे पास एक टर्मिनल विंडो है जिसमें एक दर्जन नामित टैब खुले हैं।
मैं वर्तमान कॉन्फ़िगरेशन को सहेजना चाहूंगा और इसे नाम और निर्देशिका के साथ पुनर्स्थापित करूंगा।
क्या इसे करने का कोई तरीका है?
जवाबों:
में कॉन्फ़िगरेशन को बचाने के लिए /tmp/cfg
:
gnome-terminal --save-config=/tmp/cfg
इसे वापस लोड करने के लिए:
gnome-terminal --load-config=/tmp/cfg
अपडेट करें
बाश के साथ खेलने के बाद मैंने निम्नलिखित स्क्रिप्ट बनाई जो टैब नामों को फ़ाइल में संग्रहीत करती है /tmp/test
:
#!/usr/bin/env bash
gnome-terminal --save-config=/tmp/test
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' /tmp/test | wc -l); i++))
do
TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
done
नामों को ठीक से असाइन करने के लिए आपको इसे अपने टर्मिनल के पहले टैब से चलाना होगा। पहले की तरह लोड हो रहा है:
gnome-terminal --load-config=/tmp/test
व्याख्या:
मैं टैब नाम प्राप्त करने के लिए निम्नलिखित का उपयोग कर सकता हूं:
xprop -id $WINDOWID WM_NAME
मैं अगले टैब पर जाने के लिए निम्नलिखित का उपयोग कर सकता हूं:
xdotool key ctrl+Page_Down;
मुझे इससे पहले सहेजे गए कॉन्फ़िगरेशन फ़ाइल को छोड़ने के बाद टैब की संख्या मिल रही है:
$(grep '\[Terminal' /tmp/test | wc -l)
तो मैं एक लूप के अंदर टैब पर पुनरावृति कर सकता हूं। मुझे पहले सहेजे गए फ़ाइल में प्रत्येक टैब कॉन्फ़िगरेशन अनुभाग के लिए "शीर्षक = शीर्षक" प्रविष्टि को जोड़ना होगा। ऐसा करने के लिए, पहले मैं लाइन संख्याओं की एक सरणी बना रहा हूँ जहाँ मैं लाइनें जोड़ूँगा।
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
मैं "शीर्षक = शीर्षक" पंक्ति को टैब के अंदर लूप से जोड़ रहा हूँ:
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
एक विकल्प सिर्फ बायोबू का उपयोग करना है । इसके अंदर नए टर्मिनल खोलने के लिए F2 दबाएं। टर्मिनलों के बीच बाएं और दाएं स्विच करने के लिए F3 और F4 का उपयोग करें।
GUI विंडो को कभी भी बंद करें। जब आप ब्योबू को फिर से खोलते हैं तो आपके सभी टर्मिनल बहाल हो जाते हैं :)
मैंने सहेजे गए सेटिंग्स को पुनर्स्थापित करने के बाद नीचे दिए गए विकल्पों की कोशिश की और शीर्षक भी ठीक से बहाल किया गया है।
यह विकल्प आपके प्रारंभिक शीर्षक सेट को ओवरराइट करने से बचता है।
आशा है कि यह मदद करता है और वास्तव में एक महान स्क्रिप्ट। जब भी आप यू रिबूट करें और मैं अपने वर्चुअल बॉक्स को बार-बार रिबूट कर सकूं, तो बहुत समय बचाएं।
धन्यवाद!!
मैंने एक और विकल्प की कोशिश की,
मैंने सेटिंग ~/.bashrc
बदलने के बजाए Intital मान का उपयोग करने के लिए टर्मिनल के लिए अपना डिफ़ॉल्ट शीर्षक बदल दिया ~/.profile
।
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="$PS1"
;;
*)
;;
esac
यदि आप ऐसा करते हैं, तो अपने टर्मिनल प्रोफाइल को बदलने की कोई आवश्यकता नहीं है।
जब आप निष्पादित करते हैं तो gnome-terminal --load-config
सभी टैब नाम ठीक से बहाल हो जाते हैं। और आप भी इसे पसंद कर सकते हैं और टैब को फिर से सहेज सकते हैं !!
मुझे ऐसा करने का एक तरीका मिला जो मुझे लगता है कि तेज है।
प्रकार:
gnome-terminal --tab-with-profile=PROFILENAME1 --tab-with-profile=PROFILENAME2 ... --tab-with-profile=PROFILENAME999
मैंने इस कमांड के साथ एक उपनाम बनाया और इसने मेरे लिए बहुत अच्छा काम किया। मैं सिर्फ टाइप करता हूं workflow
और 3 टैब के साथ एक टर्मिनल दिखाई देता है और जो शीर्षक मैंने प्रोफाइल डेफिनिशन में चुने हैं जिन्हें टैब में रखा गया है।
मेरी .bashrc
फ़ाइल पर मैंने रखा:
alias workflow='gnome-terminal --tab-with-profile=Git --tab-with-profile=Run | sublime-text &'
मौजूद स्क्रिप्ट में थोड़ा सुधार जो सिस्टम पर स्थापित xdotool की जाँच करता है और बदलते रास्ते के लिए चर जोड़ता है
#!/bin/bash
SAVEPATH=/tmp/termprofile
if [ ! -f /usr/bin/xdotool ]; then
echo "please install 'xdotool'"
exit 1
fi
gnome-terminal --save-config=$SAVEPATH
LINES=($(grep -n '\[Terminal' $SAVEPATH | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' $SAVEPATH | wc -l); i++))
do
TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" $SAVEPATH
done
ऊपर Nyakin के उत्तर पर विस्तार करते हुए, यह स्क्रिप्ट कई विंडो और टैब कॉन्फ़िगरेशन के लिए काम करेगी और उन सभी टैब के टैब टैब को सही ढंग से सहेजेगी जो उनके पास हैं।
यह वर्तमान में सूक्ति-टर्मिनल 3.2 पर परीक्षण किया गया है, लेकिन इसी तरह की बचत-विन्यास कार्यक्षमता के साथ किसी भी टर्मिनल कार्यक्रम के लिए कॉन्फ़िगर किया जा सकता है।
इसके लिए 'xprop', 'xdotool' और 'wmctrl' टूल्स की आवश्यकता होती है।
कोड:
#!/usr/bin/env bash
FILE="$1"
gnome-terminal --save-config=$FILE
WINDOWLINES=$(wmctrl -lx | grep gnome-terminal.Gnome-terminal)
WINDOWNUM=$(echo "$WINDOWLINES" | wc -l)
TABLISTS=$(grep "^Terminals" $FILE)
for ((i=1; i<=$WINDOWNUM; i++))
do
WINDOWLINE=$(echo "$WINDOWLINES" | sed -n "$i{p;q}")
WINDOW_ID=$(echo "$WINDOWLINE" | cut -d' ' -f1)
#Switch to window
wmctrl -i -a $WINDOW_ID
LINE=$(echo "$TABLISTS" | sed -n "$i{p;q}"); LINE=${LINE#Terminals=}
TERMINALNUM=$(echo "$LINE" | grep -o ';' | wc -l)
#go to first tab of the window if more than 1
[ $TERMINALNUM -gt 1 ] && xdotool key alt+1 && sleep .1
for tab in ${LINE//;/ }
do
#Get the current tab title
TITLE=$(xprop -id $WINDOW_ID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//')
#Insert it into the config file
[ "$TITLE" == "${TITLE//WM_NAME/}" ] && sed -ri "/\[${tab}\]/aTitle=${TITLE}" $FILE
#Move to the next tab in the window
xdotool key ctrl+Page_Down
done
done
यहाँ मेनू से बस / सत्र को बचाने / बहाल करने की संभावना के साथ एक xfce टर्मिनल कांटा है: https://github.com/repu1sion/xfce4-terminal
योग की विधि के समान, संपादित करें >> प्रोफ़ाइल प्राथमिकताएँ >> शीर्षक और आदेश >> शीर्षक >> जब टर्मिनल कमांड अपना शीर्षक निर्धारित करते हैं: >> " प्रारंभिक शीर्षक शीर्षक "
फिर निष्पादित करें: सूक्ति-टर्मिनलों - save-config = टर्मिनलों- cfg
विंडो बंद करें
एक नया टर्मिनल खोलें, और इसमें निष्पादित: सूक्ति-टर्मिनलों - लोड-विन्यास = टर्मिनलों-सीएफजी
मेरे लिए अच्छा है, सभी शीर्षक रखे।
हाइपर ( https://github.com/zeit/hyper ) एक अच्छा क्रॉस प्लेटफॉर्म विकल्प है जो जावास्क्रिप्ट में लिखा है और इलेक्ट्रॉन के साथ बंडल किया गया है।
एक PR है जो सत्र बचाने / बॉक्स को पुनर्स्थापित करने के लिए समर्थन जोड़ने जा रहा है: https://github.com/zeit/hyper/pull/945