奖金 :

奖金 :

我需要在与当前使用的工作空间不同的工作空间上启动 GUI 应用程序 [Lotus Symphony]。 [例如:GNOME 桌面上有 4 个工作区。]

问:我该怎么做?

ps:需要这个,因为Lotus Symphony重启后第一次启动非常非常慢,但是用过一次后启动很快。我认为它会自行缓存。这就是为什么我想在每次启动时在不同的工作空间上启动它,这样如果我需要使用它,它会很快。

答案1

查看魔鬼派(虽然我不确定它是否适用于 Gnome3),并且您可以找到更多有用的信息堆栈溢出bash

基本上你应该执行以下操作:

#!/bin/bash
wmctrl -n 8

firefox &
thunderbird &
/usr/bin/netbeans --locale en &
amsn &
gnome-terminal &
sleep 15

wmctrl -r firefox -t 0
wmctrl -r netbeans -t 1 
wmctrl -r terminal -t 2 
wmctrl -r amsn -t 6 
wmctrl -r thunderbird -t 7

#focus on terminal
wmctrl -a terminal 

(我只是从上面的 StackOverFlow 链接复制并粘贴上面的代码,因为我认为它是不言自明的)。

更新:

这里为了在 Gnome 3 扩展的最佳站点上获得更简单的解决方案,您应该安装自动移动窗户Gnome 3 的扩展。如果它不适合您(正如您在链接中看到的那样,有一些发行版的安装自动化无法正常工作,请获取更详细的利用这里关于如何让它发挥作用。

答案2

原始帖子是关于使用脚本使应用程序出现在特定工作区上,这样可以在启动脚本中使用另一个脚本,以允许用户在另一个工作区上加载启动速度非常慢的应用程序时继续工作。我的脚本非常适合作为相当繁琐的 wmctrl 语法的前端,可以从任何命令提示符在任何给定工作区上启动任何一个应用程序。因此,lh 1 thunderbird; lh 2 firefox; lh 3 calculator现在很容易编写一个简单地列出诸如 .... 或其他内容的脚本。然而,计时方面存在一些困难,因此我的脚本中存在睡眠问题。以下是更新后的版本,我不会再维护或发布。按原样使用,不保证适合任何特定用途。随意修改。我建议另存为/usr/local/bin/lh,只是因为lh它不是任何其他已知的程序名称,至少在 Mint 18 上不是。至于变量 - 我引用了我认为有必要引用的变量。

#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
##  lh is short for LaunchHere

USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
    LaunchHere launches COMMAND on specific workspace.\
    -r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;  
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1)  ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)


# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC,  PID=$PID
sleep 3

# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT

答案3

安装wmctrl

sudo apt install wmctrl

并创建一个脚本(在此示例中,thunderbird 位于第二个工作区 ( -t 1)):

#!/bin/sh

 (thunderbird &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

要了解您在 wmctrl 上的应用程序名称,您可以通过点击终端来查看它:

wmctrl -l

并将其替换为脚本中的正确名称。

请注意大写字母(“Thunderbird”而不是“thunderbird”)!

3d 工作区中使用 Firefox 的其他示例 ( -t 2):

#!/bin/sh
(firefox &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"

奖金 :

这是启动时执行的命令:

sh -c "thunderbird  & sleep 5 && wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

使用 Cinnamon 开发 Debain 10。但应该对所有人都有效

答案4

Beta - 但它对我在 linux mint 上有效。

#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
##  lh is short for LaunchHere

USAGE="USAGE: $(basename $0) workspace(0,1,2,..) command"
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1

echo Executing $CMD on workspace $WRKSPC
$WM -s $WRKSPC
eval $CMD &
sleep 1
$WM -r :ACTIVE: -t $WRKSPC

相关内容