diff --git a/actions.py b/actions.py
--- a/actions.py
+++ b/actions.py
@@ -31,6 +31,7 @@
pisitools.dosym("../run/lock", "/var/lock")
pisitools.dosym("lib64", "/lib")
pisitools.dosym("lib64", "/usr/lib")
+ pisitools.dosym("/usr/share/defaults/etc/xprofile", "/etc/xprofile")
pisitools.dosym("/proc/self/mounts", "/etc/mtab")
diff --git a/files/system-xprofile b/files/system-xprofile
new file mode 100644
--- /dev/null
+++ b/files/system-xprofile
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# A sample xprofile for setting up X user session.
+
+# NB: Loading xkbmap and xmodmap files does not take effect on Budgie and GNOME desktop environments
+# since gnome-session overwrites user's keymaps later. A workaround is to create a setkeymaps.desktop
+# file in ~/.config/autostart to load these files after X session starts. The following is a sample of
+# setkeymaps.dekstop:
+#
+# [Desktop Entry]
+# Type=Application
+# Name=setkeymaps
+# Description=Setting up keymaps for X session
+# Exec=bash -c "/usr/bin/xmodmap ~/.Xmodmap"
+
+# Load keymaps
+if command -v setxkbmap >/dev/null 2>&1; then
+ for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
+ if [ -f "$file" ]; then
+ echo "Loading keymap: $file"
+ setxkbmap $(cat "$file")
+ XKB_IN_USE=yes
+ fi
+ done
+ unset file
+fi
+
+# Load xmodmap if not using XKB
+if [ -z "$XKB_IN_USE" ] && command -v xmodmap >/dev/null 2>&1; then
+ for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
+ if [ -f "$file" ]; then
+ echo "Loading modmap: $file"
+ xmodmap "$file"
+ fi
+ done
+ unset file
+fi
+
+unset XKB_IN_USE
diff --git a/files/user-xprofile b/files/user-xprofile
new file mode 100644
--- /dev/null
+++ b/files/user-xprofile
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+# This file is sourced by display managers before the X user session starts.
diff --git a/pspec.xml b/pspec.xml
--- a/pspec.xml
+++ b/pspec.xml
@@ -45,6 +45,8 @@
services
protocols
nsswitch.conf
+ system-xprofile
+ user-xprofile
System.Package
@@ -53,6 +55,14 @@
+
+ 06-04-2020
+ 1.8.0
+ Package bump
+ Longwu Ou
+ xulongwu4@gmail.com
+
+
01-24-2020
1.8.0
@@ -548,4 +558,4 @@
ikey@solusos.com
-
\ No newline at end of file
+