কমান্ড ব্যবহার করে কীভাবে কর্মক্ষেত্র 1 থেকে 2 এপ্লিকেশন স্থানান্তরিত করতে হয়


12

কোনও কার্যক্ষেত্রে চলমান অ্যাপ্লিকেশনটি কমান্ড লাইনে অন্য কার্যক্ষেত্রে স্যুইচ করার কোনও উপায় আছে কি? আমি উবুন্টু 10.04 ব্যবহার করি

আপডেট 1
নীচের পরামর্শ অনুযায়ী

 wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020  0 bond x-nautilus-desktop
0x04e00004  0 bond bond@bond: ~
0x0482a380  0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072  0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome

এখন আমি টাইপ যখন

wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.

সুতরাং এটি সঠিকভাবে কীভাবে ব্যবহার করবেন উপরে ভুলটি কী?

UPDATE2
আমি চেষ্টা করেছি

wmctrl -r 0x05000072 -t 2

তবে উইন্ডোগুলির কোনও প্রভাব ছিল না এবং সেগুলি একই কাজের জায়গায় থেকে যায়।


-আর এবং -i ব্যবহার সম্পর্কে আরও ভাল তথ্যের সাথে আমি আমার উত্তর আপডেট করেছি। -আর যুক্তিটি ফাঁক থাকলে "উদ্ধৃতি চিহ্নগুলিতে" আবদ্ধ করা উচিত। যদি আর্গুমেন্ট -r টি উইন্ডো আইডি হয় তবে আপনাকে কমান্ড লাইনে -i উল্লেখ করতে হবে।

উত্তর:


14

আপনি যদি মেটাটিসি (ইউনিটি 2-ডি) এর মতো অনুবর্তী উইন্ডো ম্যানেজার ব্যবহার করছেন তবে আপনি উইন্ডোটিকে অন্য একটি ডেস্কটপে স্যুইচ করতে wmctrl ব্যবহার করতে পারেন। বাক্য গঠনটি হ'ল wmctrl -r :ACTIVE: -t <DESKTOP>। আপনি ব্যবহার করে আপনার বর্তমান ডেস্কটপ পরিবর্তন করতে পারেন wmctrl -s <DESKTOP>। ডেস্কটপ নম্বরগুলি 0 থেকে শুরু হয় line এক লাইনে, এটি হবে:

wmctrl -r :ACTIVE: -t 1; wmctrl -s 1

আপনি যদি সক্রিয়টি ছাড়া অন্য কোনও উইন্ডোটিকে অন্য ডেস্কটপে স্যুইচ করতে চান তবে শিরোনাম থেকে পাঠানো -R-এর আর্গুমেন্ট হিসাবে ব্যবহার করুন। উদাহরণ স্বরূপ:

wmctrl -r "Chromium" -t 1

বিকল্পভাবে আপনি wmctrl -lউপলভ্য উইন্ডোগুলির তালিকা তৈরি করতে এবং আইডি নম্বরটি বিশেষ স্ট্রিংয়ের পরিবর্তে -r এ পাস করতে পারেন :ACTIVE:। আইডি পাস করার সময় আপনারও -i যোগ করতে হবে। উদাহরণ স্বরূপ:

$ wmctrl -l
0x03e00189  0 hostname Ask Ubuntu - Chromium
$ wmctrl -i -r 0x03e00189 -t 2

(উবুন্টু দিয়ে ডাব্লুএমসিটিআরএল ইনস্টল করা যেতে পারে sudo apt-get install wmctrl)) বর্তমানে, দুর্ভাগ্যক্রমে, এটি স্ট্যান্ডার্ড ইউনিটির সাথে কাজ করছে বলে মনে হচ্ছে না।


@ স্কাইব্লু গ্রেট ইনফরমেশন.একটি বিষয় যা আমি স্পষ্ট জানি না তা হ'ল আমি কীভাবে ডেস্কটপ উইন্ডোটি জানি এবং এছাড়াও আমি যা খুঁজছি তা অনুমান ক্রোম চলছে এবং আমি ক্রোমটি আমার বর্তমান ডেস্কটপ থেকে অন্য একটিতে স্যুইচ করতে চাই তবে কীভাবে যাব এই জন্য
ব্যবহারকারী নিবন্ধিত

আপনি Chrome ব্রাউজার (যেটি "ক্রোমিয়াম" আছে শিরোনামে ব্যবহার করে থাকেন, আপনি ব্যবহার করতে সক্ষম হওয়া উচিত wmctrl -r "Chromium" -t 1যেমন skyblue তার উত্তর উল্লেখ করেছে, দীর্ঘ হিসাবে হিসাবে আপনি ইউনিটি-2d মত একটি অনুবর্তী উইণ্ডো ম্যানেজার ব্যবহার করছেন।
জন এস Gruber

3

এখানে আমার একটি স্ক্রিপ্ট যা আপনি যা চান তা কার্যকর করে: https://github.com/norswap/wmov/blob/master/wmov.sh

বর্তমান আকারে এটি উইন্ডোজ (সাবস্ট্রিংয়ের শিরোনামের সাথে সংক্ষিপ্ত সংবেদনশীল স্ট্রিংয়ের সাথে মিল রেখে নির্বাচিত wmctrl -r) অন্য ডেস্কটপগুলিতে স্পষ্টভাবে ডেস্কটপ নম্বর বেছে নিয়ে বা বর্তমান থেকে ডেস্কটপের দিক নির্দেশ করে পাঠাতে পারে ডেস্কটপ.

এই ক্ষেত্রে:

./wmov.sh mov "Google Chrome" 3 # sends Chrome to desktop 3 (bottom left)
./mov.sh mov Skype right # sends Skype to the desktop to the right of
                         # the current desktop (if any)

এটি ডেসগুয়ার পোস্টে বর্ণিত হিসাবে কাজ করে। উইন্ডোজ অন্য কর্মক্ষেত্রে প্রেরণের ক্ষমতাও এটি।


আমি এই সমাধানটি পছন্দ করি, কারণ এটি উইন্ডো নামের আংশিক মিলগুলির সাথে উইন্ডোগুলি সনাক্ত করতে পারে, বিশেষত যখন প্রোগ্রামগুলি প্রসঙ্গের উপর নির্ভর করে তাদের নামের অংশটি পরিবর্তন করে useful উইন্ডোজগুলিকে নামে কল করা তাদের পিআইডিগুলি দেখার চেয়ে সহজ। ত্রুটিটি হ'ল যদি নামেরটিতে একই স্ট্রিং সহ একাধিক উইন্ডোজ থাকে তবে কোনটি wmov.sh ধরবে তা অনুমান করতে পারে না।
অ্যান্ড্রু পি।

3

এটি দিয়ে এটি করা সম্ভব xdotool, তবে আপনি যদি compizএই সমাধানটি ব্যবহার করছেন তবে এটি প্রযোজ্য নাও হতে পারে, তাই দয়া করে এটি মনে রাখবেন।

একটি নির্দিষ্ট উইন্ডো (সক্রিয় উইন্ডো) একটি ভিন্ন ওয়ার্কস্পেসে স্যুইচ করতে, আপনি ব্যবহার করতে পারেন

xdotool getactivewindow set_desktop_for_window 1

বা কোনও স্ক্রিপ্টের জন্য আপনি কোনও নির্দিষ্ট প্রোগ্রামের উইন্ডোগুলিকে একটি প্রদত্ত ওয়ার্কস্পেসে স্যুইচ করতে চাইতে পারেন:

xdotool search --class firefox set_desktop_for_window %@ 1

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

প্যারামিটার %@থেকে পাস হওয়া উইন্ডোজগুলি উপস্থাপন করার জন্য আপনি এটি গুরুত্বপূর্ণ --search, যেমন আপনি কোনও উইন্ডো স্থানান্তর করবেন না।

আরও তথ্যের জন্য, দেখুন man xdotoolএবং উবুন্টু অনলাইন ম্যানেজ করুন।


2

আপনি যদি কমিজ ব্যবহার করছেন তবে কমপিজ উইকিটি এখানে দেখুন । সেখানে আপনি বেশ কয়েকটি উদাহরণ পান। "পুট" প্লাগইনটি দেখুন।

উদাহরণ

./compiz-dbus-send.py put put_viewport_right_key

1

প্রথমত, :ACTIVE:অ্যাক্টিভ উইন্ডোটি নির্দেশ করতে কোলন ম্যাজিক টোকেনের অংশ । আপনি সাধারণত এটি চান না। দ্বিতীয়ত, আপনার খালি ফাঁকা স্ট্রিংগুলির সাথে স্ট্রিংগুলি উদ্ধৃত করতে হবে।

আপনি উইন্ডো আইডিও পেতে পারেন ( 0x...প্রতিটি লাইনের শুরুতে) এবং শিরোনামটি কাজ করার চেষ্টা না করে এটি ব্যবহার করতে পারেন।

$ wmctrl -r 'OMG! Ubuntu! | wmctrl - Chromium' -t 2 # wherever it is, move it to 2
$ wmctrl -r 0x0482a380 -t 2 # same thing

উইন্ডো আইডি পাওয়ার আরেকটি উপায় হ'ল চালানো xwininfoএবং তারপরে উইন্ডোটি ক্লিক করুন যার আইডি আপনি চান।
গাইকোসর

আমি আপনার পদ্ধতিটি চেষ্টা করেছিলাম তবে প্রশ্নযুক্ত উইন্ডোতে এর কোনও প্রভাব পড়েনি।
ব্যবহারকারী নিবন্ধিত

@ নিবন্ধিত ব্যবহারকারী: কী উইন্ডো ম্যানেজার? ( wmctrl -m)
গীকোসৌর

দুঃখিত delayded উত্তর দেওয়ার জন্য wmctrl -m নাম: Compiz ক্লাস: এন / এ PID,: এন / এ উইন্ডো ম্যানেজারের মোড "ডেস্কটপ দেখাচ্ছে": অফ
নিবন্ধিত ব্যবহারকারী

এইচআরএম। আমি অনুমান করতে চলেছি, কমিজ প্লাগইনগুলি ব্যবহার করার পরামর্শের উপর ভিত্তি করে, যে কমপিজ আসলে পুরো EWMH স্পেকটি প্রয়োগ করে না তাই কাজ wmctrlকরছে না। (বিশেষত, এটি PropertyChangeনির্দিষ্ট বৈশিষ্ট্যগুলির জন্য রুট উইন্ডোতে ইভেন্টগুলি শুনতে হবে এবং তারপরে সেই বৈশিষ্ট্যগুলির বিষয়বস্তুতে কাজ করতে হবে))
জিকোসৌর

0

এই প্রশ্নের সমাধান হিসাবে প্রদত্ত স্ক্রিপ্টটি কিছুটা সংশোধন করে , নিম্নলিখিতটি ওয়ার্কস্পেসে (ভারীকরণে) একটি প্রদত্ত উইন্ডোকে "আনয়ন" করে:

#!/bin/bash

SCREEN_W=$(xwininfo -root | sed -n 's/^  Width: \(.*\)$/\1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^  Height: \(.*\)$/\1/p')

NAME="$1"

wmctrl -xlG | awk -v NAME="$NAME" '$7==NAME {print $1}' | while read WINS; do wmctrl -ir "$WINS" -e "0,0,0,$SCREEN_W,$SCREEN_H"; done

exit 0

যদি একটি স্বেচ্ছাসেবী কর্মক্ষেত্র পছন্দসই হয়, তবে এটি সংশ্লিষ্ট $SCREEN_W/ সংযোজন / বিয়োগ করার বিষয়, $SCREEN_Hওয়ার্কস্পেসের যত বার উইন্ডো লক্ষ্যটির থেকে দূরে থাকে।


0

চেষ্টা করুন:

wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`

আমাকে ব্যাখ্যা করুন: wmctrl শো এর সাহায্যে

    -r <WIN> -t <DESK>   Move the window to the specified desktop.
    <DESK>               A desktop number. Desktops are counted from zero.
    <WIN>          This argument specifies the window. By default it's
                   interpreted as a string. The string is matched
                   against the window titles and the first matching
                   window is used. The matching isn't case sensitive
                   and the string may appear in any position
                   of the title.

                   The -i option may be used to interpret the argument
                   as a numerical window ID represented as a decimal
                   number. If it starts with "0x", then
                   it will be interpreted as a hexadecimal number.

wmctrl -d আমার কম্পিউটারে সমস্ত ওয়ার্কস্পেসগুলি তালিকাভুক্ত করতে পারে এখন নীচের মত দেখায়:

0 - ডিজি: 1600x900 ভিপি: এন / এ ডাব্লুএ: 0,0 1600x868 কোড
1 * ডিজি: 1600x900 ভিপি: 0,0 ডাব্লুএ: 0,0 1600x868 খেলুন 
2 - ডিজি: 1600x900 ভিপি: এন / এ ডাব্লুএ: 0,01600x868 গবেষণা

* বর্তমান ওয়ার্কস্পেস মানে

বিটিডাব্লু, wmctrl -lসমস্ত কম্পিউটারের উইন্ডোজ (যা আপনি ইতিমধ্যে জানেন) এর তালিকা তৈরি করবে, এখন সেগুলি হ'ল:

0x05400008 1 ব্যবহারকারী-লিনাক্সমিন্ট টার্মিনাল
0x03a0008e 0 ব্যবহারকারী-লিনাক্সমিন্ট মজিলা ফায়ারফক্স


যেহেতু "ডেস্ক" অবশ্যই নম্বরটি হবে তাই আমি grep “workspace name” | cut -d" " -f1এটি পেতে ব্যবহার করি।

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

wmctrl -r "firefox" -t 0 

অথবা

wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`

কিন্তু

wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`

শুধু একবার আমাকে কাজ করুন, এবং কেন জানি না!

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