diff --git a/.config/tdm/default b/.config/tdm/default
new file mode 120000
index 0000000..d689be3
--- /dev/null
+++ b/.config/tdm/default
@@ -0,0 +1 @@
+/home/ziro/.config/tdm/sessions/bspwm
\ No newline at end of file
diff --git a/.config/tdm/sessions/E17 b/.config/tdm/sessions/E17
new file mode 120000
index 0000000..2e47e5b
--- /dev/null
+++ b/.config/tdm/sessions/E17
@@ -0,0 +1 @@
+/usr/bin/enlightenment_start
\ No newline at end of file
diff --git a/.config/tdm/sessions/Fluxbox b/.config/tdm/sessions/Fluxbox
new file mode 120000
index 0000000..5a7fb53
--- /dev/null
+++ b/.config/tdm/sessions/Fluxbox
@@ -0,0 +1 @@
+/usr/bin/startfluxbox
\ No newline at end of file
diff --git a/.config/tdm/sessions/GNOME b/.config/tdm/sessions/GNOME
new file mode 120000
index 0000000..991bcee
--- /dev/null
+++ b/.config/tdm/sessions/GNOME
@@ -0,0 +1 @@
+/usr/bin/gnome-session
\ No newline at end of file
diff --git a/.config/tdm/sessions/ICEWM b/.config/tdm/sessions/ICEWM
new file mode 120000
index 0000000..2cbf50f
--- /dev/null
+++ b/.config/tdm/sessions/ICEWM
@@ -0,0 +1 @@
+/usr/bin/icewm-session
\ No newline at end of file
diff --git a/.config/tdm/sessions/PekWM b/.config/tdm/sessions/PekWM
new file mode 120000
index 0000000..cea4711
--- /dev/null
+++ b/.config/tdm/sessions/PekWM
@@ -0,0 +1 @@
+/usr/bin/pekwm
\ No newline at end of file
diff --git a/.config/tdm/sessions/XFCE4 b/.config/tdm/sessions/XFCE4
new file mode 120000
index 0000000..592be9f
--- /dev/null
+++ b/.config/tdm/sessions/XFCE4
@@ -0,0 +1 @@
+/usr/bin/startxfce4
\ No newline at end of file
diff --git a/.config/tdm/sessions/bspwm b/.config/tdm/sessions/bspwm
new file mode 120000
index 0000000..a309d76
--- /dev/null
+++ b/.config/tdm/sessions/bspwm
@@ -0,0 +1 @@
+/usr/bin/bspwm
\ No newline at end of file
diff --git a/.config/tdm/sessions/dwm b/.config/tdm/sessions/dwm
new file mode 120000
index 0000000..45281e3
--- /dev/null
+++ b/.config/tdm/sessions/dwm
@@ -0,0 +1 @@
+/usr/local/bin/dwm
\ No newline at end of file
diff --git a/.config/tdm/sessions/openbox b/.config/tdm/sessions/openbox
new file mode 120000
index 0000000..098b234
--- /dev/null
+++ b/.config/tdm/sessions/openbox
@@ -0,0 +1 @@
+/usr/bin/openbox-session
\ No newline at end of file
diff --git a/.config/tdm/sessions/xmonad b/.config/tdm/sessions/xmonad
new file mode 120000
index 0000000..d494f3d
--- /dev/null
+++ b/.config/tdm/sessions/xmonad
@@ -0,0 +1 @@
+/usr/bin/xmonad
\ No newline at end of file
diff --git a/.config/tdm/tdmexit b/.config/tdm/tdmexit
new file mode 100644
index 0000000..08867b9
--- /dev/null
+++ b/.config/tdm/tdmexit
@@ -0,0 +1,21 @@
+# tdmexit: script executed before tdm starts your WM/DE.
+
+# This file is part of tdm, a tiny display manager.
+#
+# tdm is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# tdm is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with tdm. If not, see .
+
+# Example commands to execute before your WM/DE
+#export LANG=zh_CN.UTF-8
+#fcitx
+#feh --bg-scale /path/to/wallpaper
diff --git a/.config/tdm/tdminit b/.config/tdm/tdminit
new file mode 100644
index 0000000..87b7e8e
--- /dev/null
+++ b/.config/tdm/tdminit
@@ -0,0 +1,31 @@
+# tdminit: script executed at login.
+
+# This file is part of tdm, a tiny display manager.
+#
+# tdm is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# tdm is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with tdm. If not, see .
+
+# Uncomment to disable saving last session
+#SAVELAST=0
+
+# Uncomment to use text UI instead of ncurses UI
+#TDMUI=tdm_text
+
+# Uncomment to show linux logo
+#linux_logo -L classic
+
+# Args passed along when calling startx
+#STARTXARGS=
+
+# Uncomment to start X without selecting a session
+#exec startx
diff --git a/.config/xinitrc b/.config/xinitrc
index 3c6f24b..b05af2e 100644
--- a/.config/xinitrc
+++ b/.config/xinitrc
@@ -1,2 +1,4 @@
#!/bin/sh
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/xprofile" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/xprofile"
+
+exec tdm --xstart
diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile
index c49d610..d9d15df 100644
--- a/.config/zsh/.zprofile
+++ b/.config/zsh/.zprofile
@@ -1,7 +1,9 @@
#!/bin/zsh
-if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
- exec startx
-fi
+#if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
+# exec startx
+#fi
+
+bash /usr/bin/tdm
[[ -f ~/.zshrc ]] && . ~/.zshrc