আপডেট এপ্রিল 7: একটি ভিন্ন সংস্করণ যুক্ত হয়েছে এবং আলবার্ট খুঁজে পেয়েছে, দেখুন আপডেট এবং বোনাস বেলো !!!
ড্যাশ কার্যকারিতা সম্পর্কিত : আপনি " নতুন উইন্ডো খোলার আগে এটি পরীক্ষা করার জন্য লঞ্চারের ডিফল্ট আচরণটি পরিবর্তন করার কোনও উপায় আছে কি? " । প্রাথমিক উত্তরটি হ'ল না, নিয়মিত ব্যবহারকারী হিসাবে আপনার আচরণটি ড্যাশ যুক্ত করার কোনও উপায় নেই। যাইহোক, যদি কোনও scopeক্য স্কোপ ডেভেলপার থাকে যিনি এটি বাস্তবায়নে ইচ্ছুক হন, আপনি তাদের কাছে যেতে পারেন বা যদি আপনার দৃ resolve়তা এবং শিখতে আগ্রহী হয় তবে আপনি নিজেরাই বিকাশ করতে পারেন। আমার কোডিং দক্ষতা খুব পরিমিত, অতএব আমি শেল স্ক্রিপ্টিং এবং স্ক্রিপ্টগুলির জন্য উপলব্ধ গ্রাফিকাল ফ্রন্ট-এন্ডকে কাজের ব্যপার হিসাবে ব্যবহার করি।
সম্পর্কে তথ্য
মূল পোস্ট:
আমি একটি স্ক্রিপ্ট লিখেছি যাতে আপনি যা চেয়েছিলেন তা অর্জন করতে জেনিটি কথোপকথন এবং ডাব্লুএমটিআরটিএল ব্যবহার করে। লক্ষ্য করুন যে এটি একটি গ্রাফিক্যাল স্ক্রিপ্ট, এর অর্থ এটি জিইউআইতে কেবল উইন্ডোগুলির সাথেই কাজ করবে এবং আপনি যদি টিটিটিতে কিছু লঞ্চ করার চেষ্টা করেন তবে এটি কাজ করবে না। এ ছাড়া, আমি যা বুঝি আলফ্রেড থেকে ঠিক একই কাজ করে thing আপনি এখানে একটি ডেস্কটপ শর্টকাট তৈরি করতে পারেন বা এটিতে লঞ্চ শর্টকাট, এখানে এবং এখানে বর্ণিত ।
এই পান্ডুলিপি:
#!/bin/bash
# Author: Serg Kolo
# Description: A launcher script that checks whether
# or not a window of a particular program already exists
# If a window of such program is open, bring it to focus
# Otherwise - launch a new window
# Written for /ubuntu//q/440142/295286
# Date: April 6 , 2015
#
MYPROG=$( zenity --entry --title='MY LAUNCHER' --text='Type the name of application to run' )
sleep 0.5
wmctrl -lx | awk '{print $3}' | grep -i "$MYPROG"
if [ $? -eq 0 ]; then
sleep 1
wmctrl -xa $MYPROG
#as an alternative try the line bellow
#wmctrl -a $MYPROG
exit 1
else
$MYPROG &
exit 0
fi
পার্শ্ব নোটস: পূর্ববর্তী সংস্করণে, স্ক্রিপ্টটি পূর্ববর্তী অভিব্যক্তিগুলি সফলভাবে বেরিয়ে এসেছে কিনা তা পরীক্ষা করতে ইকো $? ব্যবহার করেছেন? মুড়ুর পরামর্শ অনুসারে (সম্পাদনা থেকে) আমি কোডটি কিছুটা আরও কমপ্যাক্ট সংস্করণে পরিবর্তন করেছি, সুতরাং আমি আপনাকে পূর্ববর্তী সংস্করণ এবং বর্তমানের দিকে একবার নজর দেওয়ার পরামর্শ দিই।
এছাড়াও, এর আগে wmctrl -a $MYPROG
গুগল-ক্রোম বা ক্রোমিয়াম-ব্রাউজার পরীক্ষা করে কাজ করা হয়নি; কিছু নির্বোধ কারণে কিছু প্রোগ্রামগুলির উইন্ডোটির ডাব্লুএম_সিএলএসএস সম্পত্তি রয়েছে, যখন তালিকাভুক্ত প্রোগ্রামটি dpkg --get-selections
ছোট হাতের তালিকাভুক্ত (কেবলমাত্র পড়ুন man wmctrl
এবং চালান wmctrl -lx
, আপনি জানেন)। -এক্স যোগ করার জন্য এটি যত্ন নেওয়া উচিত। স্ক্রিপ্টটি ইতিমধ্যে উন্মুক্ত ক্রোমিয়াম উইন্ডোটিকে যেমনটি করা উচিত ততক্ষণ উপস্থিত করে
আরেকটি জিনিস - wmctlr কিছুটা অদ্ভুত যে এটি কখনও কখনও একটি বিলম্ব প্রয়োজন (অন্য স্ক্রিপ্টে এটির সাথে অভিজ্ঞতা ছিল), তাই আমাকে sleep 1
লাইন যুক্ত করতে হয়েছিল। আগে এটি ফায়ারফক্সের সাথে এক রকম এবং চালু ছিল তবে এখন সাঁতার কাটে।
কর্মের স্ক্রিপ্ট
অ্যানিমেশন বেলোতে আপনি দেখতে পারবেন যে স্ক্রিপ্টের প্রথম রানটিতে ফায়ারফক্স খোলা রয়েছে এবং স্ক্রিপ্টটি সেই উইন্ডোটিতে ফোকাস দেয়; দ্বিতীয় পরীক্ষায়, আমি গুগল-ক্রোমের নতুন উদাহরণ খুলি যা আগে খোলা হয়নি। (পার্শ্ব নোট: আপনি যদি ডেস্কটপ সম্পর্কে উত্সাহী হন, যাইহোক, এটি কায়রো ডকের সাথে ওপেনবক্স)
মন্তব্যে প্রতি পরামর্শ, এম্বেড অ্যানিমেশন সরানো হয়েছে, পোস্ট লিঙ্ক শুধুমাত্র। ভাঙা থাকলে রিপোর্ট করুন!
http://i.stack.imgur.com/puuPZ.gif
আপডেট, ২ April এপ্রিল
জেনটির ড্রপ-ডাউন এন্ট্রি বাক্সে তালিকাভুক্ত সমস্ত প্রোগ্রাম তৈরি করতে আমি স্ক্রিপ্ট কিছুটা উন্নত করেছি। এখন ব্যবহারকারীকে প্রতিটি প্রোগ্রাম মুখস্ত করতে হবে না, তবে কেবল তীরচিহ্নগুলি ব্যবহার করে তাদের তালিকার মাধ্যমে স্ক্রোল করতে পারেন বা ড্রপ ডাউন মেনুটি খুলতে পারেন। এছাড়াও, এই উন্নত সংস্করণটি উইন্ডোটিকে নাম নয়, উইন্ডো আইডি দ্বারা উত্থাপন করে, যা আরও ভাল পারফরম্যান্স দেয়। দ্রষ্টব্য, আমি .ডেস্কটপ ফাইলগুলির মধ্য দিয়ে যাচ্ছি তা হ'ল ধরণের রিন্ডন্ড্যান্ট, দুবার কাট কমান্ড ব্যবহার করে, তবে যেহেতু আমার স্ক্রিপ্ট-ফু এতদূর ভাল নয়, তাই আমি এটাই করতে পারি। উন্নতির জন্য পরামর্শ স্বাগত!
#!/bin/bash
# Author: Serg Kolo
# Description: Second version of a launcher script that checks whether
# or not a window of a particular program already exists
# If a window of such program is open, bring it to focus
# Otherwise - launch a new window
# Written for /ubuntu//q/440142/295286
# Date: April 7 , 2015
#
set -x
MYPROG=$(zenity --entry --text 'Select program from list' --entry-text $(ls /usr/share/applications/*.desktop | cut -d'/' -f5 | cut -d'.' -f1 | xargs echo))
sleep 0.5
# Do we have a window of such program ?
wmctrl -lx| awk '{print $3}' | grep -i $MYPROG
if [ $? -eq 0 ]; then
sleep 0.5 # if yes, find that window id, and raise it
WINID=$(wmctrl -lx | grep -i $MYPROG | awk 'NR==1{print $1}')
wmctrl -ia $WINID &
# exit 0
else
echo $MYPROG | grep -i libreoffice
if [ $? -eq 0 ]
then
MYPROG=$(echo $MYPROG | sed 's/-/ --/g')
fi
$MYPROG &
# exit 0
fi
বোনাস:
আমি আসলে আলবার্টকে পেয়েছি যা আলফ্রেডের লিনাক্স সংস্করণ, তবে নিজে চেষ্টা করে দেখিনি । চেক আউট যদিও মূল্যবান। তবে, জ্যাকব যেমন ইতিমধ্যে উল্লেখ করেছেন, এটি এখনও বগি।
জ্ঞোম-ডু নামে একটি অ্যাপ রয়েছে যা গ্রাফিকভাবে আলফ্রেডের সাথে একই রকম দেখাচ্ছে তবে এর স্ক্রিপ্টের মতো কার্যকারিতা নেই।
আপনি যদি এই স্ক্রিপ্টটি পছন্দ করেন তবে আমাকে যদি কিছু ঠিক করার প্রয়োজন হয় তবে আমাকে জানান, এবং আপনি যদি দরকারী মনে করেন তবে উত্তরটিকে উচ্চতর করতে ভুলবেন না