চলমান অ্যাপ্লিকেশনটির উইন্ডো মাত্রা নির্ধারণ করা


28

আমি উবুন্টু (xfce বা জিনোম) এর মধ্যে এবং কমান্ড লাইনের মাধ্যমে একটি অ্যাপ্লিকেশন শুরু করার চেষ্টা করছি এবং ভাবছিলাম যে বর্তমানে কোনও চলমান অ্যাপ্লিকেশনটির প্রদত্ত উইন্ডোর মাত্রা নির্ধারণের জেনেরিক উপায় আছে কি?

উত্তর:


18

আপনি যদি এমন কিছু ইনস্টল করেন তবে এটি করা সহজ xdotool। তারপরে আপনি এটি করতে পারেন:

xdotool search --name "window name" windowsize 300 400

উইন্ডো শিরোনামে উপস্থিত একটি নাম বা রেগ প্রাক্তনের সাথে "উইন্ডো নাম" প্রতিস্থাপন করুন (আপনি উইন্ডো ক্লাস এবং অন্যান্য বিভিন্ন জিনিসও সন্ধান করতে পারেন), এবং উইন্ডোজাইজের পরে প্রদর্শিত দুটি সংখ্যা যথাক্রমে প্রস্থ এবং উচ্চতা। (আপনি পার্সেন্ট ইত্যাদি ব্যবহার করতে পারেন) man xdotoolএটি ইনস্টল হয়ে গেলে দেখুন ।

আপনি যদি লুসিড বা তার আগে থাকেন তবে আমি এক্সডটুল ওয়েবসাইটে যাওয়ার পরামর্শ দিচ্ছি তবে নতুন সংস্করণটি পেতে।

ফায়ারফক্সের আকার পরিবর্তন করতে উদাহরণস্বরূপ:

xdotool search --name "Mozilla Firefox" windowsize 1024 768

3
অলংকরণ (শিরোনাম বার) ছাড়াই ফুলস্ক্রিন উইন্ডোটির আকার পরিবর্তন করার কোনও উপায় কী আছে? এবং স্ক্রিনে সঠিক অবস্থান নির্ধারণ করুন (উদাহরণস্বরূপ x = 0, y = 0)? আমি এটিকে সর্বোচ্চ xplayer 800x600 x = 0 y = 0 এ যেতে এবং তারপরে কয়েক মিনিটের পরে একই ফুলস্ক্রিন মোডে সেট করার চেষ্টা করছি। ধন্যবাদ
পিটার

15

উইন্ডো ম্যানেজার যদি Xlib সমর্থন করে তবে। এটি উইন্ডোর আকার 500x300 এ সেট করতে পাইথন ব্যবহার করে:

WIDTH, HEIGHT = 500, 300
import Xlib
import Xlib.display

display = Xlib.display.Display()
root = display.screen().root
windowID = root.get_full_property(display.intern_atom('_NET_ACTIVE_WINDOW'), Xlib.X.AnyPropertyType).value[0]
window = display.create_resource_object('window', windowID)
window.configure(width = WIDTH, height = HEIGHT)
display.sync()

শক্ত অংশটি উইন্ডো আইডি পাচ্ছে; উপরের কোডটিতে এটি সক্রিয় উইন্ডোর আইডি পেয়েছে। আপনি যদি অন্য আইডি চান তবে প্রতিটি উইন্ডোর শিরোনাম এবং নিয়ন্ত্রণ পিআইডি পেতে আপনি এর মতো কিছু ব্যবহার করতে পারেন এবং সেইগুলির উপর ভিত্তি করে সঠিক আইডি চয়ন করতে পারেন:

windowIDs = root.get_full_property(display.intern_atom('_NET_CLIENT_LIST'), Xlib.X.AnyPropertyType).value
for windowID in windowIDs:
    window = display.create_resource_object('window', windowID)
    name = window.get_wm_name() # Title
    prop = window.get_full_property(display.intern_atom('_NET_WM_PID'), Xlib.X.AnyPropertyType)
    pid = prop.value[0] # PID

Xlib এখানে পাওয়া যায়: sourceforge.net/projects/python-xlib/?source=typ_redirect
khaverim

যখন আমি print pidআমি পেতে <Xlib.protocol.request.GetProperty serial = 15, data = {'bytes_after': 0, 'property_type': 6, 'value': (32, array('I', [5810L])), 'sequence_number': 15}, error = None>... কোন পরামর্শ প্রকৃত PID, বিছিন্ন কিভাবে?
খভেরিম

Nvm। সম্ভব বলে মনে হচ্ছে না তবে আমি এর মাধ্যমে একটি কাজ করতে পারি name
খভেরিম

1
পছন্দ করুন আমি মনে করি এই এপিআইটি যখন আমি শেষবার লিখেছিলাম তখন থেকেই এটি পরিবর্তিত হয়েছিল, যা কেবল পিআইডি হিসাবে ব্যবহৃত হত। আমি উত্তর আপডেট, আপনি দ্বারা ফিরে মান নিতে চান get_full_propertyকি .value[0]( valueএকটি হল অ্যারে )
মাইকেল Mrozek

1
পাইথন এক্সলিব এর মাধ্যমে ইনস্টল করা যেতে পারে: sudo apt-get ইনস্টল পাইথন-এক্সলিব (উবুন্টুতে)
টম

4

এক্সএফসিই- তে নির্দিষ্ট পাইক্সফেস রয়েছে যা আপনাকে অজগর ভাষা ব্যবহার করে তা করতে দেয় । পাইক্সফেস এমন একটি এপিআই যা অন্যান্য বিষয়গুলির মধ্যে আপনাকে উইন্ডো ম্যানেজারের সাথে যোগাযোগ করতে দেয় । কমান্ড লাইন থেকে এটি ব্যবহার করার জন্য আপনাকে প্রথমে একটি স্ক্রিপ্ট প্রস্তুত করতে হবে।

আপনার ব্যবহারের উপর নির্ভর করে, এক্স উইন্ডো আইডি ব্যবহার করে এক্স-ভিত্তিক এপিআই ব্যবহার করার গুরুত্ব (যেমন পাইথন-এক্সলিব বা অন্য উত্তরে উল্লিখিত এক্সডটুলগুলি) অন্যদের তুলনায় যে উইন্ডো শিরোনামের সাথে উইন্ডোজ শিরোনাম ব্যবহার করে (যেমন ডাব্লুএমটিআরএল), কোনওটিই থাকতে পারে না উইন্ডোজগুলির মধ্যে বিভ্রান্তি, যার নিজস্ব শিরোনামে একই কীওয়ার্ড থাকতে পারে।



0

আমি wmctrl আমার সবচেয়ে উপযুক্ত। এটি উবুন্টু এবং রাস্পবিয়ান এবং একটি ছোট প্যাকেজ হিসাবে উপলব্ধ এবং সম্ভবত অন্যান্য ডিস্ট্রোদের পক্ষেও।


আমাদের কাছে একটি উত্তর আছে যা ডাব্লুএমটিআরটিএল উল্লেখ করেছে , তবে আমাদের কাছে এমন উত্তর নেই যা এটি কীভাবে ব্যবহার করতে পারে তা দেখায়; আপনি কি কোনও উত্তর দিয়ে কোনও উত্তর দিয়ে প্রসারিত করতে পারবেন, ঠিক তখনই লোকেরা এটি গ্রহণ করতে এবং তাদের নির্দিষ্ট ব্যবহারের জন্য এটিকে মানিয়ে নিতে পারে? ধন্যবাদ!
জেফ স্ক্যালার হলেন

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