diff --git a/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.conf b/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.conf new file mode 100644 index 0000000..428ae7d --- /dev/null +++ b/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.conf @@ -0,0 +1,163 @@ +# Configuration file for libinput-gestures. +# +# The default configuration file exists at /etc/libinput-gestures.conf +# but a user can create a personal custom configuration file at +# ~/.config/libinput-gestures.conf. +# +# Lines starting with '#' and blank lines are ignored. Currently +# "gesture" and "device" configuration keywords are supported as +# described below. The keyword can optionally be appended with a ":" (to +# maintain compatibility with original format configuration files). +# +# Each gesture line has 3 [or 4] arguments separated by whitespace: +# +# action motion [finger_count] command +# +# where action and motion is either: +# swipe up +# swipe down +# swipe left +# swipe right +# pinch in +# pinch out +# +# command is the remainder of the line and is any valid shell command + +# arguments. +# +# finger_count is a single numeric digit and is optional (and is +# typically 3 or 4). If specified then the command is executed when +# exactly that number of fingers is used in the gesture. If not +# specified then the command is executed when that gesture is executed +# with any number of fingers. Gesture lines specified with finger_count +# have priority over the same gesture specified without any +# finger_count. +# +# Typically command will be xdotool, or wmctrl. See "man xdotool" for +# the many things you can action with that tool. Note that unfortunately +# xdotool does not work with native Wayland clients. + +############################################################################### +# SWIPE GESTURES: +############################################################################### + +# Note the default is an "internal" command that uses wmctrl to switch +# workspaces and, unlike xdotool, works on both Xorg and Wayland (via +# XWayland). It also can be configured for vertical and horizontal +# switching over tabular workspaces, as per the example below. You can +# also add "-w" to the internal command to allow wrapping workspaces. + +# Move to next workspace (works for GNOME/KDE/etc on Wayland and Xorg) +gesture swipe up _internal ws_up + +# NOTE ABOUT FINGER COUNT: +# The above command will configure this command for all fingers (i.e. 3 +# for 4) but to configure it for 3 fingers only, change it to: +# gesture swipe up 3 _internal ws_up +# Then you can configure something else for 4 fingers or leave 4 fingers +# unconfigured. You can configure an explicit finger count like this for +# all example commands in this configuration file. +# +# gesture swipe up xdotool key super+Page_Down + +# Move to prev workspace (works for GNOME/KDE/etc on Wayland and Xorg) +gesture swipe down _internal ws_down +# gesture swipe down xdotool key super+Page_Up + +# Browser go forward (works only for Xorg, and Xwayland clients) +gesture swipe left 4 xdotool key alt+control+Left + +# Browser go back (works only for Xorg, and Xwayland clients) +gesture swipe right 4 xdotool key alt+control+Right + +# NOTE: If you don't use "natural" scrolling direction for your touchpad +# then you may want to swap the above default left/right and up/down +# configurations. + +# Optional extended swipe gestures, e.g. for browser tab navigation: +# +# Jump to next open browser tab +# gesture swipe right_up xdotool key control+Tab +# +# Jump to previous open browser tab +# gesture swipe left_up xdotool key control+shift+Tab +# +# Close current browser tab +# gesture swipe left_down xdotool key control+w +# +# Reopen and jump to last closed browser tab +# gesture swipe right_down xdotool key control+shift+t + +# Example of 8 static workspaces, e.g. using KDE virtual-desktops, +# arranged in 2 rows of 4 across using swipe up/down/left/right to +# navigate in fixed planes. Must match how you have configured your +# virtual desktops. +# gesture swipe up _internal --col=2 ws_up +# gesture swipe down _internal --col=2 ws_down +# gesture swipe left _internal --row=4 ws_up +# gesture swipe right _internal --row=4 ws_down + +# Example virtual desktop switching for Ubuntu Unity/Compiz. The +# _internal command does not work for Compiz but you can explicitly +# configure the swipe commands to work for a Compiz virtual 2 +# dimensional desktop as follows: +# gesture swipe up xdotool key ctrl+alt+Up +# gesture swipe down xdotool key ctrl+alt+Down +# gesture swipe left xdotool key ctrl+alt+Left +# gesture swipe right xdotool key ctrl+alt+Right + +# Example to change audio volume: +# Note this only works on an Xorg desktop (not Wayland). +# gesture swipe up xdotool key XF86AudioRaiseVolume +# gesture swipe down xdotool key XF86AudioLowerVolume + +############################################################################### +# PINCH GESTURES: +############################################################################### + +# GNOME SHELL open/close overview (works for GNOME on Xorg only) +gesture pinch in xdotool key super+s +gesture pinch out xdotool key super+s + +# KDE Plasma open/close overview +# gesture pinch in xdotool key ctrl+F9 +# gesture pinch out xdotool key ctrl+F9 + +# GNOME SHELL open/close overview (works for GNOME on Wayland and Xorg) +# Note since GNOME 3.24 on Wayland this is implemented natively so no +# real point configuring for Wayland. +# gesture pinch in dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();' +# gesture pinch out dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();' + +# Optional extended pinch gestures: +# gesture pinch clockwise +# gesture pinch anticlockwise + +############################################################################### +# This application normally determines your touchpad device +# automatically. Some users may have multiple touchpads but by default +# we use only the first one found. However, you can choose to specify +# the explicit device name to use. Run "libinput list-devices" to work +# out the name of your device (from the "Device:" field). Then add a +# device line specifying that name, e.g: +# +# device DLL0665:01 06CB:76AD Touchpad +# +# If the device name starts with a '/' then it is instead considered as +# the explicit device path although since device paths can change +# through reboots this is best to be a symlink. E.g. instead of specifying +# /dev/input/event12, use the corresponding full path link under +# /dev/input/by-path/*. +# +# You can choose to use ALL touchpad devices by setting the device name +# to "all". E.g. Do this if you have multiple touchpads which you want +# to use in parallel. This reduces performance slightly so only set this +# if you have to. +# +# device all + +############################################################################### +# You can set a minimum travel distance threshold before swipe gestures +# are actioned using the swipe_threshold configuration command. +# Specify this value in dots. The default is 0. +# E.g. set it to 100 dots with "swipe_threshold 100". +# swipe_threshold 0 diff --git a/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.desktop b/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.desktop new file mode 100644 index 0000000..903c14c --- /dev/null +++ b/resources/InstallResources/xfce-config/libinput-gestures/libinput-gestures.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Terminal=false +Name=Libinput Gestures +Exec=/usr/bin/libinput-gestures +Icon=libinput-gestures +Comment=Background application to intercept and action libinput gestures from touchpad. +Categories=GNOME;GTK;System; diff --git a/resources/InstallResources/xfce-config/plank/plank.desktop b/resources/InstallResources/xfce-config/plank/plank.desktop index 706e2a6..db12d4c 100644 --- a/resources/InstallResources/xfce-config/plank/plank.desktop +++ b/resources/InstallResources/xfce-config/plank/plank.desktop @@ -4,3 +4,5 @@ Name=Plank Comment=Plank Dock Exec=/usr/bin/plank Type=Application +NoDisplay=false +Hidden=false diff --git a/scripts/InstallScripts/InstallPackages.sh b/scripts/InstallScripts/InstallPackages.sh index d89571a..7d2c46a 100755 --- a/scripts/InstallScripts/InstallPackages.sh +++ b/scripts/InstallScripts/InstallPackages.sh @@ -28,6 +28,9 @@ apt install -y network-manager-gnome network-manager-openvpn [ "$DE" = "xfce" ] && cp -f $DIR/xfce-config/lightdm/* /etc/lightdm/ #Copy in wallpapers [ "$DE" = "xfce" ] && rm /usr/share/images/desktop-base/default && cp $DIR/wallpapers/* /usr/share/images/desktop-base/ +#Add libinput-gestures config and autostart +[ "$DE" = "xfce" ] && cp $DIR/xfce-config/libinput-gestures/libinput-gestures.conf /etc/ +[ "$DE" = "xfce" ] && cp $DIR/xfce-config/libinput-gestures/libinput-gestures.desktop /etc/xdg/autostart/ #Make plank autostart [ "$DE" = "xfce" ] && cp $DIR/xfce-config/plank/plank.desktop /etc/xdg/autostart/ @@ -45,7 +48,7 @@ apt clean && apt autoremove --purge echo " Enter new username: " read username adduser $username -usermod -a -G sudo,netdev $username +usermod -a -G sudo,netdev,input $username #install plank launchers #TODO: Disabled as doing it this way causes xconf or xfce4-session to not start?? diff --git a/scripts/buildDebianFs.sh b/scripts/buildDebianFs.sh index 94060f3..cd3bad7 100755 --- a/scripts/buildDebianFs.sh +++ b/scripts/buildDebianFs.sh @@ -85,7 +85,7 @@ cp /etc/locale.gen $outmnt/etc/ #Install the base packages chroot $outmnt apt update -chroot $outmnt apt install -y initscripts udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt vim-tiny less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils +chroot $outmnt apt install -y initscripts udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt vim-tiny less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils git #Cleanup to reduce install size chroot $outmnt apt-get autoremove --purge @@ -94,6 +94,24 @@ chroot $outmnt apt-get clean #Download the packages to be installed by Install.sh: chroot $outmnt apt-get install -y -d xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils lxqt xserver-xorg-input-synaptics crda xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies mousepad vlc libutempter0 xterm numix-gtk-theme dconf-tools plank network-manager-gnome network-manager-openvpn +#Download and build libinput-gestures +chroot $outmnt apt install libinput-tools xdotool +chroot $outmnt cd /root/ +chroot $outmnt git clone http://github.com/bulletmark/libinput-gestures +chroot $outmnt cd libinput-gestures +chroot $outmnt make install + +#Download and build xfdesktop +#chroot $outmnt apt-get install xfce4-dev-tools build-essential glib2.0 libglib2.0-dev xorg-dev libwnck-3-dev libclutter-1.0-dev libgarcon-1-0-dev libxfconf-0-dev libxfce4util-dev libxfce4ui-2-dev libxcomposite-dev libxdamage-dev libxinerama-dev +#chroot $outmnt cd /root/ +#chroot $outmnt git clone https://github.com/gmc-holle/xfdashboard +#chroot $outmnt cd xfdashboard +#chroot $outmnt git checkout a7851d82ec89b3cd49952c6022813bbe6b8b0bc9 +#One of these three +#chroot $outmnt ./autogen.sh --disable-xcomposite --disable-xdamage --disable-xinerama +#chroot $outmnt ./autogen.sh --disable-xcomposite +#chroot $outmnt ./autogen.sh --disable-xinerama + #Cleanup hosts rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests echo -n "127.0.0.1 PrawnOS-Alpha" > $outmnt/etc/hosts