আমি সত্যিই হট কর্নার পছন্দ করি। :-)
নীচের চিত্রের মতো কোনও গরম কোণে কাস্টম কমান্ড চালানো কি কোনওভাবে সম্ভব?
আমি সত্যিই হট কর্নার পছন্দ করি। :-)
নীচের চিত্রের মতো কোনও গরম কোণে কাস্টম কমান্ড চালানো কি কোনওভাবে সম্ভব?
উত্তর:
CompizConfig সেটিংস পরিচালক (সিসিএসএম) ইনস্টল করুন। টার্মিনালে চালান:
sudo apt-get install compizconfig-settings-manager
সিসিএসএম খুলুন।
স্লটগুলির একটিতে আপনার কাঙ্ক্ষিত কমান্ডটি প্রবেশ করান। উদাহরণ:
"এজ বাইন্ডিংস" ট্যাবে যান
"কিছুই নয়" ক্লিক করুন এবং আপনার পছন্দসই গরম কোণার (বা প্রান্ত) সেট করুন, যা আপনি সুনির্দিষ্টভাবে নির্ধারিত আদেশটির সাথে মিল রেখেছেন
আপনার মাউস কোণে সরান
এখন আপনার কমান্ড চালানো হয়!
14.04 এ কাজ করার বিষয়টি নিশ্চিত করেছেন।
আপনি যদি ইউনিটি ব্যবহার করে থাকেন এবং সিসিএসএম ইনস্টল করে থাকেন তবে ওজান্দ্রিয়ার উত্তর অবশ্যই আপনার উত্তর। যদি না হয় , বা অন্য ডিস্ট্রোগুলিতে ব্যবহার করতে হয় তবে একটি হালকা ওজনের বিকল্প কার্যকর হতে পারে।
নীচের স্ক্রিপ্টের সাহায্যে আপনি আপনার হটকর্নারের প্রত্যেকের জন্য নির্দিষ্ট কোনও কমান্ড সেট করতে পারেন ।
উদাহরণ হিসাবে, আমি নিম্নলিখিত সেটআপ করেছি:
অবশ্যই আপনি কমান্ডগুলি বহিরাগত স্ক্রিপ্টগুলি চালাতে পারেন।
তদতিরিক্ত, আপনি লাইনে গরম কোণার আকার নির্ধারণ করতে পারেন :
cornersize = 10
কেবল মান (পিক্সেল) পরিবর্তন করুন। স্ক্রিপ্ট আপনার কমান্ডগুলি ট্রিগার করতে (বর্গক্ষেত্র) অঞ্চল সেট করে:
#!/usr/bin/env python3
import subprocess
import time
cornersize = 20
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_pos():
return [int(s.split(":")[1]) for s in get(["xdotool", "getmouselocation"]).split()[:2]]
scrdata = get("xrandr").split(); resindex = scrdata.index("connected")+2
res = [int(n) for n in scrdata[resindex].split("+")[0].split("x")]
match1 = None
while True:
time.sleep(1)
xy = get_pos()
x = xy[0]; y = xy[1]
test = [
[x < cornersize, y < cornersize],
[x > res[0]-cornersize, y < cornersize],
[x < cornersize, y > res[1]-cornersize],
[x > res[0]-cornersize, y > res[1]-cornersize],
]
match2 = [i for i, p in enumerate(test) if all(p)]
if match2 != match1:
if match2:
cmd = commands[match2[0]]
if cmd:
subprocess.Popen(["/bin/bash", "-c", cmd])
match1 = match2
স্ক্রিপ্ট দরকার xdotool
sudo apt install xdotool
hotcorners2.py
স্ক্রিপ্টের শিরোনামে, আপনার আদেশগুলি সেট করুন (উদ্ধৃতিগুলি মনে রাখবেন)
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
(পরবর্তীকালে উপরের বাম / রিগ, নীচে বাম / ডান)
স্ক্রিপ্টটি পরীক্ষা করুন:
python3 /path/to/hotcorners2.py
যদি সমস্ত ঠিকঠাক কাজ করে তবে স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> অ্যাড করুন। কমান্ড যুক্ত করুন:
/bin/bash -c "sleep 5 && python3 /path/to/hotcorners2.py"
যদি আমরা কিছুটা আরও উন্নত কম্পিউটিং ব্যবহার করি, আমরা কমান্ডগুলি ট্রিগার করতে বর্গক্ষেত্রের পরিবর্তে ব্যাসার্ধ ব্যবহার করতে পারি (ভাল পুরানো @Pythgoras ধন্যবাদ):
ছোট পার্থক্য, তবে কেবল মজাদার জন্য:
#!/usr/bin/env python3
import subprocess
import math
import time
# set distance (hotcorner sensitivity)
radius = 20
# top-left, top-right, bottom-left, bottom-right
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_pos():
return [int(s.split(":")[1]) for s in get(["xdotool", "getmouselocation"]).split()[:2]]
# get the resolution
scrdata = get("xrandr").split(); resindex = scrdata.index("connected")+2
res = [int(n) for n in scrdata[resindex].split("+")[0].split("x")]
# list the corners, could be more elegant no doubt
corners = [[0, 0], [res[0], 0], [0, res[1]], [res[0], res[1]]]
match1 = None
while True:
time.sleep(1)
pos = get_pos()
# get the current difference from the mousepointer to each of the corner (radius)
diff = [int(math.sqrt(sum([(c[i]-pos[i])**2 for i, n in enumerate(res)])))\
for c in corners]
# see if any of the corners is "approached" within the radius
match2 = [diff.index(n) for n in diff if n < radius]
# if so, and the corresponding command is not set to None, run it.
if all([match2 != match1, match2]):
cmd = commands[match2[0]]
if cmd:
subprocess.Popen(["/bin/bash", "-c", cmd])
match1 = match2
বেশ প্রায় একই। স্ক্রিপ্টের প্রধান বিভাগে আপনার কমান্ড এবং ব্যাসার্ধটিকে ট্রিগার করতে সেট করুন।
wjandrea এর উত্তর কে ডিফল্ট উবুন্টু বা উবুন্টু চীনে চীনামাটির ওপর আঁকা অদ্ভুদ চেহারার প্রাণী ব্যবহার (বা তাদের প্রদর্শন পরিচালক হিসেবে Compiz আছে) কারো জন্য সবচেয়ে উপযুক্ত উত্তর, এইভাবে এটা আমার ভোট দিন এবং সম্মান পায়। নীচে প্রদত্ত উত্তরটি ইউনিটিতেও ব্যবহার করা যেতে পারে তবে সম্ভবত কিছুটা অপ্রয়োজনীয় হবে। যাইহোক, ডেস্কটপ এনভায়রনমেন্টগুলিতে যেগুলি কমিজ করে না, নীচে উপস্থাপিত সূচকটি ব্যবহার করতে পারেন। আমি এটি লুবুন্টু 16.04 ভিএম-তে সংক্ষেপে পরীক্ষা করেছি, সুতরাং আমি জানি যে এটি সেখানে কাজ করে এবং কাইলিন 14.04 এর সাথেও এটি সামঞ্জস্যপূর্ণ করে তুলেছে। জিনোম এবং মেট ডেস্কটপগুলির জন্য, কোনও সূচক ব্যবহার করার জন্য আপনাকে প্রথমে সক্ষম অ্যাপ্লিকেশনিকদের সমর্থন প্রয়োজন।
আমি প্রয়োগ করেছি indicator-edger
যা স্ক্রিনের 4 প্রান্ত বরাবর যে কোনও জায়গায় মাউস অবস্থানের ভিত্তিতে ব্যবহারকারী-সংজ্ঞায়িত কমান্ডগুলি ট্রিগার করতে দেয় ing আসল সংস্করণটি এক দিনের মধ্যেই করা হয়েছিল, প্রায় 7 ঘন্টার মধ্যে, সুতরাং এটি মোটামুটি স্বল্প পরিমাণে তবে কাজটি করে।
সূচকটি ~/.edger-commands.json
অবশ্যই ফাইলের মাধ্যমে নিয়মিতভাবে json
ফর্ম্যাটে থাকে। এটি ব্যবহারকারীর দ্বারা ম্যানুয়ালি লেখা যেতে পারে, বা সূচকের DEFINE COMMANDS
বিকল্পের মাধ্যমে সেট করা যেতে পারে । সক্ষম / অক্ষম ট্রিগার বিকল্পটি মনে রাখে এবং ব্যবহারকারীর সুবিধার্থে ফাইল করার জন্য স্বয়ংক্রিয়ভাবে লিখিত হয়। নমুনা কনফিগারেশন ফাইলটি এরকম হবে:
{
"right": "gnome-terminal",
"top": "firefox",
"left": "",
"bottom": "gnome-screenshot",
"enabled": true
}
"left"
ফাইলটি এন্ট্রি নোট করুন। এই প্রান্তটি সেট করা নেই, তবে json
সিনট্যাক্সের কারণে এটিতে একটি খালি স্ট্রিং থাকা দরকার, অর্থাত ""
।
একবার সূচকটি সনাক্ত করে যে ব্যবহারকারীর যে কোনও প্রান্তে (~ 3 পিক্সেল মার্জিন সহ) মাউসটি স্থাপন করা হয়েছে, সূচকটি একটি বুদ্বুদ বিজ্ঞপ্তি প্রেরণ করবে এবং যথাযথ কমান্ড চালাবে (সংজ্ঞায়িত হলে)। ব্যবহারকারী মাউসটি প্রান্ত থেকে সরিয়ে না দিলে ট্রিগারটির সক্রিয়করণ পুনরাবৃত্তি হবে না।
আপনি উপরের স্ক্রিনশট থেকে দেখতে পাচ্ছেন, সূচকটির কমান্ড-লাইনেও ডিবাগিং আউটপুট রয়েছে। যদি আপনি কোনও বাগ খুঁজে পান তবে এটি টার্মিনাল থেকে চালাতে দ্বিধা বোধ করবেন, কোন ত্রুটি ঘটেছে তা খুঁজে বের করুন এবং প্রকল্পের গিটহাবের ইস্যু পৃষ্ঠায় উপযুক্ত বাগ রিপোর্ট জমা দিন ।
বর্তমানে কোনাগুলি (কেবলমাত্র প্রান্ত) জন্য কোনও সমর্থন নেই এবং এটি ওয়ান-মনিটরের সেটআপের জন্য তৈরি করা হয়েছিল (স্পষ্টতই, কেউ তৈরির hours ঘন্টার মধ্যে সমস্ত ঘাঁটি আবরণ করতে পারে না), তবে এই বৈশিষ্ট্যগুলি ভবিষ্যতে অবশেষে উপলভ্য হতে পারে।
সোর্স কোডটি প্রকল্পগুলি গিটহাব পৃষ্ঠায় বা লঞ্চপ্যাডের মাধ্যমে উপলভ্য । টার্মিনালে নিম্নলিখিত কমান্ডগুলির মাধ্যমে ইনস্টলেশন সম্পন্ন করা হয়:
sudo add-apt-repository ppa:1047481448-2/sergkolo
sudo apt-get update
sudo apt-get install indicator-edger