笔记:Linux下运行多个Telegram实例

本文最后更新于:2020-07-28

记录在Linxu里运行多个Telegram的方法。

2020/07/28 更新:
桌面版Telegram 2.2版本支持多账户切换了


首先想到的方法是下载多个tg运行程序,放在不同的文件夹(Windows里是这么做的)

但是在Linux里行不通


上网搜,找到这个 Github - Add multiple accounts in Telegram Desktop [Linux | MacOSX | Windows]
这个办法是使用tg的-workdir参数,指定用户数据的存放目录

详细步骤

  • tg账户数据默认存放在~/.local/share/TelegramDesktop/下,在这个文件夹下新建一个username文件夹,例如~/.local/share/TelegramDesktop/username/,放tg使用的数据
  • 新建一个.desktop启动文件,在文件里指定-workdir参数指向上面的username文件夹
  • 这个文件的位置似乎无所谓,但是规范起见,教程建议放在~/.local/share/applications/
  • 启动文件内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [Desktop Entry]
    Version=1.0
    Name=Telegram MyUsername
    Comment=Official desktop application for the Telegram messaging service
    TryExec=/opt/Telegram/Telegram
    Exec=/opt/Telegram/Telegram -workdir /home/{{your_user}}/.local/share/TelegramDesktop/username -- %u
    Icon=telegram
    Terminal=false
    StartupWMClass=TelegramDesktop
    Type=Application
    Categories=Network;InstantMessaging;Qt;
    MimeType=x-scheme-handler/tg;
    Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
    X-GNOME-UsesNotifications=true
    X-Desktop-File-Install-Version=0.23

执行一下,出现tg登录界面了


成功
发现登录不上,输入帐号后出现一个 internal server error 错误
网上查一查,也没太搞懂
.desktop文件里TryExec Exec这两个参数换成下载下来的tg运行程序
运行一下,可以用了

但是第二天,把执行参数又改回去,也可以用
有可能是我的网络问题


又看了看tg原生的.desktop文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cat /usr/share/applications/telegramdesktop.desktop 

[Desktop Entry]
Version=1.0
Name=Telegram Desktop
Comment=Official desktop version of Telegram messaging app
TryExec=telegram-desktop
Exec=telegram-desktop -- %u
Icon=telegram
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
X-GNOME-UsesNotifications=true

照着这个文件,修改了一下我的.desktop文件Comment字段


最终效果