मैं चाहता हूं कि फ़ायरफ़ॉक्स विंडो एक विशिष्ट आकार में खोली जाए, और स्क्रीन पर एक शेल कमांड का उपयोग करके स्थान, उदाहरण के लिए:
firefox myfile.html size 800x600 location bottom-left
क्या ऐसी कोई आज्ञा है?
मैं चाहता हूं कि फ़ायरफ़ॉक्स विंडो एक विशिष्ट आकार में खोली जाए, और स्क्रीन पर एक शेल कमांड का उपयोग करके स्थान, उदाहरण के लिए:
firefox myfile.html size 800x600 location bottom-left
क्या ऐसी कोई आज्ञा है?
जवाबों:
यहां योकाई द्वारा उत्तर का एक सामुदायिक संस्करण है जो रुडोल्फ ओलह द्वारा पेश किए गए उदाहरणों को शामिल करता है ।
आप xdotool
खिड़की के आकार और स्थान को नियंत्रित करने के लिए नामक उपकरण का उपयोग कर सकते हैं । इतना ही नहीं, किसी भी स्क्रिप्ट आप में लिखने bash
का उपयोग करते हुए xdotool
, एक पूरी तरह से विस्तृत विंडो के साथ काम करने के लिए सेटअप किया जा सकता है और यह विंडो का आकार सेट करने के लिए और एक्स पटकथा जा सकता है: जोड़ तोड़ द्वारा y निर्देशांक mousemove
और click
आदेशों।
विंडो आईडी ढूंढें:
xdotool search --onlyvisible --name firefox
विंडो का आकार सेट करें
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
खिड़की को हिलाएं
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
उदाहरण के लिए, अगर फ़ायरफ़ॉक्स के लिए विंडो आईडी 123 है तो आप ऐसा करेंगे:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
नीचे-बाएँ स्थिति को आपके स्क्रीन रिज़ॉल्यूशन के आधार पर पता लगाना होगा।
xdotool
, wmctrl
आदि .. और Ubuntu, XFCE (मेरे पास है): यदि विंडो पहले से ही पूर्ण स्क्रीन मोड में शुरू किया है, आप इसे अब और नहीं ले जा सकते हैं: bugs.launchpad.net/ubuntu/+source/unity/ + बग / 971147
जहां तक मुझे पता है, यह संभव नहीं है क्योंकि फ़ायरफ़ॉक्स खिड़की को नियंत्रित करने के लिए आदेशों को स्वीकार नहीं करता है। यह भी (ज्यादातर) विंडो मैनेजर की जिम्मेदारी है, इसलिए मुझे संदेह है कि ऐसा करने के लिए कभी भी पैरामीटर होंगे। हालाँकि, आप विंडो को 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
इसे करने के लिए अधिक चतुर तरीके हो सकते हैं, और फ़ायरफ़ॉक्स के साथ कुछ अंतर-समस्याएँ हैं (जैसे कि कोई अन्य उदाहरण नहीं चल रहा है) लेकिन यह आपको जाना चाहिए।
अतीत में मैंने एक HTML दस्तावेज़ बनाया है जो जावास्क्रिप्ट के साथ विंडो का आकार निर्धारित करेगा, फिर उस पृष्ठ पर पुनर्निर्देशित करूँगा जिसे मैं चाहता था। यह एक बेवकूफ हैक है, लेकिन हे, यह काम करता है।
मुझे नहीं लगता कि यह केवल शेल कमांड द्वारा संभव है, क्योंकि इसका आपके विंडो मैनजर से कोई लेना-देना नहीं है।
मैंने wmctrl और डेविलस्पी के बारे में सुना है जो इसे प्रभावित कर सकते हैं। लेकिन मुझे संदेह है कि इसे प्राप्त करने का एक तरीका है जो आपके उदाहरण में लिखा गया है जितना सरल है।
मेरे द्वारा हमेशा ऐसा ही किया जाता है। हालाँकि, मैं DevilsPie2 का उपयोग करता हूं, क्योंकि यह अधिक मजबूत है। यह 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
इसे सेट करने के लिए, आप अपने होम कॉन्फ़िगरेशन में एक निर्देशिका बनाएँ (Ubuntu- जैसे वितरण पर) जिसका नाम devilspie2 है, जैसे /home/$USERNAME/.config/devilspie2
थंडरबर्ड के लिए, मैंने thunderbird.lua बनाया, हालांकि फ़ाइल नाम कोई मायने नहीं रखता। मेरे पास प्रत्येक एप्लिकेशन के लिए एक अलग फ़ाइल नाम है, यदि आप चाहें तो सब कुछ एक स्क्रिप्ट फ़ाइल में डाल सकते हैं। लॉगिन करते समय स्वचालित रूप से शुरू करने के लिए devilspie2 सेट करें, जैसे /home/$USERNAME/.config/autostart/devilspie2.desktop
आपके लुआ लिपि में उपलब्ध विभिन्न विकल्पों के बारे में अच्छे पृष्ठ का लिंक यहां दिया गया है: https://github.com/gusnan/devilspie2/blob/master/README
एक नोट: स्क्रिप्ट को निष्पादन योग्य नहीं होना चाहिए। मेरा 664 है और काम ठीक है। मेरे द्वारा नियंत्रित अन्य कार्यक्रमों में से कुछ में openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload, और yad हैं। मैं उन पर pin_window का उपयोग करता हूं ताकि वे सभी डेस्कटॉप पर दिखाई दें, साथ ही एप्लिकेशन के आधार पर अन्य कमांड।
devilspie2 --debug
)