टर्मिनल के टैब को बचाने और पुनर्स्थापित करने का कुछ तेज़ तरीका?


80

मेरे पास एक टर्मिनल विंडो है जिसमें एक दर्जन नामित टैब खुले हैं।

मैं वर्तमान कॉन्फ़िगरेशन को सहेजना चाहूंगा और इसे नाम और निर्देशिका के साथ पुनर्स्थापित करूंगा।

क्या इसे करने का कोई तरीका है?


बहुत दिलचस्प सुविधा है, लेकिन मुझे नहीं लगता कि यह उपलब्ध है।
जिलिन

आप किस टर्मिनल एप्लिकेशन का उपयोग कर रहे हैं? सूक्ति टर्मिनल? कंसोल? आदि
gertvdijk

@gertvdijk: जिसे "टर्मिनल" कहा जाता है। मेरा मानना ​​है कि यह सूक्ति है।
झूठी

1
@false Btw।, तेह Xfce को "टर्मिनल" भी कहा जाता है। रुचि रखने वाले किसी के लिए, यह Xfce Goodies , परियोजनाओं में प्रलेखित है : अनुप्रयोग: टर्मिनल :)
Nostromov

2
इसे संभव बनाने के लिए, Bugzilla.gnome.org/show_bug.cgi?id=623986
Marius Andreiana

जवाबों:


44

में कॉन्फ़िगरेशन को बचाने के लिए /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 

1
आप स्क्रीन कमांड में देखना चाहते हैं। मैं इसका उपयोग नहीं करता, लेकिन मेरा मानना ​​है कि यह सभी प्रकार के सत्रों को बचा सकता है और पुनर्स्थापित कर सकता है - यहां तक ​​कि दूरस्थ भी।
जो

1
शीर्षक काम नहीं कर रहा है? आशा है इस शीर्षक समस्याओं में सहायता मिलती 'प्रारंभिक शीर्षक रखने': यह सुनिश्चित करें कि में संपादन मेनू \ प्रोफाइल प्राथमिकता टैब 'शीर्षक और कमान' 'टर्मिनल आदेशों को अपने स्वयं के खिताब सेट करते हैं बनाओ
संवेदनशील

1
इस उत्तर के साथ इच्छित व्यवहार क्या है? मेरे लिए, यह टैब को बचाता है, और मुझे विश्वास है कि वर्तमान कार्यशील निर्देशिका। लेकिन यह पिछले इनपुट और आउटपुट को नहीं बचाता है। OS X टर्मिनल ऐसा करता है।
टायलर कोलियर

11
सूक्ति 3.18: विकल्प "- save-config" अब सूक्ति-टर्मिनल के इस संस्करण में समर्थित नहीं है।
मारियस आंद्रेयना

2
Ubuntu 16.04: विकल्प "- save-config" अब सूक्ति-टर्मिनल के इस संस्करण में समर्थित नहीं है।
यूजीन कुलबुहोव

12

एक विकल्प सिर्फ बायोबू का उपयोग करना है । इसके अंदर नए टर्मिनल खोलने के लिए F2 दबाएं। टर्मिनलों के बीच बाएं और दाएं स्विच करने के लिए F3 और F4 का उपयोग करें।

GUI विंडो को कभी भी बंद करें। जब आप ब्योबू को फिर से खोलते हैं तो आपके सभी टर्मिनल बहाल हो जाते हैं :)


1
क्या यह रिबूट में काम करता है? मेरे लिए, यह रिबूट के बाद वापस रहता है।
अक्षय २०

3
यह रिबूट में काम नहीं करता है
अधिकतम

1
यह यहां सभी टैब को फिर से नहीं खोलती है, केवल पहला है।
लियोनार्डो कास्त्रो

3
अगर यह रिबूट के दौरान काम नहीं करता है तो भी इसे एक उत्तर के रूप में क्यों उतारा जाता है ??
मारजॉय

3

मैंने सहेजे गए सेटिंग्स को पुनर्स्थापित करने के बाद नीचे दिए गए विकल्पों की कोशिश की और शीर्षक भी ठीक से बहाल किया गया है।

  1. गो सेटिंग-> प्रोफाइल और आपके द्वारा उपयोग किए जा रहे करंट प्रोफाइल पर सेलेक्ट करें
  2. एडिट पर क्लिक करें और "शीर्षक और कमांड" टैब पर जाएं
  3. प्रारंभिक शीर्षक रिक्त बनाएं
  4. नीचे ड्रॉप डाउन बॉक्स में "कीप आरम्भिक शीर्षक" विकल्प चुनें।

यह विकल्प आपके प्रारंभिक शीर्षक सेट को ओवरराइट करने से बचता है।

आशा है कि यह मदद करता है और वास्तव में एक महान स्क्रिप्ट। जब भी आप यू रिबूट करें और मैं अपने वर्चुअल बॉक्स को बार-बार रिबूट कर सकूं, तो बहुत समय बचाएं।

धन्यवाद!!


3

मैंने एक और विकल्प की कोशिश की,

मैंने सेटिंग ~/.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सभी टैब नाम ठीक से बहाल हो जाते हैं। और आप भी इसे पसंद कर सकते हैं और टैब को फिर से सहेज सकते हैं !!


3

मुझे ऐसा करने का एक तरीका मिला जो मुझे लगता है कि तेज है।

  1. शीर्षक के साथ एक प्रोफ़ाइल बनाता है और वह नाम जो आप चाहते हैं जैसे योग ने कहा।
  2. प्रकार:

    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 &'

1

स्क्रीन या बायोबू टर्मिनल में जटिल वर्कफ़्लो के प्रबंधन के लिए मेरे पसंदीदा तरीके हैं, और दोनों आपके कॉन्फ़िगरेशन को बचाने की अनुमति देते हैं।


1

मौजूद स्क्रिप्ट में थोड़ा सुधार जो सिस्टम पर स्थापित 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

1

ऊपर 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

1

मैंने Gnome टर्मिनल में भी उस सुविधा की तलाश की है, लेकिन वह नहीं मिली। अब तक मुझे मिला सबसे अच्छा विकल्प कोनोलाज़ का उपयोग करना है। यह आपको अपने टैब को बुकमार्क करने की अनुमति देता है, ताकि आप उन्हें बुकमार्क मेनू से चुनकर वापस पा सकें। आशा है कि ये आपकी मदद करेगा।



0

योग की विधि के समान, संपादित करें >> प्रोफ़ाइल प्राथमिकताएँ >> शीर्षक और आदेश >> शीर्षक >> जब टर्मिनल कमांड अपना शीर्षक निर्धारित करते हैं: >> " प्रारंभिक शीर्षक शीर्षक "

फिर निष्पादित करें: सूक्ति-टर्मिनलों - save-config = टर्मिनलों- cfg

विंडो बंद करें

एक नया टर्मिनल खोलें, और इसमें निष्पादित: सूक्ति-टर्मिनलों - लोड-विन्यास = टर्मिनलों-सीएफजी

मेरे लिए अच्छा है, सभी शीर्षक रखे।


0

हाइपर ( https://github.com/zeit/hyper ) एक अच्छा क्रॉस प्लेटफॉर्म विकल्प है जो जावास्क्रिप्ट में लिखा है और इलेक्ट्रॉन के साथ बंडल किया गया है।

एक PR है जो सत्र बचाने / बॉक्स को पुनर्स्थापित करने के लिए समर्थन जोड़ने जा रहा है: https://github.com/zeit/hyper/pull/945

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.