diff --git a/merge/sys-fs/udev/.calculate_directory b/merge/sys-fs/udev/.calculate_directory
index e2a0f06..530326e 100644
--- a/merge/sys-fs/udev/.calculate_directory
+++ b/merge/sys-fs/udev/.calculate_directory
@@ -1 +1 @@
-{% calculate package='', path='/etc', name='modprobe.d' %}
+{% calculate path='/etc', name='modprobe.d', package='sys-fs/udev' %}
diff --git a/merge/x11-apps/.calculate_directory b/merge/x11-apps/.calculate_directory
new file mode 100644
index 0000000..fe9987a
--- /dev/null
+++ b/merge/x11-apps/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append='skip' %}
diff --git a/merge/x11-apps/xinit/.calculate_directory b/merge/x11-apps/xinit/.calculate_directory
new file mode 100644
index 0000000..298875f
--- /dev/null
+++ b/merge/x11-apps/xinit/.calculate_directory
@@ -0,0 +1 @@
+{% calculate name='etc', package='x11-apps/xinit' %}
diff --git a/merge/x11-apps/xinit/X11/startDM.sh b/merge/x11-apps/xinit/X11/startDM.sh
new file mode 100644
index 0000000..1cfff0e
--- /dev/null
+++ b/merge/x11-apps/xinit/X11/startDM.sh
@@ -0,0 +1,3 @@
+{% calculate format='regex', comment='#' %}
+\$\{START_STOP_ARGS\} \|\|
+${START_STOP_ARGS} </dev/null ||
diff --git a/merge/x11-apps/xinit/X11/xinit/xinitrc b/merge/x11-apps/xinit/X11/xinit/xinitrc
new file mode 100644
index 0000000..f3f9bc9
--- /dev/null
+++ b/merge/x11-apps/xinit/X11/xinit/xinitrc
@@ -0,0 +1,3 @@
+{% calculate format='regex', comment='#', dotall %}
+^\s*
+
diff --git a/merge/x11-apps/xinit/env.d/90xsession b/merge/x11-apps/xinit/env.d/90xsession
new file mode 100644
index 0000000..a685b0b
--- /dev/null
+++ b/merge/x11-apps/xinit/env.d/90xsession
@@ -0,0 +1,21 @@
+{% calculate format='openrc' %}
+
+{% if pkg('kde-plasma/plasma-workspace') and pkg('kde-frameworks/plasma') %}
+XSESSION="Plasma"
+{% elif pkg('kde-base/ksmserver') %}
+XSESSION="KDE-4"
+{% elif pkg('mate-base/mate-session-manager') %}
+XSESSION="Mate"
+{% elif pkg('xfce-base/xfce4-session') %}
+XSESSION="Xfce4"
+{% elif pkg('lxqt-base/lxqt-session') %}
+XSESSION="lxqt"
+{% elif pkg('gnome-extra/cinnamon-session') %}
+XSESSION="cinnamon-session"
+{% elif pkg('gnome-base/gnome-session') %}
+XSESSION="gnome"
+{% elif pkg('x11-wm/openbox') %}
+XSESSION="openbox"
+{% elif pkg('media-tv/kodi') %}
+XSESSION="Kodi"
+{% endif %}
diff --git a/merge/x11-apps/xmessage/.calculate_directory b/merge/x11-apps/xmessage/.calculate_directory
new file mode 100644
index 0000000..a71cfec
--- /dev/null
+++ b/merge/x11-apps/xmessage/.calculate_directory
@@ -0,0 +1 @@
+{% calculate path='/usr/share/X11', name='app-defaults', package='x11-apps/xmessage' %}
diff --git a/merge/x11-apps/xmessage/Xmessage b/merge/x11-apps/xmessage/Xmessage
new file mode 100644
index 0000000..b29acf0
--- /dev/null
+++ b/merge/x11-apps/xmessage/Xmessage
@@ -0,0 +1,18 @@
+{% calculate comment='#' %}
+
+# key esc for close dialog
+*baseTranslations: #override :Return: default-exit()
+# display vertical scroll
+*message.scrollVertical: Always
+# hide horizontal scroll
+*message.scrollHorizontal: Never
+# rectange button style
+*Command.shapeStyle: rectangle
+# thickness highlight
+*Command.highlightThickness: 1
+# font for messages
+{% if pkg('media-fonts/droid') %}
+*font: -*-droid sans-medium-r-*-*-*-*-*-*-*-*-*-uni
+{% else %}
+*font: -*-verdana-medium-r-*-*-*-*-*-*-*-*-*-uni
+{% endif %}