menu Chancel's blog
rss_feed
Chancel's blog
秋雨一何碧,山色倚晴空。

Linux在桌面激活显示已经运行的程序

作者:Chancel Yang, 时间:2022 Jul 13, 阅读:75

很多Linux都会提供快捷键 ctrl+alt+t 快捷打开终端程序,在日常开发时非常实用

如果多次使用快捷键会发现开启了多个Terminal,这不但难以管理也难以找到运行程序的窗口

其他程序如文件资源管理器,使用 meta+e 的情况也类似于上述

那么能不能让这些程序实现类似于Windows下任务管理器单例模式的效果呢?

于是编写了一个脚本如下,效果是如果要运行的进程已存在,则激活在前台显示,没运行则启动

vim /home/chancel/RunProgream.sh

#/bin/bash
#author:chancel
#date:2022-07-13

cmd="ps -ef | grep $1 | grep -v "grep" | grep -v "$0""
result=`eval $cmd`
if [[ $result == *$1* ]]
then
        # active window if window exist
        xdotool search --class $1 windowactivate
else
        # launch application if window not exist
        $1
fi

使用方法

/bin/bash /home/chancel/RunProgram.sh konsole

将以上方法注册为快捷键 ctrl+alt+t,则可以实现每次使用快捷键都打开唯一一个Ksonsole

[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]