सूक्ति-टर्मिनल में प्रोफाइल के बीच स्विच करने के लिए कमांड-लाइन


20

मैंने गनोम-टर्मिनल के लिए एक नई प्रोफ़ाइल बनाई है और मैं "इम्प्लिक्ट" प्रोफ़ाइल और नए बनाए गए प्रोफ़ाइल के बीच स्विच कर सकता हूं जैसा कि आप नीचे की छवि में देख सकते हैं:

सूक्ति-टर्मिनल में प्रोफाइल के बीच स्विच करें

अब मुझे आश्चर्य है कि मैं कमांड-लाइन / स्क्रिप्ट का उपयोग करके प्रोफाइल के बीच कैसे स्विच कर सकता हूं या शायद इसके लिए शॉर्टकट का उपयोग कर सकता हूं।

नोट: जैसे समाधान:

gnome-terminal --tab-with-profile=Implicit && exit 

बाहर रखा गया है क्योंकि मैं किसी अन्य टर्मिनल को बंद करने और खोलने के लिए पसंद नहीं करता हूं या प्रोफ़ाइल बदलने की इस प्रक्रिया में एक और टर्मिनल विंडो प्राप्त कर सकता हूं।


1
Gconftool-2 के साथ आप उस प्रोफाइल को सेट कर सकते हैं जिसके परिवर्तन तत्काल हैं। क्या आपने इसकी जाँच की है -> stackoverflow.com/questions/660442/…
स्टॉर्मविरक्स

@Stormvirux नहीं ... तो क्या आप बता सकते हैं कि प्रोफ़ाइल को स्विच करने के लिए gconftool या gconftool-2 का उपयोग कैसे करें? मुझे वहां कोई अच्छा जवाब / स्पष्टीकरण नहीं मिलता है।
रादु रदिअनु ०

डुप्लिकेट प्रश्न: askubuntu.com/questions/247041/…
जैकब

जवाबों:


9

"निहित" प्रोफ़ाइल पर स्विच करने के लिए:

xdotool key Alt+t p Return

दूसरी प्रोफ़ाइल पर जाने के लिए:

xdotool key Alt+t p Down Return

xdotool Xdotool स्थापित करें उबंटू में डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए इसे पहले स्थापित किया जाना चाहिए।

बेशक, इन आदेशों के लिए कस्टम कीबोर्ड शॉर्टकट जोड़े जा सकते हैं ।


यह कोई शॉर्टकट नहीं है। आप केवल keypresses का अनुकरण कर रहे हैं, केवल अनुप्रयोग के mnemonics है।
ब्रिअम

1
@Braiam हां, यह कोई शॉर्टकट नहीं है, मैं देख सकता हूं। यह एक कमांड-लाइन है ( man xdotoolअधिक जानकारी के लिए देखें ) जैसा कि मैंने पूछा, जो बिल्कुल मेरी इच्छा के अनुसार काम कर रहा है और मैं इस जवाब से खुश हूं जब तक कि कुछ बेहतर दिखाई नहीं देगा। ;)
राडु रियडेनु

आपको गंभीरता से सुझाव देना चाहिए कि बगट्रैकर में ...
ब्रियम

@Braiam जैसा कि मैंने आपको बताया, मैं इस समाधान के साथ ठीक हूं, यह एक आकर्षण की तरह काम कर रहा है। आपके सुझाव के बारे में, 2002 से इस अर्थ में एक है (2010 में संशोधित किया गया: " यह अतिरिक्त अच्छा होगा यदि मैं अपनी पसंद की प्रोफ़ाइल खोलने के लिए बिल्कुल दो कीस्ट्रोक्स का उपयोग कर सकता हूं। " - यह टिप्पणी देखें )। तो, आपको क्यों लगता है कि मुझे एक नया जोड़ना चाहिए? क्या आपको डुप्लिकेट पसंद है?
राडू रियडेनू

यह अब दुर्भाग्यपूर्ण
ढंग से

5

बहुत सारे शानदार जवाब पहले से ही लेकिन मैं xdotool का उपयोग करके एक और भिन्नता जोड़ना चाहता था जिसे मेनू बार की आवश्यकता नहीं है ...

कुंजी कॉम्बो शिफ्ट + F10 एक पॉप-अप मेनू (टर्मिनल पर राइट-क्लिक के बराबर) खोलेगी और वहां से प्रोफ़ाइल को बदला जा सकता है।

जैसे xdotool key shift+F10 r 3तीसरे प्रोफ़ाइल को पाने के लिए

मैंने यह भी पाया है कि इस विधि में xdotool (जो मुझे मेन्यू बार विधि के लिए आवश्यक पाया गया) के लिए देरी की आवश्यकता नहीं है, इसलिए यह थोड़ा तेज़ है।

मैं प्रोफाइल को बहुत बदल देता हूं इसलिए मैं इसे एक फंक्शन में लपेटता हूं:

function chp(){
      xdotool --clearmodifiers key Shift+F10 r $1
}

इसलिए मैं सिर्फ chp NNth प्रोफ़ाइल पर स्विच करने के लिए कॉल कर सकता हूं ।

मेरे सेटअप के कुछ और सुझाव

  • chpअपने .bashrc में एक कमांड जोड़कर मैं नए टैब को हमेशा डिफॉल्ट प्रोफाइल पर स्विच करने के लिए मजबूर कर सकता हूं

  • मैं होस्ट के आधार पर अपने ssh सत्रों को रंग देता हूं लेकिन मुझे नए टैब या विंडो खोलने के लिए मेरा ssh उपनाम पसंद नहीं है और मैं चाहता हूं कि जब मैं ssh से बाहर निकलें तो प्रोफ़ाइल डिफ़ॉल्ट में वापस बदल जाए। मेरा समाधान: alias somehost="chp 2; ssh user@somehost; chp 1"

  • मैं ध्वज को xdotool देता हूं --clearmodifiersताकि यदि मैं एक संशोधक कुंजी (जब एक टैब / विंडो खोलने, ssh, आदि को बाहर निकालने के लिए) हो, तो यह xdotool के साथ हस्तक्षेप नहीं करेगा।

  • मैं अपने प्रोफ़ाइल नामों को संख्याओं के साथ प्रस्तुत करता हूं ताकि यदि मैं एक नया जोड़ूं, तो यह प्रोफ़ाइल मेनू के वर्णानुक्रम के कारण अन्य सभी को स्थानांतरित नहीं करता है


... बस ध्यान दें कि इस विधि में टर्मिनल सेटिंग्स में सक्षम होने के लिए मेनू त्वरक कुंजी की आवश्यकता है> सामान्य
भाईJ4mes

मेरे xdotool के लिए FYI --clearmodifiersकरने के बाद आने की जरूरत है key
lilydjwg

4

कोई भी शॉर्टकट नहीं है जो आपको जीयूआई के उपयोग के बिना टर्मिनल के भीतर प्रोफ़ाइल को बदलने की अनुमति देता है (जैसा कि आपने टिप्पणियों में कहा गया है)। मैनुअल का उद्धरण ( स्थिर , विकास 3.9 ):

आप टर्मिनल tab चेंज प्रोफाइल से एक प्रोफ़ाइल का चयन करके अपने वर्तमान टर्मिनल टैब या विंडो में प्रोफ़ाइल को बदल सकते हैं।

(आप इसे बग ट्रैकर में सुझाव के रूप में प्रस्तावित कर सकते हैं )


वास्तव में, एक शॉर्टकट है: Alt + T के बाद P , Up Arrow या Down Arrow और Enter । लेकिन यह थोड़ा लंबा है ...
Radu Rădeanu

/: @ RaduRădeanu Alt + T मेरी टर्मिनल 3.8.3 में काम नहीं करता
Braiam

1
@ RaduRădeanu मुझे लगता है कि Alt + T है GUI का उपयोग वास्तव में, यह सिर्फ माउस का उपयोग नहीं कर रहा है।
चांदनीसुख

@Braiam यदि आप के गैर-अंग्रेजी संस्करण का उपयोग कर रहे हैं gnome-terminal, तो प्रेस करें altऔर देखें कि 'टर्मिनल' के अपने भाषा संस्करण के लिए कौन से अक्षर पर प्रकाश डाला जा रहा है (यह मेरे पोलिश संस्करण में 5 वाँ आइटम है, 'सहायता' के बचे हुए), फिर उस पत्र का उपयोग करें के साथ alt
चांदनीसुख

@ moon.musick मैं gnome-टर्मिनल 3.8.3 के डेबियन संस्करण का उपयोग कर रहा हूं, और ऐसा लगता है कि इसमें मेनू को एक्सेस करने के लिए Alt संशोधक नहीं है।
Braiam

3

मैं ऐसा ही करना चाह रहा था और आखिरकार एक स्क्रिप्ट काम कर रही थी, मैंने इसे अपने गितहब पर डाल दिया ।

जैसे मैं README.md में समझाता हूं, यह वास्तव में स्विच नहीं करता है, लेकिन एक डिफ़ॉल्ट कॉन्फ़िगरेशन को डिफ़ॉल्ट प्रोफ़ाइल में लोड करता है। ऐसा करने के लिए, स्क्रिप्ट के पहले रन पर फ़ाइल करने के लिए प्रत्येक प्रोफ़ाइल का कॉन्फ़िगरेशन सहेजा जाता है। स्क्रिप्ट ऐसा लगता है जैसे आप प्रोफाइल के बीच स्विच कर रहे हैं, जो मेरे लिए काफी अच्छा है। आशा है कि यह किसी को भी मदद करता है ...


2

आपके उद्देश्य के आधार पर, आपको यह स्क्रिप्ट उपयोगी लग सकती है: https://github.com/xyrix/gnome-terminal-profile-switcher

यह एक प्रकार का बंदर पैच करता है और प्रत्येक टर्मिनल के लिए एक नया प्रोफ़ाइल बनाता है, फिर अपने वर्तमान टर्मिनल के लिए प्रोफ़ाइल के विषय को स्विच करने के लिए एक प्रोग्राम को उजागर करने के लिए कुछ पर्यावरण चर निर्धारित करता है।

उम्मीद है कि उदाहरण safe_ssh स्क्रिप्ट चीजों को स्पष्ट कर देगी :-) मैं इसे अभी एक साल से अधिक समय से उपयोग कर रहा हूं और इससे मुझे कंपनी के लाइव डेटाबेस ^ _ ^ को नष्ट नहीं करने में मदद मिली है


2

यदि आपके पास उन सर्वरों की एक सूची है जो आप अक्सर एक्सेस करते हैं, तो मेरा मानना ​​है कि सबसे आसान समाधान केवल उस बॉक्स के सत्र के लिए दूसरी विंडो को लागू करना होगा।

सबसे पहले, प्रत्येक दूरस्थ स्थान के लिए एक अलग सूक्ति-टर्मिनल प्रोफ़ाइल बनाएं जिसे आप अक्सर उपयोग करते हैं। फिर, प्रत्येक प्रोफ़ाइल में, यह निर्दिष्ट करें कि टर्मिनल को सादे बॉक्स के बजाय उस बॉक्स के लिए SSH लॉगिन कमांड निष्पादित करना चाहिए।

ssh alice@athena

अंत में, एक नई सुदूर पटकथा लिखने के लिए एक संक्षिप्त आईडी लिखें जिसमें एक प्रोफ़ाइल आईडी दी गई हो।

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1
exit 0

इस रणनीति का उपयोग करके आप प्रत्येक बॉक्स की टर्मिनल विंडो के "अलग-अलग" रूप बदल सकते हैं, और उन्हें एक "कंट्रोल" टर्मिनल से किक कर सकते हैं। उदाहरण के लिए, यदि हम इस स्क्रिप्ट को "आरएलवी" कहते हैं, तो हम केवल प्रोफाइल नाम के साथ स्क्रिप्ट को लागू करके एक दूरस्थ विंडो को स्पॉन कर सकते हैं।

>> rlv athena

यदि आप कभी भी किसी होस्ट नाम से मोटी-फिंगर करते हैं, या उस होस्ट के लिए एक प्रोफ़ाइल सेट करने की उपेक्षा करते हैं, तो आपको स्थानीय बॉक्स पर एक और डिफ़ॉल्ट-प्रोफ़ाइल विंडो मिल जाएगी। इससे बचने के लिए स्क्रिप्ट को कोड करने का एक तरीका है, स्क्रिप्ट को केवल गनोम-टर्मिनल के बजाय स्क्रिप्ट में डालकर:

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1 -e "ssh $1"
exit 0

... लेकिन फिर आप उस बॉक्स के लिए अपने लॉगिन उपयोगकर्ता नाम को परिभाषित करने का लचीलापन खो देते हैं। स्क्रिप्ट की वह अतिरिक्त विशेषता जो मैं पाठक के लिए एक अभ्यास के रूप में छोड़ता हूं।


मुझे उस विचार के साथ प्रदान करने के लिए धन्यवाद। :-) मैं यह जोड़ना चाहता हूं कि आप आसानी से एक .desktop फ़ाइल लिख सकते हैं जो आपके पसंदीदा स्थानों को एक (डबल) तरीके से खोल देगी।
हिनज

1

मैंने अभी देखा है कि प्रश्न में मेरा मूल हल पहले ही अस्वीकार कर दिया गया है। जबकि प्रोफ़ाइल को बदलने का कोई सरल तरीका नहीं है, आप settermकमांड का उपयोग करके पृष्ठभूमि / अग्रभूमि रंग बदल सकते हैं ।

तो, यह setterm -term linux -background black -foreground greenआपको हरे रंग के पाठ के साथ काली पृष्ठभूमि देगा। एकमात्र समस्या यह है कि एलएस ने रंगीन उत्पादन किया है, इसलिए आप एलएस रंग को बंद कर सकते हैं। अन्यथा यह पिछले रंग योजना को रीसेट करता है

मूल पोस्ट : एक तरह का तरीका है। मैन गनोम-टर्मिनल से:

--window-साथ-प्रोफाइल = प्रोफ़ाइल

             Open a new window containing a  tab  with  the
             given profile.  More than one of these options
             can be provided.

यहाँ मेरी मशीन से उदाहरण है। मेरे तीन प्रोफाइल हैं: B & G (हरे रंग पर काला), ForPrinting (काला फ़ॉन्ट, सफेद पृष्ठभूमि), और डिफ़ॉल्ट। इसलिए मैं जो कर रहा हूं वह वर्तमान विंडो प्रकार में है gnome-terminal --window-with-profile=ForPrinting। फिर मैं या तो कमांड लाइन से पुरानी खिड़की को मार सकता हूं या स्विच कर सकता हूं और इसे ग्राफिक रूप से बंद कर सकता हूं।

B & G प्रोफ़ाइल काम नहीं करती है। शायद क्योंकि और एक वैध चरित्र नहीं है, इसलिए प्रोफाइल को नाम देते समय ध्यान रखें।


0

बहुत बदसूरत समाधान मैं का उपयोग कर समाप्त हो गया है

unset x y
eval $(xwininfo -id $(xdotool getactivewindow) |
       sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \
              -e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p')
xdotool mousemove $(($x + 50)) $(($y + 50))
xdotool click 3; xdotool key --repeat 3 Up; xdotool key Right; xdotool key --delay 50 Down; xdotool key --delay 50 Return

(यह दूसरी प्रोफ़ाइल का चयन करता है, लेकिन आप दूसरी "कुंजी डाउन" कमांड को बदलकर htir प्रोफ़ाइल कह सकते हैं xdotool key --delay 50 --repeat 2 Down

यह क्या कर रहा है:

  1. वर्तमान विंडो के ऊपरी बाएँ निर्देशांक खोजें (उदाहरण के लिए उपयोग में सूक्ति टर्मिनल)।
  2. माउस को उस टर्मिनल के ऊपर ले जाएं
  3. दूसरा प्रोफाइल चुनने के लिए संदर्भ मेनू पर राइट क्लिक करें और नेविगेट करें।

आपको स्थापित किए जाने वाले xdotool की आवश्यकता होगी sudo apt install xdotool

असाधारण की तरह है कि टर्मिनल ही टर्मिनल के माध्यम से विन्यास की अनुमति नहीं देता है!


0

यह बहुत अच्छा होगा कि टर्मिनल "अगली प्रोफ़ाइल" कमांड और शॉर्टकट की पेशकश करे; दुर्भाग्य से, यह नहीं है।

Alt+Tविकलांग लोगों के लिए वर्कअराउंड (संपादित करें> वरीयताएँ> सक्रिय करें - अनियंत्रित) है: F10 left left down rightऔर प्रोफ़ाइल का चयन करें। आउच।


यह देखते हुए कि मेनू बार को दिखाई देने की आवश्यकता है।
गॉथियर

0

यह एक पुरानी पोस्ट है, लेकिन क्योंकि यह ऊपर आ रहा है जब मैं इसी मुद्दे को हल करने के लिए खोज कर रहा था, मैंने सोचा कि मैं अपना समाधान पोस्ट करूंगा।

इसमें एक छोटा अजगर स्क्रिप्ट शामिल है और केवल टर्मिनल लॉन्च करने के बजाय स्क्रिप्ट चलाने के लिए CTRL + ALT + T बटन को फिर से भरना है।

एक टेक्स्ट फ़ाइल बनाएं, मैंने मेरा नाम टर्मिनलहोम रखा है और सुनिश्चित करें कि यह निष्पादन योग्य है। इसमें निम्न कोड रखें। यह अनुक्रम में सभी उपलब्ध प्रोफाइल का उपयोग करके टर्मिनल खिड़कियां खोल देगा, यह सुनिश्चित करेगा कि सूची में पहला "डिफ़ॉल्ट" चिह्नित है।

#!/usr/bin/python
#
# Launch a gnome-terminal window trying to assign each new window 
# to a different profile.
# 
import json
import os
import commands

profiles=[]

try:
    profileList = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList list").replace("'",'"')
    profileDefault = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList default").replace("'",'"')

    profiles.append(json.loads(profileDefault))
    ls = json.loads(profileList)
    ls.remove(profiles[0])
    profiles+=ls

    # find the next available terminal number
    # when terminals are closed, gaps in the numbers can happen
    # terminals are numeric and the lowest slot is filled first
    terminals = commands.getoutput("ls /dev/pts/  | grep -E '^[0-9]+$'").split("\n")
    next = 0
    try:
        while terminals.index(str(next))>=0:
            next += 1
    except:
        pass

    # determine the profile to use
    prof = next % len(profiles)

    # launch the terminal with the specific profile
    cmd="gnome-terminal --window-with-profile='%s'" % (profiles[prof])
    os.system(cmd)
except:
    # if anything fails, launch a default terminal
    print("error")
    os.system("gnome-terminal")

इस स्क्रिप्ट को नया शॉर्टकट असाइन करने के लिए कीबोर्ड सेटिंग्स यूटिलिटी का उपयोग करें। मेरे लिए मैंने CTRL + ALT + T को फिर से असाइन किया है क्योंकि वह शॉर्टकट है जो मैं टर्मिनल विंडो खोलने के लिए उपयोग कर रहा हूं।

अपने टर्मिनल में कई प्रोफाइल बनाना सुनिश्चित करें। यह स्क्रिप्ट आपके सभी प्रोफाइल का उपयोग करेगी। तो जितना अधिक आप बनाते हैं, उतनी अधिक विविधताएं खिड़कियों पर पहुंच सकती हैं। मेरे पास कई हैं जो पृष्ठभूमि के रंग को छोड़कर सभी समान हैं। यह मुझे उनके माध्यम से ऑल-टैब के रूप में पहचानने में मेरी मदद करता है।

टर्मिनल विंडो उदाहरण

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