এক্সএফসিই - কীস্ট্রোকের অন্য মনিটরে উইন্ডোটি প্রেরণ করুন


27

আমি ডুয়াল মনিটর সেটআপ সহ জুবুন্টু ১১.১০ চালাচ্ছি। আমি একটি কীস্ট্রোক তৈরি করতে চাইছি (সম্ভবত CTRL+ ALT+ SPACEযা আমাকে পরবর্তী মনিটরে একটি নির্বাচিত উইন্ডো প্রেরণ করতে দেবে।

জিনোমে একটি প্যাকেজ নামে পরিচিত swapmonitorযা অন্য মনিটরে উইন্ডোটি প্রেরণ করতে সক্ষম। কী-স্ট্রোক সহ এই প্রোগ্রামটি কল করা একই প্রভাব অর্জন করে।

এক্সএফসিই / এক্সুবুন্টুতে এটি কীভাবে করা হয়?


আপনার কি swapmonitorজুবুন্টুর অধীনে অ্যাক্সেস নেই ? অথবা আপনি কী কীবোর্ড শর্টকাট সেট করবেন তা জিজ্ঞাসা করছেন?
ire_and_curses

এটি XFCE এ কাজ করছে বলে মনে হচ্ছে না। যদিও আমি জানতে চাই সেখানে কী কী বিকল্প রয়েছে।
বফিন

আপনার একাধিক মনিটর কীভাবে সেট আপ করবেন? একটি বৃহত ভার্চুয়াল স্ক্রিন হিসাবে, বা পৃথক এক্স প্রদর্শন? আপনি এনভিডিয়া টুইনভিউ ব্যবহার করছেন?
কিথ

এটি টুইনভিউ। আমার কাছে 2 ডেল 19 "মনিটরের সাথে একটি পুরনো এনভিডিয়া জিফোর্স কার্ড রয়েছে
বফিন

উত্তর:


27

এটি কিছুক্ষণ আগে পোস্ট করা হয়েছিল এবং আমি নিশ্চিত যে আপনি ইতিমধ্যে আপনার উত্তরটি পেয়েছেন তবে যারা তাদের কাছে করেন নি।

এই আদেশগুলি চালান

sudo apt-get install xdotool
sudo apt-get install wmctrl

তারপরে নীচের লিঙ্কটি থেকে বাশ স্ক্রিপ্টটি ডাউনলোড করুন (jc00ke এ ক্রেডিট) https://github.com/jc00ke/move-to-next-monitor

ব্যক্তিগতভাবে, আমার রুটে একটি ডিরেক্টরি রয়েছে যেখানে আমি আমার সমস্ত ব্যক্তিগত স্ক্রিপ্ট সংরক্ষণ করি। তবে, আপনি যেখানে এটি ডাউনলোড করবেন তা সত্যই আপনার উপর নির্ভর করে। অনুমতিগুলি এটিকে পরিবর্তন করুন যাতে আপনি কার্যকর করতে পারেন। উদাহরণস্বরূপ, স্ক্রিপ্টগুলি মুভ-টু-এনেক্সট-monitor.sh হিসাবে সংরক্ষণ করুন এবং তারপরে নিম্নলিখিতটি সম্পাদন করুন

chmod 755 move-to-next-monitor.sh
  1. সেটিংস পরিচালক -> কীবোর্ড -> অ্যাপ্লিকেশন শর্টকাট
  2. অ্যাড ক্লিক করুন
  3. খুলুন ক্লিক করুন এবং এটি আপনার স্ক্রিপ্টে পরিচালনা করুন
  4. এটিতে একটি কীবোর্ড শর্টকাট বরাদ্দ করুন এবং ভয়েইল!

উইন্ডোটিকে 1 টি থেকে অন্য স্ক্রিনে স্যুইচ করার জন্য আপনার কাছে এখন কিবোর্ড শর্টকাট। এটি কীভাবে 2 টিরও বেশি স্ক্রিনের সাথে কাজ করে তা আমি নিশ্চিত নই।


লিঙ্কযুক্ত স্ক্রিপ্টটি আমার কাছে এই সমস্যাটি ছিল: github.com/jc00ke/bin/issues/1
thejoshwolfe

1
আমার পক্ষে এখন পর্যন্ত পুদিনা 17.3 এবং xfce 4.12, এটির চিপসেট ভিডিও কার্ড এবং তিনটি মনিটরের সাথে কাজ করা। আমার সিস্টেমে thejoshwolfe এর সর্বাধিক ইস্যুটি দেখছেন না। টিপস জন্য ধন্যবাদ!
ইথার_জয়

1
@ তেজোশওয়াল্ফ আমি আমার স্ক্রিপ্টটির সংস্করণ যুক্ত করেছি যা আমার জন্য সর্বাধিক সমস্যার সমাধান করে।
jbrock

1
@ এথর_জো আমি আমার স্ক্রিপ্টটির সংস্করণ যুক্ত করেছি যাতে আপনার পক্ষে তিনজন মনিটর থাকায় সুবিধা হতে পারে।
jbrock

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

10

উল্লিখিত উপরের স্ক্রিপ্টে আমি কিছু পরিবর্তন করেছি, মূলত jc00ke দ্বারা রচিত।
- তিনটি মনিটরের জন্য খনি স্থাপন করা হয়েছে।
- এটি জানায় যে উইন্ডোটি সর্বাধিক ছিল কিনা।
- এটি ব্যবহারের সাথে script-name -lএবং script-name -rযথাক্রমে উইন্ডোটি বাম বা ডান স্থানান্তরিত করতে ব্যবহৃত হয়।
- আমি একটি ফিক্স যুক্ত করেছি যেখানে ক্রোমিয়াম অ্যাপ্লিকেশনগুলি যখন ছোট করা হয় খুব ছোট হয় এবং নতুন মনিটরে আবার সর্বোচ্চ হয় না।
আমি jc00ke সঙ্গে চিঠিপত্র। এটি এক্সএফসিতে দুর্দান্ত কাজ করার সময় তিনি বলেছিলেন যে scriptক্যতে তাঁর স্ক্রিপ্ট নিয়ে সমস্যা আছে। অবশ্যই অন্যান্য ডেস্কটপ এনভায়রনমেন্ট যেমন ইউনিটির এই স্ক্রিপ্টটির প্রয়োজন হবে না কারণ উইন্ডো ম্যানেজারটিতে এই ধরনের বিকল্পগুলি অন্তর্নির্মিত।
স্ক্রিপ্টটি ব্যবহারের জন্য এটিকে সম্পাদনযোগ্য করে তুলুন chmod +x script-nameএবং নিম্নলিখিত দুটি প্রোগ্রাম ইনস্টল করুন sudo apt-get install xdotool wmctrl,।

#!/bin/bash
#
# Move the current window to the next monitor.
#
# Also works only on one X screen (which is the most common case).
#
# Props to
# http://icyrock.com/blog/2012/05/xubuntu-moving-windows-between-monitors/
#
# Unfortunately, both "xdotool getwindowgeometry --shell $window_id" and
# checking "-geometry" of "xwininfo -id $window_id" are not sufficient, as
# the first command does not respect panel/decoration offsets and the second
# will sometimes give a "-0-0" geometry. This is why we resort to "xwininfo".

screen_width=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $7 }')
screen_height=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $8 }')
window_id=$(xdotool getactivewindow)

case $1 in
    -l )
        display_width=$((screen_width / 3 * 2)) ;;
    -r )
        display_width=$((screen_width / 3)) ;;
esac

# Remember if it was maximized.
window_state=$(xprop -id $window_id _NET_WM_STATE | awk '{ print $3 }')

# Un-maximize current window so that we can move it
wmctrl -ir $window_id -b remove,maximized_vert,maximized_horz

# Read window position
x=$(xwininfo -id $window_id | awk '/Absolute upper-left X:/ { print $4 }')
y=$(xwininfo -id $window_id | awk '/Absolute upper-left Y:/ { print $4 }')

# Subtract any offsets caused by window decorations and panels
x_offset=$(xwininfo -id $window_id | awk '/Relative upper-left X:/ { print $4 }')
y_offset=$(xwininfo -id $window_id | awk '/Relative upper-left Y:/ { print $4 }')
x=$((x - x_offset))
y=$((y - y_offset))

# Fix Chromium app view issue of small un-maximized size
width=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $4 }')
if [ "$width" -lt "150" ]; then
  display_width=$((display_width + 150))
fi

# Compute new X position
new_x=$((x + display_width))
# Compute new Y position
new_y=$((y + screen_height))

# If we would move off the right-most monitor, we set it to the left one.
# We also respect the window's width here: moving a window off more than half its width won't happen.
if [ $((new_x + width / 2)) -gt $screen_width ]; then
  new_x=$((new_x - screen_width))
fi

height=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $5 }')
if [ $((new_y + height / 2)) -gt $screen_height ]; then
  new_y=$((new_y - screen_height))
fi

# Don't move off the left side.
if [ $new_x -lt 0 ]; then
  new_x=0
fi

# Don't move off the bottom
if [ $new_y -lt 0 ]; then
  new_y=0
fi

# Move the window
xdotool windowmove $window_id $new_x $new_y

# Maintain if window was maximized or not
if [ "${window_state}" = "_NET_WM_STATE_MAXIMIZED_HORZ," ]; then
    wmctrl -ir $window_id -b add,maximized_vert,maximized_horz
fi

7

মনিটরের ওপারে উইন্ডোজ সরিয়ে নিতে আমি আমার নিজস্ব পাইথন স্ক্রিপ্টও তৈরি করেছি।

https://github.com/calandoa/movescreen

ব্যবহার:

movescreen.py <up|down|left|right>

আকর্ষণীয় বৈশিষ্ট্য:

  • 4 দিক পরিচালনা করুন
  • কয়েকটি মনিটরের উপর উইন্ডোজ ওভারল্যাপিং এর মতো কিছু বিশেষ কেসগুলি পরিচালনা করুন
  • স্বতন্ত্রভাবে পূর্ণস্ক্রিন পুনরুদ্ধার করুন , অনুভূমিকভাবে এবং উল্লম্বভাবে স্থিতিস্থাপিত করুন
  • অজগর দিয়ে ডিবাগিং বা নতুন বৈশিষ্ট্যগুলি যুক্ত করা সহজ।

1

অন্য একটি বিকল্প যা কোনও "বাইনারি" নির্ভরতা (xdotool বা wmctrl এর মতো) উপর নির্ভর করে না: https://github.com/AlexisBRENON/ewmh_m2m

  • আপনি এটি দিয়ে ইনস্টল করতে পারেন pip(এটি ম্যানুয়ালি অনুলিপি করার দরকার নেই, এটি কার্যকর করার যোগ্য করে তোলা ইত্যাদি))
  • এটি বিভিন্ন লেআউট (অনুভূমিক, উল্লম্ব, মিশ্র) সহ একাধিক স্ক্রিন পরিচালনা করে
  • বিভিন্ন আকারের পর্দার মাঝে চলাকালীন উইন্ডো / স্ক্রিন অনুপাত রাখুন
  • সর্বাধিক রাজ্যগুলি পুনরুদ্ধার করুন (অনুভূমিক, উল্লম্ব)

কাইন্ড।

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