একটি নির্দিষ্ট প্রোগ্রামের জন্য আমি কীভাবে স্ক্রিন রেজোলিউশন সেট করব?


8

আমি উবুন্টু 14.04 ব্যবহার করছি এবং আমি একটি নির্দিষ্ট প্রোগ্রামকে পূর্বনির্ধারিত স্ক্রিন রেজোলিউশনে চালিত করতে এবং প্রোগ্রামটি বন্ধ করার পরে আমার ডিফল্ট রেজোলিউশনে স্ক্রিনটি ফিরে আসতে বাধ্য করতে চাই। প্রোগ্রামটি বন্ধনী পাঠ্য সম্পাদক এবং চিত্রের নীচে যেমন দেখা যাচ্ছে 1024 * 768 এ বন্ধনীগুলি চালাচ্ছি তখন এক্সটেনশানগুলির পরিচালক পুরোপুরি প্রদর্শিত হয় না।

স্ক্রিন রেজোলিউশনের কারণে এক্সটেনশানস ম্যানেজার কেটে গেছে

এটি 1280 * 1024 এ ভাল প্রদর্শিত হয় তবে এটি আমার চোখে খুব অস্বস্তিকর।

এখানে আমার xrandrকমান্ড আউটপুট:

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 340mm x 255mm   
   1600x1200      74.8      
   1280x1024      85.0     75.0      
   1024x768       85.0     75.1*    70.1     60.0      
   1024x768i      87.1     
   832x624        74.6      
   800x600        85.1     72.2     75.0     60.3     56.2      
   640x480        85.0     75.0     72.8     66.7     60.0               
   720x400        87.8     70.1   
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

দয়া করে আরও বিশদটি কেসের সাথে ব্যাখ্যা করুন, আপনার কেন এটি করা দরকার?
Sh1d0w

1
আপনি প্রশ্নে প্রোগ্রাম, আউটপুট xrandrএবং পছন্দসই রেজোলিউশন উল্লেখ করতে পারেন ?
জ্যাকব ভিলিজম

শুধু আমার প্রশ্ন সম্পাদনা!
মিশো 21

আমি জানি যে বন্ধনীগুলি মূলত এইচটিএমএল এবং সিএসএস দিয়ে নির্মিত হয় .. যদি আমি কেবল কোডটি হ্যাক করতে পারি এবং এটি সম্পাদনা করতে পারি তবে এটি করার অন্য উপায় হতে পারে তবে কীভাবে শুরু করতে হয় তা আমি জানি না
মিশো 21

উত্তর:


5

প্রদত্ত রেজোলিউশনে আপনার অ্যাপ্লিকেশন শুরু করতে আপনি নিম্নলিখিত পাইথন স্ক্রিপ্টটি ব্যবহার করতে পারেন:

#!/usr/bin/env python3

import argparse
import re
import subprocess
import sys

parser = argparse.ArgumentParser()
parser.add_argument('--output', required=True)
parser.add_argument('--resolution', required=True)
parser.add_argument('APP')
args = parser.parse_args()

device_context = ''    # track what device's modes we are looking at
modes = []             # keep track of all the devices and modes discovered
current_modes = []     # remember the user's current settings

# Run xrandr and ask it what devices and modes are supported
xrandrinfo = subprocess.Popen('xrandr -q', shell=True, stdout=subprocess.PIPE)
output = xrandrinfo.communicate()[0].decode().split('\n')

for line in output:
    # luckily the various data from xrandr are separated by whitespace...
    foo = line.split()

    # Check to see if the second word in the line indicates a new context
    #  -- if so, keep track of the context of the device we're seeing
    if len(foo) >= 2:  # throw out any weirdly formatted lines
        if foo[1] == 'disconnected':
            # we have a new context, but it should be ignored
            device_context = ''
        if foo[1] == 'connected':
            # we have a new context that we want to test
            device_context = foo[0]
        elif device_context != '':  # we've previously seen a 'connected' dev
            # mode names seem to always be of the format [horiz]x[vert]
            # (there can be non-mode information inside of a device context!)
            if foo[0].find('x') != -1:
                modes.append((device_context, foo[0]))
            # we also want to remember what the current mode is, which xrandr
            # marks with a '*' character, so we can set things back the way
            # we found them at the end:
            if line.find('*') != -1:
                current_modes.append((device_context, foo[0]))

for mode in modes:
    if args.output == mode[0] and args.resolution == mode[1]:
        cmd = 'xrandr --output ' + mode[0] + ' --mode ' + mode[1]
        subprocess.call(cmd, shell=True)
        break
else:
    print('Unable to set mode ' + args.resolution + ' for output ' + args.output)
    sys.exit(1)

subprocess.call(args.APP, shell=True)

# Put things back the way we found them
for mode in current_modes:
    cmd = 'xrandr --output ' + mode[0] + ' --mode ' + mode[1]
    subprocess.call(cmd, shell=True)

উপরের স্ক্রিপ্টটি সংরক্ষণ করুন (যেমন হিসাবে my-script.py) এবং এটিকে সম্পাদনযোগ্য করে তুলুন:

chmod +x my-script.py

এর রেজোলিউশন সেট করতে 1280x1024এবং geditটাইপ করতে শুরু করুন :

./my_script.py --output VGA1 --resolution 1280x1024 gedit

এই কমান্ডটি প্রতিবার টাইপ করা এড়াতে, আপনার হোম ডিরেক্টরিতে স্ক্রিপ্টটি সংরক্ষণ করুন এবং নিম্নলিখিত লাইনগুলিকে আপনার যুক্ত করুন .bashrc:

alias my_bracket='~/my_script.py --output VGA1 --resolution 1280x1024 gedit'

বা আরও ভাল, প্যাকেজ ইনস্টল করা ডেস্কটপ ফাইল পরিবর্তন করুন /usr/local/share/applications/brackets.desktop

sudo gedit /usr/local/share/applications/brackets.desktop

এবং নীচের নতুন লাইনগুলির সাথে ফাইলের সামগ্রীটি প্রতিস্থাপন করুন:

[Desktop Entry]
Name=Brackets
Type=Application
Categories=Development
Exec=/home/mushir/my_script.py --output VGA1 --resolution=1280x1024 /opt/brackets/brackets
Icon=brackets
MimeType=text/html;
Keywords=Text;Editor;Write;Web;Development;

উত্স: চেকবক্স xrandr_ سائي স্ক্রিপ্ট


ধন্যবাদ .. তবে এই স্ক্রিপ্ট সম্পর্কে দুটি সমস্যা আছে: প্রতিবারই আমাকে এই কমান্ডটি চালানো দরকার এবং এটি আমার পক্ষে খুব বেশি সুবিধাজনক নয় এবং আমি প্রোগ্রামটি বন্ধ করার পরে আমার স্ক্রিনটি স্বয়ংক্রিয়ভাবে ডিফল্ট রেজোলিউশনে ফিরে যায় না
মিশো 21

@ মিশো 21: আমি সেটিংস পুনরুদ্ধারের সমস্যাটি ঠিক করেছি
সিলভাইন পাইনাউ

1
ধন্যবাদ এখন এটি কাজ করছে! আমি ভাবছি যে এই স্ক্রিপ্টটি প্রতিবার প্রোগ্রাম চালানোর সময় স্বয়ংক্রিয়ভাবে শুরু করার মতো কিছু আছে তাই প্রতিবার এটি টার্মিনাল থেকে চালানো দরকার হবে না?
মিশো 21

1
@ মিশো 21: (হোম) .bashrcআপডেটটি ভুলে যান এবং .desktopআপনি যদি bracketsকোনও টার্মিনাল থেকে শুরু না করে থাকেন তবে তা পছন্দ করুন
সিলভাইন পাইনাউ

1
@ মিশো 21: আপনি পারবেন না, প্লাইমাউথ বুট প্রক্রিয়াতে আগে কাজ করে এবং এটি নিজস্ব কনফিগারেশন ফাইল ব্যবহার করে।
সিলভাইন পাইনাউ

0

উবুন্টু এখানে ব্যবহার করবেন না (জেন্টো ব্যক্তি), তবে প্যাকেজ এক্সরেন্ডারের সন্ধান করুন। সাধারণত আপনি যেমন জিনিস ব্যবহার করতে পারেন

xrandr --output VGA-1 --mode 640x480

রেজোলিউশন পরিবর্তন করতে এবং

xrandr --output VGA-1 --preferred

আপনাকে ডিফল্ট রেজোলিউশনে ফিরিয়ে দেবে।

xrandr

বিকল্প ছাড়াই আপনাকে নাম এবং রেজোলিউশন প্রদর্শন করবে।

স্রেফ আগের স্ক্রিপ্ট সংস্করণেও xrandr ব্যবহার করা হয়েছে :)। তবে আপনি এখনও তথ্যটি দরকারী খুঁজে পেতে পারেন। বিকল্প টুইট করার জন্য ম্যানুয়াল পৃষ্ঠাগুলিতে পড়ুন

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