কমান্ড লাইনের মাধ্যমে স্ক্রিনে উইন্ডোর আকার এবং অ্যাপ্লিকেশনটির অবস্থান কীভাবে সেট করবেন?


33

আমি ফায়ারফক্স উইন্ডোটি একটি নির্দিষ্ট আকারে এবং একটি শেল কমান্ড ব্যবহার করে পর্দার অবস্থানের জন্য খোলা থাকতে চাই example

firefox myfile.html size 800x600 location bottom-left

এমন আদেশ আছে কি?


আমি এটি করতে পেরেছি (এই ফোরামের সহায়তায়), যদিও আপনি যদি অন্য কোনও সমাধান খুঁজে পান তবে দয়া করে আমাকে বলুন এটি সম্ভবত আরও দৃust়
ইমানুয়েল বার্গ

উত্তর:


20

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


আপনি xdotoolউইন্ডোর আকার এবং অবস্থান নিয়ন্ত্রণ করতে ডাকা সরঞ্জামটি ব্যবহার করতে পারেন । শুধু তাই নয়, কোনো স্ক্রিপ্ট লিখতে bashব্যবহার xdotoolএকটি সম্পূর্ণরূপে বড় উইন্ডো এর সাথে কাজ করা সেটআপ হতে পারে এবং এটা উইন্ডোর আকার সেট করতে ও এক্স স্ক্রিপ্টের করা যেতে পারে: নিপূণভাবে ব্যবহার করে Y স্থানাঙ্ক mousemoveএবং clickকমান্ড।

  1. উইন্ডো আইডি সন্ধান করুন:

    xdotool search --onlyvisible --name firefox
  2. উইন্ডোর আকার সেট করুন

    xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
  3. উইন্ডোটি সরান

    xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y

উদাহরণস্বরূপ, ফায়ারফক্সের উইন্ডো আইডি যদি 123 হয় তবে আপনি এটি করতে পারেন:

xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080

নীচের বাম অবস্থানটি আপনার স্ক্রিন রেজোলিউশনের ভিত্তিতে বের করতে হবে।


1
বাগ xdotool, wmctrlইত্যাদি সহ একটি বাগ আছে এবং উবুন্টু, এক্সএফসিই (আমার কাছে রয়েছে): উইন্ডোটি ইতিমধ্যে পূর্ণ স্ক্রিন মোডে চালু হয়ে থাকলে আপনি এটিকে আর সরাতে পারবেন না: বাগস.লাঞ্চপ্যাড.net
থিফি

19

যতদূর আমি জানি, ফায়ারফক্স উইন্ডোটি নিয়ন্ত্রণ করতে আদেশগুলি গ্রহণ করে না বলে এটি সম্ভব নয়। এটিও (বেশিরভাগ ক্ষেত্রে) উইন্ডো ম্যানেজারের দায়িত্ব, সুতরাং আমি সন্দেহ করি যে এটি করার জন্য কোনও পরামিতি থাকবে। তবে আপনি wmctrl দিয়ে উইন্ডোটি নিয়ন্ত্রণ করতে পারেন তবে এটি কিছুটা কঠিন হতে চলেছে:

#!/bin/sh

firefox -new-instance -new-window "http://www.reddit.org" &

# Process ID of the process we just launched
PID=$!

# Window ID of the process...pray that there's     
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
        WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250

এটি করার জন্য আরও চতুর উপায় থাকতে পারে এবং ফায়ারফক্সের সাথে কিছু আন্তঃঅযুক্তি সংক্রান্ত সমস্যা রয়েছে (যেমন, অন্য কোনও উদাহরণ চলছে না) তবে এটি আপনাকে চালিত করা উচিত।


1
শুধু একটি ছোট নোট। উইন্ডো সর্বাধিক করা হলে পুনরায় আকার দেওয়া কাজ করবে না। সুতরাং আপনাকে প্রথমে এই সম্পত্তিটি নিষ্ক্রিয় করতে হবে: wmctrl -i -r $ WID -b সরান, ম্যাক্সিমাইজড_ভার্ট; wmctrl -i -r $ WID -b অপসারণ, সর্বাধিকীকরণ_হর্জ; এর পরে আমি ফায়ারফক্স উইন্ডোটির আকার পরিবর্তন করতে সক্ষম হয়েছি।
ka3ak

3

অতীতে আমি একটি এইচটিএমএল ডকুমেন্ট তৈরি করেছি যা জাভাস্ক্রিপ্টের সাহায্যে উইন্ডোর আকার নির্ধারণ করবে এবং তারপরে আমার যে পৃষ্ঠাটি চেয়েছিল সেটিতে পুনর্নির্দেশ করবে। এটি একটি বোকা হ্যাক কিন্তু, আরে, এটি কাজ করে।


দেখে মনে হচ্ছে এটি আর কাজ করে না। স্পষ্টতই, উইন্ডো.প্রেসটোটোর কেবল তখনই কার্যকর হয় যদি উইন্ডো.ওপেনের মাধ্যমে তৈরি উইন্ডোটি একটি পপআপ হয়।
hugomg

2

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


1

আমি সব সময় এটা করি। আমি ডিভিলসপি 2 ব্যবহার করি তবে এটি আরও শক্তিশালী। এটি LUA স্ক্রিপ্টিং ভাষা ব্যবহার করে, যা খুব কঠিন নয়।

থান্ডারবার্ডের জন্য আমার লুয়া স্ক্রিপ্টটি এখানে রইল, যা আমি যখন বাম মনিটরের (ল্যাপটপের স্ক্রিন) খুলতে চাই তখন খুলতে চাই:

if (get_window_name()=="Mozilla Thunderbird") then
   pin_window()
   set_window_geometry( 50, 10, 1220, 780 )
end

where 50 = X coordinate (for upper-left corner of the window)
      10 = Y coordinate ( " " )
    1220 = window width
     780 = window height

এটি সেট আপ করতে, আপনি নিজের বাড়ির কনফিগারেশনে (উবুন্টু-জাতীয় বিতরণগুলিতে) শৈলস্পি 2 নামে একটি ডিরেক্টরি তৈরি করুন, যেমন / home/$USERNAME/.config/devilspie2

থান্ডারবার্ডের জন্য, আমি থান্ডারবার্ড.লুয়া তৈরি করেছি, যদিও ফাইলের নামটি কোনও ব্যাপার নয়। প্রতিটি অ্যাপ্লিকেশনটির জন্য আমার আলাদা ফাইল নাম রয়েছে যদিও আপনি যদি চান তবে আপনি সমস্ত কিছু একটি স্ক্রিপ্ট ফাইলে রাখতে পারেন। আপনি লগইন করার সময় শয়তানস্পি 2 স্বয়ংক্রিয়ভাবে শুরু করতে সেট করুন, যেমন / home/$USERNAME/.config/autostart/devilspie2.desktop

আপনার লুয়া স্ক্রিপ্টে উপলভ্য বিভিন্ন বিকল্প সম্পর্কে ভাল পৃষ্ঠার লিঙ্কটি এখানে রয়েছে: https://github.com/gusnan/devilspie2/blob/master/README

একটি নোট: স্ক্রিপ্টগুলি সম্পাদনযোগ্য হতে হবে না। খনি 664 এবং কাজ সূক্ষ্ম। আমি যে অন্যান্য প্রোগ্রাম নিয়ন্ত্রণ করি সেগুলির মধ্যে কয়েকটি হ'ল ওপেনকনেক্ট, পিডগিন, রেকর্ডমাইডেস্কটপ, টাইমশিফ্ট, জাইজ, এক্সলোড এবং ইয়াড। আমি এগুলিতে পিন_উইন্ডো ব্যবহার করি যাতে তারা সমস্ত ডেস্কটপগুলিতে উপস্থিত হয়, সাথে সাথে অ্যাপ্লিকেশনটির উপর নির্ভর করে অন্যান্য কমান্ড।


LXDE এর সাথে কাজ করে বলে মনে হচ্ছে না। অবশ্যই কোনও উইন্ডো ইভেন্ট স্বীকৃত নয় (চলমান অবস্থায় কিছুই মুদ্রিত হয় না devilspie2 --debug)
জন স্মিথ ptionচ্ছিক

0

এটি অবস্থানটির সমস্যা সমাধান করে না, তবে কমপক্ষে আপনি মাত্রা নির্ধারণ করতে পারেন:

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