[other] 微信4.0 快捷键分享
Tofloor
poster avatar
码梦天涯
deepin
2024-12-24 11:02
Author

还是用的 xdotool

#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
    if test $active -eq $item
    then
        echo $item
        xdotool windowminimize $item
    else
        xdotool windowactivate $item
    fi
done

使用方法:

  • 先保存到一个方便访问的位置,比如 ~/Documents/xdotool/toggle.sh
  • 设置自定义快捷键,命令为~/Documents/xdotool/toggle.sh "wechat"

搞定

已知问题:只能从任务栏唤起(窗口x掉后会无效,求解决方案)

Reply Favorite View the author
All Replies
阿顺呀
deepin
2024-12-24 14:31
#1

你这个是获取当前活动窗口来的 但是最小化之后没有窗口了

这种情况只有点击通知栏图标才会显示窗口,可以换个方向,找到点击通知栏图标执行的命令是啥

Reply View the author
deepin
2024-12-24 20:13
#2
/opt/deepinwine/tools/sendkeys.sh

wine的话有个这个脚本可以配置快捷键。但是我稍微有点忘了怎么用了hhhh

image.png

Reply View the author
wcs4221
deepin beta test group
2024-12-25 09:59
#3

linux/wx--窗口传文件只能传系统分区上地(显不了别的分区)?

win却可以。要方便的多。

Reply View the author
码梦天涯
deepin
2024-12-25 21:14
#4
/opt/deepinwine/tools/sendkeys.sh

wine的话有个这个脚本可以配置快捷键。但是我稍微有点忘了怎么用了hhhh

image.png

因为wine对这种动作有处理,他最终应该是靠windows微信内置的快捷键设置,但是4.0本身目前还没有这功能

Reply View the author
码梦天涯
deepin
2024-12-26 22:17
#5
wcs4221

linux/wx--窗口传文件只能传系统分区上地(显不了别的分区)?

win却可以。要方便的多。

在根目录/media下面吧

Reply View the author
wcs4221
deepin beta test group
2024-12-27 07:56
#6
码梦天涯

在根目录/media下面吧

是地。多谢指点blush

Reply View the author
竹子
deepin
2025-01-20 14:23
#7

我也尝试了很多方法还是不行,目前基于你的脚本做了一个小优化,使用xdotool模拟点击操作,实现从托盘区点击图标实现激活操作,坐标可以通过xdotool getmouselocation获取当前鼠标的位置得到,操作方式为打开命令窗口,输入指令,然后将鼠标挪到想要的位置,然后回车获取当前鼠标的位置


#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
    if test $active -eq $item
    then
        xdotool windowminimize $item
        echo "关闭当前活动窗口的 ID 为 $item"
    else
        xdotool windowactivate $item
        nowWindow=$(xdotool getactivewindow)
        if test $nowWindow -ne $item
        then
            TASKBAR_ICON_X=1682
            TASKBAR_ICON_Y=1060
            echo "当前窗口未在窗台栏,尝试模拟点击托盘图标:X=$TASKBAR_ICON_X, Y=$TASKBAR_ICON_Y"
            xdotool mousemove $TASKBAR_ICON_X $TASKBAR_ICON_Y
            xdotool click 1
        fi
    fi
done
Reply View the author
竹子
deepin
2025-01-20 14:33
#8
竹子

我也尝试了很多方法还是不行,目前基于你的脚本做了一个小优化,使用xdotool模拟点击操作,实现从托盘区点击图标实现激活操作,坐标可以通过xdotool getmouselocation获取当前鼠标的位置得到,操作方式为打开命令窗口,输入指令,然后将鼠标挪到想要的位置,然后回车获取当前鼠标的位置


#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
    if test $active -eq $item
    then
        xdotool windowminimize $item
        echo "关闭当前活动窗口的 ID 为 $item"
    else
        xdotool windowactivate $item
        nowWindow=$(xdotool getactivewindow)
        if test $nowWindow -ne $item
        then
            TASKBAR_ICON_X=1682
            TASKBAR_ICON_Y=1060
            echo "当前窗口未在窗台栏,尝试模拟点击托盘图标:X=$TASKBAR_ICON_X, Y=$TASKBAR_ICON_Y"
            xdotool mousemove $TASKBAR_ICON_X $TASKBAR_ICON_Y
            xdotool click 1
        fi
    fi
done

增加一个移动鼠标到原位置的操作

#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
    if test $active -eq $item
    then
        xdotool windowminimize $item
        #echo "关闭当前活动窗口的 ID 为 $item"
    else
        xdotool windowactivate $item
        nowWindow=$(xdotool getactivewindow)
        if test $nowWindow -ne $item
        then
			CURRENT_X=$(xdotool getmouselocation | awk '{print $1}' | cut -d ':' -f 2)
			CURRENT_Y=$(xdotool getmouselocation | awk '{print $2}' | cut -d ':' -f 2)
            TASKBAR_ICON_X=1682
            TASKBAR_ICON_Y=1060
            #echo "当前窗口未在窗台栏,尝试模拟点击托盘图标:X=$TASKBAR_ICON_X, Y=$TASKBAR_ICON_Y"
            xdotool mousemove $TASKBAR_ICON_X $TASKBAR_ICON_Y
            xdotool click 1
            xdotool mousemove $CURRENT_X $CURRENT_Y
        fi
    fi
done
Reply View the author
码梦天涯
deepin
2025-02-26 15:37
#9
竹子

增加一个移动鼠标到原位置的操作

#!/bin/sh

active=$(xdotool getactivewindow)

for item in $(pgrep "$1" | xargs -I {} xdotool search --all --pid {})
do
    if test $active -eq $item
    then
        xdotool windowminimize $item
        #echo "关闭当前活动窗口的 ID 为 $item"
    else
        xdotool windowactivate $item
        nowWindow=$(xdotool getactivewindow)
        if test $nowWindow -ne $item
        then
			CURRENT_X=$(xdotool getmouselocation | awk '{print $1}' | cut -d ':' -f 2)
			CURRENT_Y=$(xdotool getmouselocation | awk '{print $2}' | cut -d ':' -f 2)
            TASKBAR_ICON_X=1682
            TASKBAR_ICON_Y=1060
            #echo "当前窗口未在窗台栏,尝试模拟点击托盘图标:X=$TASKBAR_ICON_X, Y=$TASKBAR_ICON_Y"
            xdotool mousemove $TASKBAR_ICON_X $TASKBAR_ICON_Y
            xdotool click 1
            xdotool mousemove $CURRENT_X $CURRENT_Y
        fi
    fi
done

太太太太复杂啦,我感觉与其这样,还不如就留在任务栏了 sad

Reply View the author
New Thread

Popular Ranking

Change

Popular Events

More
国际排名
WHLUG