如何在屏幕切换时执行脚本?

用户名

上下文:我有一台大显示器,一台台式机和一台笔记本电脑。我在家时使用大显示器和HDMI开关。这给协同作用带来了一个问题,即如果屏幕发生变化,它将无法识别屏幕的各个部分。在这种情况下,必须重新启动笔记本电脑上的synergy客户端才能访问整个屏幕。

每当我更改屏幕时,如何使用脚本自动重启协同作用?我知道如何编写脚本,但我不知道从何处启动脚本,或者是否有这样的地方。请注意,我指的是物理屏幕,而不是协同屏幕。

雅各布·弗利姆(Jacob Vlijm)

假设分辨率的变化同时导致错误和触发脚本运行,请定期检查分辨率并运行脚本(如果更改发生了):

#!/usr/bin/env python3
import subprocess
import time

command = "</path/to/script_to_run>"

def get_res():
    # get resolution
    xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
    pos = xr.index("current")
    return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]

res1 = get_res()
while True:
    time.sleep(5)
    res2 = get_res()
    if res2 != res1:
        subprocess.Popen(["/bin/bash", "-c", command])
    res1 = res2

如果更改了分辨率,它将每五秒钟检查一次当前分辨率,并按照头部中的设置运行脚本。

如何使用

  1. 将脚本复制到一个空文件中,另存为 check_resolution.py

  2. 在头部部分,设置脚本路径以重新启动 synergy

  3. 通过在终端窗口中运行以下命令来对其进行测试,以运行它:

     python3 /path/to/check_resolution.py
    
  4. 如果一切正常,请将其添加到启动应用程序。

笔记

作为启动应用程序的命令可能需要稍作休息,以确保脚本启动时桌面已完全加载。添加到启动应用程序的命令将是:

/bin/bash -c "sleep 15&&python3 /path/to/check_resolution.py

添加到启动应用程序:Dash>启动应用程序>添加,添加命令。


编辑

只是为了完整:

如果出于某种原因,您希望使用bash版本的脚本:

#!/bin/bash

function get_res {
    echo $(xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |current)","");print $2}')
}

res1=$(get_res)

while true; do
  sleep 5
  res2=$(get_res)
  if [ "$res1" != "$res2" ]; then
      <command_to_run>
  fi
  res1=$res2
done

除了语言扩展外,用法几乎相同:

check_resolution.sh

和运行它的命令:

/bin/bash /path/to/check_resolution.sh

并替换<command_to_run>为重新启动命令synergy或脚本路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

发生特定事件时如何在Android上切换屏幕?

来自分类Dev

屏幕空白时如何在Windows 8上切换显示器显示?

来自分类Dev

如何在屏幕之间动态切换

来自分类Dev

在启动时和切换网络后运行脚本

来自分类Dev

如何在ruby脚本中切换OS用户?

来自分类Dev

登录屏幕前如何执行脚本?

来自分类Dev

如何在切换时显示不同的Bootstrap模式

来自分类Dev

如何在切换框架时验证WebDriver的焦点

来自分类Dev

如何在切换时显示输入字段?

来自分类Dev

如何在切换时显示不同的Bootstrap模式

来自分类Dev

如何在点击时切换标签

来自分类Dev

如何在主屏幕和辅助屏幕之间切换Windows Xbox游戏栏

来自分类Dev

如何执行快速的用户切换

来自分类Dev

如何在bash脚本中切换/更改用户ID以在同一脚本中执行命令?

来自分类Dev

切换垫滑块的显示时如何防止内容在屏幕上跳动

来自分类Dev

在React Native Navigation中的选项卡之间切换时如何保持堆叠的屏幕

来自分类Dev

迅捷5如何在切换屏幕中设置图标App

来自分类Dev

如何在不同.py文件的Kivy屏幕之间切换

来自分类Dev

如何在不使用屏幕的情况下在tty之间切换?

来自分类Dev

如何在vim中的vim缓冲区和命令外壳屏幕之间切换?

来自分类Dev

如何在任务切换器中显示锁定屏幕并正确恢复

来自分类Dev

kivy:如何在不挂屏的情况下切换屏幕时运行循环功能?

来自分类Dev

单击div时如何切换

来自分类Dev

LibGdx-切换屏幕时严重的内存泄漏

来自分类Dev

切换屏幕时关闭android应用程序?

来自分类Dev

如何在Windows之间切换

来自分类Dev

如何在jpanels之间切换?

来自分类Dev

如何在功能之间切换

来自分类Dev

如何在反应之间切换

Related 相关文章

热门标签

归档