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


11

আমি দ্রুত কমান্ডগুলি তৈরি করার জন্য টার্মিনালটি প্রায়শই ব্যবহার করি এবং তারপরে আমি এটি ব্যাকগ্রাউন্ডে রেখে যাই যাতে আমি কাজ করার সময় 20+ টার্মিনাল সেশনগুলি খোলা শেষ করি। এটি কারণ খুব সহজেই শর্টকাট কীটি ব্যবহার করতে এবং একটি কমান্ড টাইপ করা খুব তাড়াতাড়ি।

শর্টকাট কী সেট আপ করার কোনও উপায় আছে যাতে আমি একটি নতুন তৈরি করার পরিবর্তে আমার শেষ টার্মিনাল উইন্ডোটি আনতে পারি?


1
এটির একটি সম্পাদিত সংস্করণ সমাধান হতে পারে? এটি একটি একক টার্মিনাল উইন্ডোর জন্য করা এবং এটি সম্পূর্ণরূপে অদৃশ্য হয়ে যাওয়ার জন্য এটি করা সহজতর সহজ হবে। Askubuntu.com/a/595244/72216 আমাকে জানান, আমি উত্তরটি ইজলি রূপান্তর করতে পারি। আপনার টার্মিনাল উইন্ডোর (উইন্ডো) নাম কী?
জ্যাকব ভিলিজম

2
ব্যবহার করে দেখুন এই
এবি

আমি যে উইন্ডোর নামটি ব্যবহার করি তা হ'ল "টার্মিনাল"। তবে আমি যদি টার্মিনালে ট্যাব ব্যবহার করি তবে আপনার সেখানে থাকা স্ক্রিপ্ট পদ্ধতিটি এখনও কাজ করবে? (যেমন সিটিআরএল + শিফট + টি) আমি কোন কম্পিউটারে প্রবেশ করছি তা সনাক্ত করার জন্য আমি তাদের নাম পরিবর্তনও করেছি।
ক্লিক

স্ট্রিং "টার্মিনাল" যতক্ষণ না থাকবে ততক্ষণ। থাজত কি মামলা?
জ্যাকব ভিলিজ

@ জ্যাকবভিলিজম আমি প্রায়শই নামটি "ssh" বা "স্থানীয়" তে পরিবর্তন করি যা নির্ভর করে আমি কী করছি। আমি যদিও একটি অনন্য উপসর্গ অন্তর্ভুক্ত করতে আমার শিরোনাম পরিবর্তন স্ক্রিপ্ট পরিবর্তন করতে পারে। অর্থাৎ '%।%' বা এরকম কিছু something
ক্লিক

উত্তর:


13

আমি একটি টার্মিনাল অবস্থান 10. এই আমি টিপতে পারেন আমার ইউনিটি লঞ্চার পার্শ্বদন্ডে পিন করা হয়েছে আছে Super+ + 0থেকে লঞ্চার আইকনের যা শীর্ষ সর্বশেষ টার্মিনাল উইন্ডোর এনেছে "এ ক্লিক করুন"।

এখানে চিত্র বর্ণনা লিখুন

যদি এটি লঞ্চারে থাকা আপনার পক্ষে ঠিক থাকে (প্রথম 10 পজিশনের মধ্যে একটি, অন্যথায় এটি একটি শর্টকাট পাবেন না!), এটি কাজ করবে।


ওহ এটি দুর্দান্ত ধারণা! আমি এই উত্তরটি পছন্দ করি তবে অন্য লোকেরা কী সামনে আসে তা দেখার জন্য আমি অপেক্ষা করতে যাচ্ছি। আমি টার্মিনালটি খুঁজে পেতে এবং সামনে আনার জন্য এক্সডটুল ব্যবহার করে একটি স্ক্রিপ্ট তৈরি করার কথা ভাবছিলাম।
ক্লিক

আমি মনে করি যে এই সমাধানটি সবচেয়ে সহজেই কার্যকরযোগ্য এবং আমি যে উদ্দেশ্যটি সন্ধান করছি ঠিক সেভাবে কাজ করে। যে কারণে আমি উত্তর হিসাবে চিহ্নিত করব।
ক্লিক

10

আমি গুয়াক ব্যবহার করি এবং এতে আমি খুব খুশি। এফ 12 টিপুন, একটি টার্মিনাল উইন্ডো উপস্থিত হবে, আবার এফ 12 টিপুন, এটি অদৃশ্য হয়ে যায় তবে পটভূমিতে চলতে থাকে। এছাড়াও: দেখতে দুর্দান্ত।


অনুমানের জন্য এখানে অন্য একটি ভোট। লক্ষণীয় যে আপনি যদি একাধিক (বিভিন্ন আকারের) মনিটর ব্যবহার করেন তবে কিছু সংস্করণে এটি সঠিকভাবে কাজ করার জন্য একটি ফিক্স প্রয়োজন - এটি এখনও মূল্যবান।
হোলোয়ে

গুয়াকের উপর এতটা নির্ভরশীল হয়ে উঠলাম যে আমি যখন xmonad এ চলেছি তখন আমি এটিতে অনুকরণ করেছি। অবশ্যই থাকতে হবে!
টনি মার্টিন

6

আপনি একটি মূল সংমিশ্রনের নীচে স্ক্রিপ্টটি রাখতে পারেন। আপনি কী সংমিশ্রণটি টিপলে, টার্মিনাল উইন্ডো গুলি (সম্পূর্ণ) অদৃশ্য হয়ে যাবে। এটিকে আবার চাপুন, আপনার কাছে যেমন ছিল ঠিক তেমন তারা আবার পপ আপ করবে।

আপনার একবার (একবার) করার দরকার কেবলমাত্র আপনার টার্মিনালের উইন্ডোর নাম শনাক্তকরণ স্ট্রিং যুক্ত করা (টার্মিনালের উইন্ডোর বেশিরভাগ ক্ষেত্রে একই নাম রয়েছে)

এটি ব্যবহার করতে

উভয়ই ইনস্টল করুন xdotoolএবং wmctrl:

sudo apt-get install xdotool
sudo apt-get install wmctrl
  1. একটি ফাঁকা ফাইলে স্ক্রিপ্টটি অনুলিপি করুন, এটি সংরক্ষণ করুন hide_terminal.py
  2. প্রধান বিভাগে, টার্মিনাল উইন্ডোর নামের শনাক্তকরণ স্ট্রিং সেট করুন
  3. কী সংমিশ্রনের অধীনে এটি চালান:

    python3 /path/to/hide_terminal.py
    

এই পান্ডুলিপি

#!/usr/bin/env python3
import subprocess
import os

home = os.environ["HOME"]
hidden_windowid = home+"/.window_id.txt"

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")
# --- set the identifying string in the terminal window's name below (you mentioned "Terminal"
window_idstring = "Special_window"
# ---
def execute(cmd):
    subprocess.check_call(cmd)

w_id = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if window_idstring in l]
if len(w_id) !=0:
    for w in w_id:
        execute(["xdotool", "windowunmap", w])
        with open(hidden_windowid, "a") as out:
            out.write(w+"\n")
else:
    try:
        with open(hidden_windowid) as read:
            for w in [w.strip() for w in read.readlines()]:
                try:
                    execute(["xdotool", "windowmap", w])
                except subprocess.CalledProcessError:
                    pass
        with open(hidden_windowid, "wt") as clear:
            clear.write("")
    except FileNotFoundError:
        pass

1
আপনার কাছে সবকিছুর জন্য স্ক্রিপ্ট আছে, তাই না? ; ডি
বাইট কমান্ডার

1
@ বাইটকম্যান্ডার আমি প্রতিরোধ করতে পারছি না, এটি আমার চেয়েও শক্তিশালী :)
জ্যাকব ভিলিজ

মনে রাখবেন যে আপনি যদি ব্যবহার না করে থাকেন তবে আপনাকে শেষ লাইনে টার্মিনালের নামও পরিবর্তন করতে হবে gnome-terminal। এছাড়াও, যদি আপনার একাধিক ওপেন টার্মিনাল থাকে তবে এটি ভেঙে যায়। আমার সিস্টেমে, প্রথম রান সক্রিয়টিকে লুকিয়ে রাখে, দ্বিতীয় রান দ্বিতীয়টি লুকায় এবং তৃতীয় রান কেবল দ্বিতীয় টার্মিনালটি দেয় returns 1 ম সর্বদা জন্য হারিয়ে যায়।
টেরডন

@ এটারডন আরগ, আপনি ঠিক বলেছেন! এটি সংশোধন করে এবং এটি সমস্ত টার্মিনাল উইন্ডোগুলি লুকিয়ে / দেখিয়ে দেবে।
জ্যাকব ভিলিজ

আরও উল্লেখযোগ্য বিষয়, কেবল বাশে কেন এটি করা যায় না? অজগর দিয়ে আপনি যে সমস্ত করছেন সিস্টেম কল চালু করছে আপনি কেন তাতে অজগর আনবেন?
টেরডন

5

এটি কেবল জাকব ভিলিজমের উত্তর হিসাবে একই জিনিস, কেবল বাশে লেখা:

#!/usr/bin/env bash

## window_name will be the first argument passed or, if no
## argument was given, "Terminal"
window_name=${1:-"Terminal"}

## Get the list of open terminals
terms=( $(wmctrl -l | grep "$window_name" | cut -d ' ' -f 1) )

## If all terminals are hidden
if [ -z "${terms[0]}" ]
then
    ## Read the IDs of hidden windows from .hidden_window_id
    while read termid
    do
        xdotool windowmap "$termid"
    done < ~/.hidden_window_id
## If there are visible terminals
else
    ## Clear the .hidden_window_id file
    > ~/.hidden_window_id
    ## For each open terminal
    for i in "${terms[@]}"
    do
        ## Save the current ID into the file
        printf "%s\n" "$i" >> ~/.hidden_window_id
        ## Hide the window
        xdotool windowunmap "$i"
    done
fi

যদি আপনি এটি হিসাবে সংরক্ষণ করেন তবে ~/bin/show_hide.shআপনি যে কোনও উইন্ডোটি আড়াল করতে চান তার শনাক্তকরণ স্ট্রিং দিয়ে এটি চালাতে পারেন। যদি কোনও স্ট্রিং দেওয়া না হয় তবে এটি এতে কাজ করবে Terminal:

show_hide.sh Terminal

1

আমি gnome-shell'ড্রপ ডাউন টার্মিনাল' এক্সটেনশন ব্যবহার করছি , ডিফল্ট শর্টকাট TABতবে এটি সহজেই পরিবর্তিত হয়েছে।


1

এই সাধারণ wmctrl কমান্ড শিরোনামে একটি প্রদত্ত স্ট্রিং সহ একটি উইন্ডো উত্থাপন করবে বা স্ট্রিং সহ কোনও উইন্ডো উপস্থিত না থাকলে একটি কমান্ড চালান।

wmctrl -a <str> || <command to launch application>

যেমন gedit জন্য আমি ব্যবহার করতে পারেন

wmctrl -a gedit || gedit

আপনার অ্যাপ্লিকেশন উইন্ডোটির জন্য উপযুক্ত স্ট্রিংটি খুঁজতে, আপনার অ্যাপ্লিকেশনটি খুলুন এবং চালান

wmctrl -l

0

নিম্নলিখিত পদ্ধতিটি আমার পক্ষে কাজ করেছে:

#!/usr/bin/env bash

# Written by Eric Zhiqiang Ma (http://www.ericzma.com)
# Last update: Jul. 9, 2014

# Read the tutorials at
# http://www.systutorials.com/5475/turning-gnome-terminal-to-a-pop-up-terminal/

# Required tools: xdotool

terminal="gnome-terminal"
stat_file="/dev/shm/actiavte-termianl.term.$USER"
termtype="Terminal"
wait_sec=1
max_wait_cnt=4

# parse options first
if [ "$1" != "" ]; then
    terminal="$1"
fi


term_exists () {
    allterms=`xdotool search --class "$termtype"`
    for e in $allterms; do [[ "$e" == "$1" ]] && return 0; done
    return 1
}

create_terminal () {
    echo "Create new terminal"
    $terminal --maximize &

    exists=1
    wait_cnt=0
    until [ "$exists" == "0" ]; do
        # sleep a while
        sleep $wait_sec

        # Note that the focus window may be from a terminal that
        # already exists; the makes create_terminal choose the existing terminal
        # Making the wait_sec large enough so that the terminal can be created and
        # displayed can make the false choosing more unlikely.

        term=$(xdotool getwindowfocus)
        term_exists "$term"
        exists=$?
        # avoid infinite wait
        let wait_cnt=wait_cnt+1
        if [ $wait_cnt -gt $max_wait_cnt ]; then
            echo "Wait for too long. Give up."
            term=""
            exists=0
        fi
    done

    echo "Created terminal window $term"
    # save the state
    echo "$term" >$stat_file
}

# read the state
if [ -f $stat_file ]; then
    term=$(cat $stat_file)
fi

# check whether it exists
term_exists "$term"
exists=$?
if [[ "$exists" != "0" ]]; then
    create_terminal
    exit 0
fi

# check whether it is already activated
curwin=$(xdotool getwindowfocus)

if [ "$term" == "$curwin" ]; then
    # deactivate (minimize) the terminal if it is currently activated
    xdotool windowminimize $curwin
else
    # activate the terminal if it is not currently activated
    xdotool windowactivate $term
fi

exit 0

তারপরে এটি কেবল অনুমতি কার্যকর করুন এবং সেটিংসে কোনও কীতে স্ক্রিপ্টটি আবদ্ধ করুন।

উৎস:

http://www.systutorials.com/5475/turning-gnome-terminal-to-a-pop-up-terminal/


1
লিঙ্কটি ভেঙে যায় বা পরিবর্তিত হয় সেই লিঙ্ক থেকে কিছু গুরুত্বপূর্ণ অংশ যুক্ত করুন।
জর্জ উদোসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.