当我运行 startx 时,什么是启动 i3?

ave*_*ter 4 x11 i3 startx

我试图找到 startx 用来启动 i3 窗口管理器的配置文件。

奇怪的是,grep -r i3~and 中没有返回相关结果/etc/X11/

我检查了我能想到的每个文件。我的~目录中没有任何.x*文件。子目录中没有任何.x*文件/etc/X11对 i3 有任何引用。我查了一下.xinitrc.Xsession

但是......当我登录时,我可以运行startx并且 i3 神奇地启动。我完全困惑。

在 odroid 上运行 Ubuntu,但这应该没什么区别。

如果有区别,我在创建用户之前以 root 身份安装了 i3。

cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

uname -a
Linux odroid 3.10.96-113 #1 SMP PREEMPT Wed Jul 6 22:19:28 UTC 2016 armv7l armv7l armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

正如您在下面看到的,没有地方可以隐藏:

root@odroid:/home/matt# find / -name *xinit*
/var/lib/dpkg/info/xinit.conffiles
/var/lib/dpkg/info/xinit.list
/var/lib/dpkg/info/xinit.md5sums
/var/lib/dpkg/info/xinit.postinst
/etc/X11/xinit
/etc/X11/xinit/xinitrc.d
/etc/X11/xinit/xinitrc
/usr/share/doc/xinit
/usr/share/man/man1/xinit.1.gz
/usr/bin/xinit
root@odroid:/home/matt# 

root@odroid:/home# grep -r 'exec i3'
matt/.config/i3/config_bak:bindsym $mod+Return exec i3-sensible-terminal
matt/.config/i3/config:bindsym $mod+Return exec i3-sensible-terminal
root@odroid:/home# cd /etc/
root@odroid:/etc# grep -r 'exec i3'
i3/config:bindsym Mod1+Return exec i3-sensible-terminal
i3/config:exec i3-config-wizard
i3/config.keycodes:bindcode $mod+36 exec i3-sensible-terminal
root@odroid:/etc# 
Run Code Online (Sandbox Code Playgroud)

当我运行 startx 时,什么是启动 i3?

Tob*_*ght 5

i3似乎是一个 X 窗口管理器。如果它是您系统的默认窗口管理器,则它已在“替代”系统中注册 - 您可以使用update-alternatives --display x-window-manager. 这意味着这/usr/bin/x-window-manager是一个符号链接/etc/alternatives/x-window-manager;这反过来又由“替代品”系统设置为指向i3

如果要更改系统默认窗口管理器,root 可以update-alternatives --config x-window-manager

如果 Xsession 找到了一个窗口管理器,它将使它成为在会话中启动的默认程序。在 Debian 中,这是在/etc/X11/Xsession.d/50x11-common_determine-startup.

如果用户想在他们的 X 会话中运行不同的程序,那么他们可以编写一个~/.xsession启动(或执行)所需程序的程序。