解决 (emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"

本文详细介绍了如何解决Ubuntu系统中使用Emacs23时出现的GTK主题错误问题,通过安装gtk2-engines-pixbuf包来解决终端提示的无法定位主题引擎错误,并提供了完整的安装步骤。

使用的LInux OS是ubuntu

shawn@shawn-ThinkPad-T410:~$ uname -a
Linux shawn-ThinkPad-T410 3.0.0-15-generic-pae #26-Ubuntu SMP Fri Jan 20 17:07:31 UTC 2012 i686 i686 i386 GNU/Linux

安装了emacs23

shawn@shawn-ThinkPad-T410:~$ sudo apt-get install emacs23

运行 emacs23

shawn@shawn-ThinkPad-T410:~$ emacs23

提示warning

shawn@shawn-ThinkPad-T410:~$ emacs23

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

(emacs23:4451): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

这是ubuntu的一个bug,已经解决了,见

https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/762167


bug的描述:

Binary package hint: light-themes

Selecting Ambiance/Radiance as GTK2 theme without having gtk2-engines-pixbuf installed results in

Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

messages in the terminal and an error in gnome-appearance-properties.

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: light-themes 0.1.8.12
ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
Uname: Linux 2.6.38-8-generic i686
Architecture: i386
Date: Fri Apr 15 22:41:46 2011
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Beta i386 (20110413)
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=en_US:en
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: light-themes
UpgradeStatus: No upgrade log present (probably fresh install)

解决办法是(见黑体文字):

actionparsnip (andrew-woodhead666) wrote on 2011-09-21:#3

If you run:

sudo apt-get install gtk2-engines-pixbuf

Then retry, it is smooth. I suggest you add this as a dep so it gets automagically installed.


完整安装:

shawn@shawn-ThinkPad-T410:~$ sudo apt-get install emacs23

shawn@shawn-ThinkPad-T410:~$ sudo apt-get install gtk2-engines-pixbuf 



还有另一个地方也给出了这个问题的解决办法:

Solving Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"

http://yoodey.com/solving-gtk-warning-unable-locate-theme-engine-modulepath-pixmapcom/solving-gtk-warning-unable-locate-theme-engine-modulepath-pixmap






<think> 我们遇到了一个错误:尝试使用 `gedit` 编辑 `~/.bashrc` 文件时,出现了与显示相关的错误。 错误信息指出:“Failed to connect to Mir” 和 “Unable to init server: Could not connect: Connection refused”, 以及 “Gtk-WARNING **: cannot open display:”。 这个错误通常发生在没有可用的图形界面环境时,比如在纯终端环境(如SSH会话)或者没有安装图形界面的服务器上。 因为 `gedit` 是一个图形化的文本编辑器,需要连接到一个X11显示服务器(如Xorg或Wayland)才能运行。 解决方案: 1. 如果当前环境是远程SSH连接,并且没有开启X11转发(或者客户端不支持X11转发),则无法使用图形界面程序。 我们可以使用命令行文本编辑器(如 `nano`, `vim` 或 `emacs`)来编辑文件。 2. 如果当前环境是本地终端(非远程),可能是显示变量(DISPLAY)未正确设置。可以尝试设置DISPLAY环境变量: 对于本地终端,通常设置为 `:0` 或 `:0.0`,例如: export DISPLAY=:0 然后再运行 `gedit`。但这种情况较少见,因为本地终端通常已经设置好了。 3. 如果确实需要在没有图形界面的环境中编辑文件,建议使用命令行编辑器。 因此,针对当前问题,我们可以使用 `nano` 编辑器(简单易用)来编辑 `~/.bashrc` 文件: 执行命令:`nano ~/.bashrc` 或者使用 `vim`:`vim ~/.bashrc` 操作步骤: 1. 使用上述任一命令打开文件。 2. 进行所需修改。 3. 保存并退出(在nano中:Ctrl+O保存,Ctrl+X退出;在vim中:按i进入编辑模式,编辑后按Esc,然后输入:wq保存退出)。 另外,如果希望以后在SSH会话中也能使用图形界面程序,可以启用SSH的X11转发功能: - 在SSH客户端连接时加入 `-X` 或 `-Y` 选项,例如:`ssh -X user@host` - 并确保服务器端的SSH配置允许X11转发(`/etc/ssh/sshd_config` 中设置 `X11Forwarding yes`,并重启sshd服务)。 但需要注意的是,如果服务器没有安装X11相关的库,也可能无法使用。因此,在服务器环境下,推荐使用命令行编辑器。 根据当前情况,我们使用命令行编辑器即可。 执行命令: 使用nano编辑: nano ~/.bashrc 或者如果系统没有安装nano,可以安装: sudo apt update sudo apt install nano 但是,从错误信息看,当前用户是在本地Ubuntu的终端中(huaxi@ubuntu),但为什么会出现无法连接显示服务器呢? 可能的原因是: - 当前终端是tty(按Ctrl+Alt+F1~F6进入的终端),而不是桌面环境中的终端(Ctrl+Alt+T)。 - 或者当前用户是通过SSH连接到本机的,而本机并没有启用X11转发。 因此,我们直接使用命令行编辑器是最直接的解决方案。 现在,我们使用nano来编辑.bashrc文件: nano /home/huaxi/.bashrc 注意:由于错误显示用户名为huaxi@ubuntu,所以当前用户是huaxi,其家目录为/home/huaxi。 但是,在给出的命令中,用户是在`~/Python-3.8.11`目录下,所以我们可以直接使用`nano ~/.bashrc`。 另外,如果用户没有安装nano,则需要先安装。不过Ubuntu通常预装了nano。 如果用户更熟悉vim,也可以使用vim。 因此,我们给出两种方法,用户可以选择其中一种。 建议:使用nano,因为对于新手更友好。 操作步骤(nano): - 打开文件:`nano ~/.bashrc` - 使用方向键移动光标,修改内容。 - 保存:按Ctrl+O,然后按Enter确认。 - 退出:按Ctrl+X。 操作完成后,为了让修改生效,可以执行: source ~/.bashrc 或者重新打开终端。 现在,我们按照用户的要求,在回答后提出相关问题。 §§相关问题§§ 1. 在Linux命令行中,除了使用gedit,还有哪些常用的文本编辑器可以替代? 2. 如何通过SSH连接启用X11转发以运行图形界面程序? 3. 当遇到“无法打开显示”的错误时,如何检查当前的DISPLAY环境变量设置? 4. 在修改了.bashrc文件后,如何立即应用更改而无需重新登录? 5. 为什么在纯终端环境(如tty)下运行图形界面程序会失败? 注意:根据规则,我们必须在最后输出“§§相关问题§§”并紧接着问题列表。 </think> ### 问题分析与解决方案 您在使用 `gedit` 编辑 `.bashrc` 文件时遇到 **"Failed to connect to Mir"****"cannot open display"** 错误。这是由于在无图形界面的终端环境下尝试启动图形编辑器导致问题。以下是具体解决方案: #### 根本原因 1. **无图形界面支持** 当前会话可能是: - SSH远程连接(未启用X11转发) - 纯命令行终端(如tty) - WSL环境下未配置GUI支持 2. **DISPLAY变量未设置** 图形程序需要有效的 `DISPLAY` 环境变量指向X服务器(如 `:0`) --- ### 解决方案 #### 方法1:使用命令行文本编辑器(推荐) ```bash # 使用 nano(简单易用) nano ~/.bashrc # 或使用 vim vim ~/.bashrc ``` 操作指南: - **nano**:编辑后按 `Ctrl+O` 保存 → `Enter` → `Ctrl+X` 退出 - **vim**:按 `i` 编辑 → `Esc` → `:wq` 保存退出 #### 方法2:启用SSH X11转发(仅限远程连接) 1. **客户端连接时开启转发**: ```bash ssh -X user@hostname # -X 启用基础转发 ssh -Y user@hostname # -Y 启用信任转发(更宽松) ``` 2. **服务器端配置**(需管理员权限): ```bash sudo sed -i 's/#X11Forwarding yes/X11Forwarding yes/' /etc/ssh/sshd_config sudo systemctl restart sshd ``` #### 方法3:本地环境修复DISPLAY变量 ```bash # 临时设置DISPLAY(适用于本地终端) export DISPLAY=:0 gedit ~/.bashrc # 重新尝试打开 ``` --- ### 替代图形方案(WSL专用) 若在Windows Subsystem for Linux: ```bash # 安装图形支持 sudo apt install x11-apps -y # 下载并运行X服务器(如VcXsrv) gedit ~/.bashrc # 此时应正常启动 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值