表示解像度を取得して設定するために一連の低レベル関数を実行しようとしたときに使用された解像度のみを含め、それを変更するために使用できるファイルがあるかどうか疑問に思います。
Xorg設定ファイルで私が探しているものの一部を見つけることができることを知っていますが、これにはアクティブな解像度のみが含まれていません。
これまでに私が見つけたすべてはXorgまたはXorgを使用する必要があり、xrandr
ファイルを読み書きするだけでこれを行う方法を見つけたいと思います。
答え1
現在の解像度はXサーバのメモリに保存されます。ファイルに保存されません。
Xorg設定ファイルには初期設定のみが含まれているため(まったく存在しない場合があります)、役に立ちませんが、回避策は動的に呼び出すことができます。
(解決策は実際にはXサーバーのログに表示されているようですが、ログにアクセスできるという保証はありません。たとえば、サーバーにリモートでアクセスしている場合は、それでもログを解析する必要があります。作業が多く、エラーが発生しやすいです)。 )
呼ぶxrandr
。それがまさにその目的です。これがない環境を心配する必要はありません。これは標準のX11クライアントディストリビューションの一部である基本的なツールです。
xrandr
15年以上の古いシステムで実行する必要がある場合は、xdpyinfo
20年以上標準のX11クライアントディストリビューションの一部として使用されているシステムを呼び出すことができます。
答え2
だから、以前の答えを試した後、私は確信していますが、完全に満足していません。私は研究を続け、ついに私が探していたものを見つけました。実際には、画面解像度を含む1つのファイルと、画面がサポートするすべての解像度(EDIDで指定)を含む別のファイルがあります。
これらのファイルは、/sys/class/graphics
フレームバッファに対応するディレクトリ(通常はfb0)にあります。関心のあるファイルをmode
(現在の解像度を含む)およびmodes
(画面でサポートされているすべての解像度を含む)と呼びます。
解像度を変更するには、次の手順を実行する必要があります。 echo your-resolution > mode
、ここはyour-resolution
まさにファイルの行の一つですmodes
。
ここに説明する具体的な例があります。解像度をVESA標準に設定したいです。私の画面で許容される解像度は次のように定義されます。
#猫モード D:1920x1080p-60 小型:1280x720p-50 小型:1280x720p-60 小型:1920x1080p-50 小型:1920x1080p-60 小型:640x480p-60 小型:720x480p-60 小型:720x576p-50 ビデオ: 640x480p-60
私がしなければならecho V:640x480p-60 > mode
ないのは、画面解像度を640x480に変更することだけです。