একটি অ্যাপ্লিকেশন খুলতে / সামনে আনতে কাস্টম হটকি / শর্টকাট


11

আমি মনে করি না এটি সিস্টেমে নির্মিত হয়েছে, তবে খুব ঝামেলা ছাড়াই এটি করা কি সম্ভব?

বলুন আমি হটকি দিয়ে একটি নির্দিষ্ট প্রোগ্রাম খুলি এবং আমি যখন আবার সেই হটকি টিপব তখন প্রোগ্রামের উইন্ডোটি সামনে এনে দেওয়া হয়।

আমি এটি উবুন্টু 9.04 এ করতে চাই।

হয়তো ডি-বাস দিয়ে? কোন বিশেষজ্ঞ?

আপডেট : কারওর সাহায্যের ক্ষেত্রে আমি এখানে যা শেষ করেছি তা এখানে:

#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
  WID=`cat /tmp/myterm.pid`
  xdotool windowactivate $WID
  if [ "$?" != "0" ]; then
    WID=""
  fi
else
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi

if [ "$WID" == "" ]; then
  /usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
  echo $WID > /tmp/myterm.pid
else
  xdotool windowactivate $WID
fi

অবশ্যই এটি সরল করা যেতে পারে, কিন্তু আমি কোন bashউইজ না। এছাড়াও, আমার উদাহরণটি কাজ করার জন্য, আমি টার্মিনালে একটি কাস্টম প্রোফাইল তৈরি করেছি যা উইন্ডোতে একটি অনন্য শিরোনাম প্রয়োগ করে যাতে এটি পরে খুঁজে পাওয়া যায়। সম্ভাবনা সীমাহীন!


1
এই সাধারণ কাজের জন্য, জেটিবির পদ্ধতি আরও ভাল কাজ করে, কারণ এক্সডটুলগুলি কখনও কখনও এক্স ত্রুটি ছুঁড়ে ফেলে এবং ডাব্লুএমটিআরটিএল দ্রুত হয়।
ইভান

উত্তর:


10

wmctrlপ্রোগ্রাম ঠিক কি আপনি যা খুঁজছেন হয় ( sudo apt-get install wmctrl)। wmctrl -a "AppTitle"অ্যাপটি সামনে আনার জন্য আপনি কমান্ডটি ব্যবহার করতে পারেন । wmctrl -lসমস্ত উপলব্ধ উইন্ডো তালিকাভুক্ত করবে, সুতরাং আপনার প্রোগ্রামটি চালু আছে কিনা এবং তা চালু করে বা সামনে এনেছে কিনা তা পরীক্ষা করে এমন শেল স্ক্রিপ্ট লিখতে সহজ হওয়া উচিত। তারপরে আপনি এটিকে কেবল একটি কীবোর্ড শর্টকাটে আবদ্ধ করতে পারেন।

প্রথমে কোথাও নীচের স্ক্রিপ্টটি সংরক্ষণ করুন, আমি ব্যবহার করব /home/jtb/code/bringToFront। এটি দুটি আর্গুমেন্ট লাগে, প্রথমটি আপনি প্রোগ্রামটি চালু করতে টার্মিনালে টাইপ করবেন, দ্বিতীয়টি প্রোগ্রাম উইন্ডোর শিরোনামের একটি স্ট্রিং। শিরোনামে যদি কোনও ধ্রুবক অনন্য স্ট্রিং না থাকে তবে আপনাকে প্রোগ্রামটির উইন্ডোটি খুঁজে পেতে আরও কিছুটা কাজ করতে হবে।

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. আপনার বর্তমান ডিরেক্টরিতে chmod +x bringToFrontস্ক্রিপ্টের সাহায্যে স্ক্রিপ্টটি সম্পাদনযোগ্য হয়ে উঠুন। তারপরে নিশ্চিত হয়ে নিন যে এটি কাজ করে; ফায়ারফক্স চালু করতে / ফোকাস করতে আপনি চালাতে পারেন ./bringToFront firefox "Mozilla Firefox"

  2. এখন আমাদের একটি শর্টকাট কী বাঁধতে হবে। gconf-editorবাম থেকে ফোল্ডার কাঠামোটি চালান এবং নেভিগেট করুন /apps/metacity/keybinding_commands

  3. commandএকটি ফাঁকা মান সহ প্রথমটিতে ডাবল ক্লিক করুন , সম্ভবত command_1। স্ক্রিপ্টের পুরো পথটি টাইপ করুন এবং দুটি পরামিতি সরবরাহ করুন, যেমন /home/jtb/code/bringToFront firefox Firefox

  4. বাম দিকের প্যানেল থেকে global_keybindings, পরবর্তী ফোল্ডারটি নির্বাচন করুন । এই runকমান্ড আপনাকে শুধু সংজ্ঞায়িত মিলে এন্ট্রি, সম্ভবত run_command_1। এটিতে ডাবল ক্লিক করুন এবং আপনি যে কীবোর্ড শর্টকাটটি ব্যবহার করতে চান তা টাইপ করুন। পরিবর্তনকারীকে কোণ বন্ধনীগুলিতে রাখুন, যেমন <Ctrl><Alt>F

এখন Control+ Alt+ Fআপনার ফায়ারফক্স উইন্ডোটিকে সামনে আনবে বা এটি ইতিমধ্যে চালু না থাকলে এটি চালু করবে launch


হ্যাঁ, আমি কয়েক মিনিট আগে এটি সম্পর্কে জানতে পেরেছিলাম, তবে আমি এক্সডটুলের সাথে গিয়েছিলাম। ধন্যবাদ!
ইভান

আমি উল্লেখ করতে ভুলে গিয়েছিলাম যে আমি পুরোপুরি প্রভাবটি সম্পাদনের জন্য gconf- তে গ্লোবাল শর্টকাট এবং কমান্ডগুলিও ব্যবহার করেছি (দরিদ্র মানুষের কোপ কনসোল!)।
ইভান

আহ, হ্যাঁ আমি নিজে xdotool ব্যবহার করি নি তবে মনে হচ্ছে এটি আপনাকে আরও কিছুটা নমনীয়তা দেয়। Gconf সম্পর্কে ভাল পয়েন্ট। যেহেতু এটি বেশ অপ্রত্যাশিত আমি সম্ভবত উত্তরটি সম্পাদন করে অন্য কারও জন্য এটির জন্য আরও বিশদ অন্তর্ভুক্ত করতে চাই।
jtb

পোর্ট ম্যানসের ভূমিকম্পের কনসোল? তিলদার মতো তুমি? ফ্রেশমেট.নেট
প্রজেক্টস /

হ্যাঁ, আমি টিল্ডাটিও ব্যবহার করি, তবে আমি সপ্তাহের মধ্যে বেশ কয়েকটি প্রকল্পে কাজ করি এবং প্রত্যেকটির জন্য আমি সর্বদা তিন বা চারটি ট্যাব খোলাম, তাই খুব শীঘ্রই টিল্ডা ক্লিটারিং ছাড়াই প্রকল্পের কনসোল ("ওয়ার্কস্পেস") এ স্যুইচ করা আমার পক্ষে খুব দরকারী।
ইভান

3

এটি করার আরও একটি উপায় এখানে xdotools। পপ-আপ করার প্রক্রিয়াটি চালানোর জন্য জারি করা কমান্ড লাইন দ্বারা স্বীকৃত (কোনও পিড ফাইল বা অনন্য উইন্ডো শিরোনামের প্রয়োজন নেই)।

#!/bin/bash

cmd="$@"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline 

pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline

if [ -z "$pid" ]; then # no pid
    exec $cmd
    # run command
else
    winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
    # first visible window owned by pid
    xdotool windowactivate $winid
    # give window focus
fi

0

তার জন্য ধন্যবাদ. আমি একটি উইন্ডো শর্টকাট স্ক্রিপ্ট তৈরি করতে এর পরিবর্তিত সংস্করণ ব্যবহার করি যা একাধিক উদাহরণের মাধ্যমে সাইক্লিং সমর্থন করে। যদি তুমি আগ্রহী হও:

http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/

চিয়ার্স :)


0

জেটিবি এর আগে পোস্ট করা উত্তরটি দুর্দান্ত তবে কখনও কখনও আপনি সঠিক শিরোনামের সাথে মিল রাখতে চাইবেন (যেমন আপনি "গিটক্রেন" খুলতে চান তবে আপনার ব্রাউজারের শিরোনাম "গিটক্রেন বনাম সি এল এলআই "ও ক্যোয়ারীর সাথে মেলে)।

#!/bin/bash
if [ $1 == "-exact" ]
then
    additional_arguments="-F "
    app_launch_command=$2
    app_title=$3
else
    additional_arguments=""
    app_launch_command=$1
    app_title=$2
fi

if [ `wmctrl -l $additional_arguments| grep -c "$app_title"` != 0 ]
then
    wmctrl $additional_arguments -a "$app_title"
else
    $app_launch_command &
fi

সুতরাং এখন আপনি নীচের মত আপনার টিউফ্রন্ট স্ক্রিপ্ট কল করতে পারেন:

#exact match
./bringToFront.sh -exact "flatpak run com.axosoft.GitKraken" "GitKraken"
#or
./bringToFront.sh -exact <command_to_launch_the_app> <app_title

#partial match like the old script
./bringToFront.sh "flatpak run com.axosoft.GitKraken" "GitKraken"
#or
./bringToFront.sh <command_to_launch_the_app> <app_title>

0

এই সমাধানটি প্যারামিটারাইজড নয়, তবে আমি এটি ব্যবহারে ফোকাস আনতে বা জিনোম-ক্যালকুলেটর শুরু করতে ব্যবহার করেছি ।

-আর বিকল্পটি উইন্ডোটি সন্ধান করে বা ব্যর্থ হয়, যদি এটি পাওয়া যায় যে এটি বর্তমান ডেস্কটপে স্থানান্তরিত হয়, উত্থাপিত হয় এবং ফোকাস দেওয়া হয়। জিনোম-ক্যালকুলেটর নাম এটা নাম দিয়ে জানালা ক্যালকুলেটর , এটি সহজে parameterised যেতে পারে, কিন্তু আমি তা করতে প্রয়োজন নেই খুঁজে পেয়েছি। আমি এটি ম্যাপ করেছি Ctrl-Alt-c

#!/bin/bash
# start the calculator and raise and focus (requires wmctrl)
# X Tian 06sep2017 created

wmctrl -R Calculator
if [[ $? -ne 0 ]]
  then 
    gnome-calculator &
fi

0

আমার একই সমস্যা ছিল এবং যেহেতু আমি কোনও স্যুটিং সমাধান খুঁজে পাইনি, আমি একটি তৈরি করেছি:

https://hyperkeys.xureilab.com

https://github.com/xurei/hyperkeys

আপনি সংজ্ঞায়িত শর্টকাট দিয়ে উইন্ডোটি পিন করতে পারেন। আমি ব্যক্তিগতভাবে শিন্ট + ALT + [QWER] পিন করতে এবং ALT + [QWER] সামনে আনার জন্য ব্যবহার করি। যদিও অ্যাপটি ওপেন না করা থাকলে তা খুলতে পারবেন না।

এটি একটি মুক্ত-উত্স, লিনাক্স-প্রথম সরঞ্জাম। একটি উইন্ডোজ সংস্করণ উপলব্ধ।

আশা করি এটা সাহায্য করবে ! আমি প্রতিক্রিয়া খুঁজছি, সুতরাং আপনার যদি কোনও প্রশ্ন থাকে তবে একটি সমস্যা তৈরি করুন ;-)

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