Geany:在该工作区中打开文件时为每个工作区打开一个新实例

Max*_*ams 6 linux-mint workspaces geany mate-desktop

我在 Linux Mint 13 中使用 Mate 1.2.0。我使用的两个文本编辑器是 Gedit 和 Geany (v0.25):我使用 Geany 进行所有编码,因为我更喜欢语法突出显示和其他一些界面功能。

不过,让我烦恼的一件事是这种行为:

  • 在工作区 1 的 Geany 中打开一个文件
  • 转到工作区 2
  • 双击文件打开它(在 Geany 中)
  • 桌面再次切换到工作区 1 并在 Geany 中打开文件。

当我在 Gedit 中执行此操作时,它会在该工作区中打开一个新的 Gedit 实例,这非常适合我的工作风格,我在每个工作区中都打开了不同的项目。

可以从程序菜单中启动另一个 Geany 实例,并将一个移动到另一个工作区,但它不会改变行为:然后我看到:

  • 在工作区 1 的 Geany 中打开一个文件
  • 转到工作区 2
  • 从程序菜单启动一个新的 Geany 实例(所以我现在每个工作区都有一个)
  • 双击文件打开它(在 Geany 中)
  • 桌面再次切换到工作区 1 并在 Geany 的第一个实例中打开文件。

因此,它就像总是在“主要”Geany 中打开一个文件,然后切换到碰巧所在的任何工作区。

有没有办法改变这种行为?我希望它是这样的:

  • 打开文件时:此工作区中是否有 Geany 正在运行?
    • 是:在那个 Geany 中打开文件
    • 否:在此工作区中打开一个新的 Geany 并在其中打开文件。

我在设置中看不到与此相关的选项。任何建议表示赞赏!谢谢

Oli*_*ieu 6

使用此批处理打开 Geany。这将打开特定于每个工作区的单独套接字。

例如,在 Thunar 中,使用“用其他应用程序打开”并指向此批处理文件。

#!/bin/sh

socket=`xprop -root _NET_CURRENT_DESKTOP`
socket=${socket##* }

if [ "$socket" ]
then
    if [ "$DISPLAY" ]
    then
        socket="${DISPLAY%.*}-$socket"
        socket=${socket#*:}
    else
        socket="NODISPLAY-$socket"
    fi
    exec geany --socket-file "/tmp/geany_socket_$socket" "$@"
else
    exec geany "$@"
fi
Run Code Online (Sandbox Code Playgroud)