কমান্ড লাইনের মাধ্যমে একটি উইন্ডো কেন্দ্র করুন


19

উইন্ডোটি খোলার পরে কোনও উইন্ডোটি পর্দার মাঝখানে রাখার বা পর্দার কেন্দ্রে খোলা করার কোনও উপায় আছে?

কমান্ড লাইন ব্যবহার করে এটি করা দরকার।

উত্তর:


33

Wmctrl সরঞ্জাম EWMH (বর্ধিত উইন্ডো ম্যানেজার ইঙ্গিত) নির্দিষ্টকরণেসংজ্ঞায়িত প্রায় সমস্ত বৈশিষ্ট্যগুলিতে কমান্ড লাইন অ্যাক্সেস সরবরাহ করে। এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, উইন্ডো ম্যানেজার সম্পর্কে তথ্য পেতে, ডেস্কটপগুলি এবং পরিচালিত উইন্ডোগুলির বিশদ তালিকা পেতে, ডেস্কটপগুলিকে স্যুইচ এবং পুনরায় আকার দেওয়ার জন্য, উইন্ডোগুলিকে পূর্ণ-স্ক্রিন তৈরি করতে , সর্বদা উপরে বা স্টিকি করতে এবং সক্রিয় করতে ,এগুলি বন্ধ করুন , সরান , পুনরায় আকার দিন , সর্বাধিক এবং ছোট করুন।

আপনি এটি দ্বারা ইনস্টল করতে পারেন

sudo apt-get install wmctrl

আপনি আপনার ভার্চুয়াল ডেস্কটপগুলি (ওয়ার্কস্পেস) এর সাথে তথ্য পেতে পারেন wmctrl -d

one@onezero:~$ wmctrl -d
0  * DG: 2720x1536  VP: 0,0  WA: 0,24 1360x744  N/A

এবং এর সাথে খোলা উইন্ডো তালিকাভুক্ত করুন wmctrl -l-Gবিকল্পটি শো জানালার জ্যামিতি:

one@onezero:~$ wmctrl -l
0x02000004  0 onezero Desktop
0x02e00002  0     N/A DNDCollectionWindow
0x02e00003  0     N/A launcher
0x01e00004  0 onezero cairo-dock
0x02e00004  0     N/A panel
0x04800061  0 onezero Transmission
0x02e0000a  0     N/A Dash
0x03a00044  0 onezero arranging windows from the gnu/linux command line with wmctrl ~ Moving to Freedom - Chromium
0x04400006  0 onezero one@onezero: ~
0x04c000e9  0 onezero Google - Mozilla Firefox

wmctrl -lG

one@onezero:~$ wmctrl -lG
0x02000004  0 0    0    1360 768  onezero Desktop
0x02e00002  0 -1460 -868 1360 768      N/A DNDCollectionWindow
0x02e00003  0 0    24   58   744      N/A launcher
0x01e00004  0 290  653  780  115  onezero cairo-dock
0x02e00004  0 0    0    1360 24       N/A panel
0x04800061  0 408  95   732  500  onezero Transmission
0x02e0000a  0 -1402 -844 1302 744      N/A Dash
0x03a00044  0 0    24   1360 744  onezero Center a window via command line - Ask Ubuntu - Stack Exchange - Chromium
0x04400006  0 127  94   983  434  onezero one@onezero: ~
0x04c000e9  0 5    47   1349 715  onezero Google - Mozilla Firefox

আপনি উইন্ডোটির শিরোনাম বা আংশিক শিরোনাম -r পরে উল্লেখ করে নির্দিষ্ট করতে পারেন। -আমরা চলন্ত এবং পুনরায় আকার দেওয়ার জন্য

wmctrl -r "Mozilla Firefox" -e <G>,<X>,<Y>,<W>,<H>

<G>: Gravity specified as a number. The numbers are defined in the EWMH specification. The value of zero is particularly
     useful, it means "use the default gravity of the window".
<X>,<Y>: Coordinates of new position of the window.
<W>,<H>: New width and height of the window.

সুতরাং, উইন্ডোটিকে উপরের বাম কোণে সরাতে এবং এটিকে 700 পিক্সেল প্রশস্ত 700 লম্বা করতে আপনি 0,0,0,1000,700 ব্যবহার করবেন

one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 0,0,0,1000,700

এখানে চিত্র বর্ণনা লিখুন

এটি সরানো / পুনরায় আকার দিতে। তার জন্য, আমি -bবিকল্পটি ব্যবহার করে প্রথমে এটি "আনম্যাক্সিমাইজিং" এর কাজটি ব্যবহার করেছি

wmctrl -r "মজিলা ফায়ারফক্স" -বি যোগ করুন, সর্বাধিক পরিবর্তন করুন

wmctrl -r "মজিলা ফায়ারফক্স" -বি সরান, সর্বাধিক পরিবর্তন করুন

one@onezero:~$ wmctrl -r "Mozilla Firefox" -b add,maximized_vert,maximized_horz

এখানে চিত্র বর্ণনা লিখুন

যে বিষয়গুলি আপনার বুঝতে হবে 1 ম

The -e option expects a list of comma separated integers: "gravity,X,Y,width,height"

এখানে চিত্র বর্ণনা লিখুন

এটি হ'ল আমার স্ক্রিন রেজোলিউশন তাই x = 1360 এবং y = 786

উইন্ডোটির স্ক্রিনের বাম-অর্ধে সারিবদ্ধ করা

one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,0,0,680,768

উইন্ডোটিকে স্ক্রিনের ডান-অর্ধে সারিবদ্ধ করা হচ্ছে

one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,680,0,680,768

একটি উইন্ডো 1360/4 center of screen= 340 এ সারিবদ্ধ করা হচ্ছে

one@onezero:~$ wmctrl -r "Mozilla Firefox" -e 1,340,0,680,768

এখানে চিত্র বর্ণনা লিখুন

আপনার স্ক্রীন সেটিংস হিসাবে এটি পরিচালনা করুন

আরও সহায়তার জন্য 1 2 3 4


7

এটি বর্তমানে সক্রিয় উইন্ডোতে কাজ করে

IFS='x' read screenWidth screenHeight < <(xdpyinfo | grep dimensions | grep -o '[0-9x]*' | head -n1)

width=$(xdotool getactivewindow getwindowgeometry --shell | head -4 | tail -1 | sed 's/[^0-9]*//')
height=$(xdotool getactivewindow getwindowgeometry --shell | head -5 | tail -1 | sed 's/[^0-9]*//')

newPosX=$((screenWidth/2-width/2))
newPosY=$((screenHeight/2-height/2))

xdotool getactivewindow windowmove "$newPosX" "$newPosY"

এটি প্রয়োজন bashবা zshচালাতে, প্লেইন shকাজ করবে না।
উইজেডসবারমারিনার

ওয়ার্কস 👍, windowsক্যের অধীনে উইন্ডোগুলির জন্য যেগুলি 1/2 বা 1/4 স্ক্রিনটি টাইলস রয়েছে (উদাহরণস্বরূপ একটি উইন্ডোটিকে ডানদিকে টেনে আনুন, এটি আপনার পর্দার ডান অর্ধেক দখল করবে)। এই উইন্ডোগুলি বিশেষ বলে মনে হচ্ছে এবং xdotoolকল করার আগে প্রথমে কোন ক্রিয়াটি তাদের "সাধারণ" উইন্ডোজ হিসাবে কল করতে হবে তা আমি জানি না windowmove। ধারনা?
রোনান জোচেট

এই অ্যাসুবুন্টু থ্রেডটিতে আমার সমস্যার সমাধান খুঁজে পেয়েছি । কলিংও জড়িত wmctrl, আরও ভাল সমাধান স্বাগত। টিএল; ডিআর: wmctrl -ir "$(xdotool getactivewindow)" -b remove,maximized_vert,maximized_horzচূড়ান্ত xdotool getactivewindow windowmoveকলের আগে কল করুন।
রোনান জোচেট

4

কেউ যদি এটি করার জন্য একটি কোড স্নিপেট অনুলিপি / পেস্ট করতে চান তবে এখানে একটি:

winname='foo'
IFS='x' read sw sh < <(xdpyinfo | grep dimensions | grep -o '[0-9x]*' | head -n1)
read wx wy ww wh < <(wmctrl -lG | grep $winname | sed 's/^[^ ]* *[^ ]* //;s/[^0-9 ].*//;')
wmctrl -r $winname -e 0,$(($sw/2-$ww/2)),$(($sh/2-$wh/2)),$ww,$wh

fooঅবশ্যই প্রথম লাইনে আপনি যে উইন্ডোটি কেন্দ্র করতে চান তার নামটি প্রতিস্থাপন করুন ।


ব্যাখ্যা (উদাহরণ কনসোল সেশন আকারে ভাঙ্গন):

পর্দার মাত্রা পাচ্ছে

llama@llama:~$ xdpyinfo | grep dimensions
  dimensions:    1920x1080 pixels (508x285 millimeters)
llama@llama:~$ xdpyinfo | grep dimensions | grep -o '[0-9x]*'
1920x1080
x
508x285
llama@llama:~$ xdpyinfo | grep dimensions | grep -o '[0-9x]*' | head -n1
1920x1080
llama@llama:~$ IFS='x' read sw sh < <(xdpyinfo | grep dimensions | grep -o '[0-9x]*' | head -n1)
llama@llama:~$ echo $sw $sh
1920 1080

উইন্ডোর জ্যামিতির তথ্য প্রাপ্ত

llama@llama:~$ wmctrl -lG | grep foo
0x00a0000c  0 1113 510  722  475  llama foo
llama@llama:~$ wmctrl -lG | grep foo | sed 's/^[^ ]*//;'
  0 1113 510  722  475  llama foo
llama@llama:~$ wmctrl -lG | grep foo | sed 's/^[^ ]* *[^ ]*//;'
 1113 510  722  475  llama foo
llama@llama:~$ wmctrl -lG | grep foo | sed 's/^[^ ]* *[^ ]* //;s/[^0-9 ].*//;'
1143 505  722  475  
llama@llama:~$ read wx wy ww wh < <(wmctrl -lG | grep foo | sed 's/^[^ ]* *[^ ]* //;s/[^0-9 ].*//;')
llama@llama:~$ echo $wx $wy $ww $wh
1143 505 722 475

উইন্ডোটি সরানো হচ্ছে

llama@llama:~$ echo 0,foo,bar,$ww,$wh
0,foo,bar,722,475
llama@llama:~$ echo 0,$(($sw/2)),bar,$ww,$wh                                    
0,960,bar,722,475
llama@llama:~$ echo 0,$(($sw/2-$ww/2)),bar,$ww,$wh
0,599,bar,722,475
llama@llama:~$ echo 0,$(($sw/2-$ww/2)),$(($sh/2-$wh/2)),$ww,$wh
0,599,303,722,475

0

শুরু করার সময় বেশিরভাগ অ্যাপ্লিকেশনগুলির --geometry পরামিতিটি সম্মান করা উচিত (কিছু -Gometry পছন্দ করে, যদি প্রথমটি আপনার পক্ষে কাজ না করে তবে দ্বিতীয়টি চেষ্টা করুন):

gnome-terminal --geometry 80x25+100+100

জ্যামিতি প্যারামিটারের এই ফর্মটি রয়েছে:

WIDTHxHEIGHT+XOFF+YOFF

আপনি অপ্রয়োজনীয় অংশগুলি ছেড়ে দিতে পারেন:

gnome-terminal --geometry +20+50 #No size, just offsets

বিস্তারিত জানার জন্য:

man X

তারপরে "/" টিপুন এবং জিওমেট্রি স্পেসিফিকেশন অনুসন্ধান করুন

বা এখানে দেখুন: http://www.cotse.com/dlf/man/xwindows/geometry.htm

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