rub*_*o77 31 dpi java scale-mode display-resolution hdpi
有一些应用程序(主要是基于 Java 的)不遵循我在屏幕设置中设置的全局 2x 比例。所以这些应用在我 3200x1800px 的高 DPI 屏幕上真的很小。
如何让这些应用程序以较小的屏幕分辨率运行?
Jac*_*ijm 14
一个主要的便利升级是使用后台脚本,自动设置每个应用程序的分辨率,同时您可以一次为不同(多个)应用程序设置不同的分辨率。
这正是下面的脚本所做的。
默认分辨率的示例1680x1050:

运行gedit,自动更改为640x480:

运行gnome-terminal,自动更改为1280x1024:

当应用程序关闭时,分辨率自动设置回 1680x1050
set_resolution.py在脚本的头部,在行中设置默认分辨率:
#--- set the default resolution below
default = "1680x1050"
#---
Run Code Online (Sandbox Code Playgroud)在同一个目录(文件夹)中,创建一个文本文件,完全命名为:procsdata.txt. 在此文本文件中,设置所需的应用程序或进程,后跟一个空格,然后是所需的分辨率。每行一个应用程序或脚本,如下所示:
gedit 640x480
gnome-terminal 1280x1024
java 1280x1024
Run Code Online (Sandbox Code Playgroud)

通过以下命令运行脚本:
python3 /path/to/set_resolution.py
Run Code Online (Sandbox Code Playgroud)脚本 use pgrep -f <process>,它捕获所有匹配项,包括脚本。可能的缺点是在打开与进程同名的文件时可能会导致名称冲突。
如果遇到类似问题,请更改:
matches.append([p, subprocess.check_output(["pgrep", "-f", p]).decode("utf-8")])
Run Code Online (Sandbox Code Playgroud)
进入:
matches.append([p, subprocess.check_output(["pgrep", p]).decode("utf-8")])
Run Code Online (Sandbox Code Playgroud)
#--- set the default resolution below
default = "1680x1050"
#---
Run Code Online (Sandbox Code Playgroud)
当脚本启动时,它会读取您定义应用程序的文件及其相应的所需屏幕分辨率。
然后它会关注正在运行的进程(pgrep -f <process>为每个应用程序运行)并在应用程序启动时设置分辨率。
当pgrep -f <process>不为任何列出的应用程序产生输出时,它将分辨率设置为“默认”。
虽然上述版本适用于多个列出的应用程序,但它一次只能为一个应用程序设置分辨率。
下面的版本可以处理具有不同(所需)分辨率的不同应用程序,同时运行。后台脚本将跟踪最前面的应用程序,并相应地设置分辨率。它也适用于Alt+ Tab。
请注意,如果您在桌面和列出的应用程序之间切换很多,这种行为可能会很烦人;频繁的分辨率切换可能太多了。
设置几乎相同,因为这个使用wmctrl和xdotool:
sudo apt-get install wmctrl
sudo apt-get install xdotool
Run Code Online (Sandbox Code Playgroud)
gedit 640x480
gnome-terminal 1280x1024
java 1280x1024
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62229 次 |
| 最近记录: |