diff --git a/data/packages.xml b/data/packages.xml index 4c37ceedd..802383d2f 100644 --- a/data/packages.xml +++ b/data/packages.xml @@ -57,11 +57,13 @@ mesa-vdpau numix-frost-themes numix-icon-theme - numix-icon-theme-square + numix-icon-theme-square pamac pavucontrol pulseaudio pulseaudio-alsa + qt5-style-plugins + qt5ct ttf-bitstream-vera ttf-dejavu ttf-liberation diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh index 6c4b3cf44..a08d37b5a 100755 --- a/scripts/postinstall.sh +++ b/scripts/postinstall.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/bash # -*- coding: utf-8 -*- # # postinstall.sh @@ -94,10 +94,6 @@ gnome_settings() { # xscreensaver config set_xscreensaver - - # Ensure that Light Locker starts before gnome-shell - # TODO: Need to do this another way - sed -i 's|echo "X|/usr/bin/light-locker \&\nsleep 3; echo "X|g' ${CN_DESTDIR}/etc/lightdm/Xsession } cinnamon_settings() { @@ -318,6 +314,17 @@ postinstall() { set_xorg fi + # Fix ugly styles for Qt applications when running under GTK-based desktops and Qt 5.7+ + if [[ kde != "${CN_DESKTOP}" && lxqt != "${CN_DESKTOP}" ]]; then + mkdir -p "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/qt5ct" "${CN_DESTDIR}/etc/skel/qt5ct" + cp /usr/share/cnchi/scripts/postinstall/qt5ct.conf "${CN_DESTDIR}/etc/skel/qt5ct" + cp /usr/share/cnchi/scripts/postinstall/qt5ct.conf "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/qt5ct" + fi + + # Monkey patch session wrapper + cp /usr/share/cnchi/scripts/postinstall/Xsession "${CN_DESTDIR}/etc/lightdm/Xsession" + chmod +x "${CN_DESTDIR}/etc/lightdm/Xsession" + # Configure fontconfig FONTCONFIG_FILE="/usr/share/cnchi/scripts/fonts.conf" if [[ -f "${FONTCONFIG_FILE}" ]]; then @@ -337,16 +344,16 @@ postinstall() { /usr/share/antergos/antergos-menu.png \ /usr/share/cnchi/data/images/antergos/antergos-menu-logo-dark-bg.png - for _size in "22" "24" "32" - do - _icon="antergos-ball-26.png" - [[ "32" = "${_size}" ]] && _icon="antergos-menu-logo-dark-bg.png" + #for _size in "22" "24" "32" + #do + # _icon="antergos-ball-26.png" + # [[ "32" = "${_size}" ]] && _icon="antergos-menu-logo-dark-bg.png" - cd "${CN_DESTDIR}/usr/share/icons/Numix/${_size}/places" \ - && mv start-here.svg start-here-numix.svg \ - && cp "/usr/share/cnchi/data/images/antergos/${_icon}" start-here.png \ - && cd - - done + # cd "${CN_DESTDIR}/usr/share/icons/Numix/${_size}/places" \ + # && mv start-here.svg start-here-numix.svg \ + # && cp "/usr/share/cnchi/data/images/antergos/${_icon}" start-here.png \ + # && cd - + #done # Set desktop-specific settings ${CN_DESKTOP}_settings diff --git a/scripts/postinstall/XSession.sh b/scripts/postinstall/XSession.sh new file mode 100644 index 000000000..87b90d7d4 --- /dev/null +++ b/scripts/postinstall/XSession.sh @@ -0,0 +1,76 @@ +#!/bin/sh +# +# LightDM wrapper to run around X sessions. + +echo "Running X session wrapper" + +# Load profile +for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do + if [ -f "$file" ]; then + echo "Loading profile from $file"; + . "$file" + fi +done + +# Load resources +for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do + if [ -f "$file" ]; then + echo "Loading resource: $file" + xrdb -merge "$file" + fi +done + +# Load keymaps +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 + +# Load xmodmap if not using XKB +if [ -z "$XKB_IN_USE" ]; then + for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do + if [ -f "$file" ]; then + echo "Loading modmap: $file" + xmodmap "$file" + fi + done +fi + +unset XKB_IN_USE + +# Run all system xinitrc shell scripts +xinitdir="/etc/X11/xinit/xinitrc.d" +if [ -d "$xinitdir" ]; then + for script in $xinitdir/*; do + echo "Loading xinit script $script" + if [ -x "$script" -a ! -d "$script" ]; then + . "$script" + fi + done +fi + +# Run user xsession shell script +script="$HOME/.xsession" +if [ -x "$script" -a ! -d "$script" ]; then + echo "Loading xsession script $script" + . "$script" +fi + +if [[ " ${@[@]} " =~ " gnome|xfce|openbox " && "$(which light-locker)" ]]; then + # Ensure that Light Locker starts before session manager. + /usr/bin/light-locker & + sleep 3 +fi + +if ! [[ " ${@[@]} " =~ " plasma|lxqt " ]]; then + # Fix ugly styles for Qt applications when running under GTK-based desktops and Qt 5.7+ + export QT_QPA_PLATFORMTHEME='qt5ct' + export QT_STYLE_OVERRIDE='' +fi + +echo "X session wrapper complete, running session $*" + +exec "$@" \ No newline at end of file diff --git a/scripts/postinstall/qt5ct.conf b/scripts/postinstall/qt5ct.conf new file mode 100644 index 000000000..e1548f32f --- /dev/null +++ b/scripts/postinstall/qt5ct.conf @@ -0,0 +1,22 @@ +[Appearance] +color_scheme_path= +custom_palette=false +icon_theme=Numix-Square +style=Fusion + +[Fonts] +fixed= +general= + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=3 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=General +menus_have_icons=true +stylesheets=@Invalid() + +[SettingsWindow] +geometry=