#!/bin/bash ###################################################### # THIS SCRIPT DOWNLOADS AND COMPILES PROGRAM 'xcmenu' IN A DEBIAN SYSTEM # # THIS SCRIPT PRESENTS A METHOD OF TAKING A SCREENSHOT ON A LINUX DESKTOP # IN A SIMILAR WAY THAN ON MICROSOFT WINDOWS. ############### # This is a useful method for capturing screenshots on a X11 desktop # The main idea is to replicate Microsoft Windows behavior of taking screenshots # without any additional cumbersome client programs which are traditionally used on Linux desktops. # # Source code and build instructions (mainly for Arch Linux) of the command 'xclipshow' are available here: # https://github.com/Fincer/linux-patches-and-scripts/tree/master/xclipshow # # The code is originally presented in # https://unix.stackexchange.com/questions/163081/application-that-allows-to-show-clipboard-contents-and-its-mime-type/163115#163115 # ############### # # 1. Run this script with 'bash compile-xcmenu.sh' # 2. Verify xcmenu installation by running 'dpkg --get-selections |grep xcmenu' # 3. You need imagemagick. Install it by running 'sudo apt-get install imagemagick' # 4. Copy the following command... # import -window root -screen /tmp/screen.png | xcmenu -bi image/png < /tmp/screen.png # ... and map a new shortcut key for it (such as printscreen key) on your preferred desktop environment. # 5. Compile 'xclipshow' by following the instructions given above and in this script below. # Additionally, You need 'cmake' and 'qt5-default' packages to compile the source code (not sure if other Qt5 packages are also required). # # 6. Map another shortcut key (such as Alt+V) for the chosen paint program (kolourpaint in this case). # Use the following command syntax for pasting shortcut: # bash -c "if [[ $(xclipshow |grep -c image/png) -eq 1 ]]; then kolourpaint /tmp/screen.png; fi" ############### # Personally, I have mapped print screen key to capture & save a screenshot, and Alt+V to open it into Kolourpaint on KDE 5 desktop. # Additionally, I have implemented a GUI nofitication for screenshots. Each time screenshot is saved in /tmp, the desktop reminds me about that. ###################################################### # INSTRUCTIONS FOR COMPILING 'xcmenu' FROM SOURCE IN A DEBIAN SYSTEM ###################################################### # Install necessary dependencies for the program sudo apt-get install zlib1g libxcb1 zlib1g-dev libxcb1-dev dh-make git make ###################################################### # Go to $HOME, create subfolder 'xcmenu' # Clone source files from GitHub to $HOME/xcmenu/xcmenu-0.1.0 subfolder # Access xcmenu-0.1.0 subfolder cd && mkdir xcmenu cd xcmenu && git clone git://github.com/dindon-sournois/xcmenu.git xcmenu-0.1.0 cd xcmenu-0.1.0 ###################################################### # Prepare compiling environment by generating 'debian' folder + contents dh_make --createorig -s -y ###################################################### # Set build & runtime dependencies + build rule overrides # Build time dependencies sed -i 's/Build-Depends: debhelper (>=9)/Build-Depends: debhelper (>=9), make, zlib1g-dev, libxcb1-dev/g' debian/control # Runtime dependencies sed -i 's/Depends: ${shlibs:Depends}, ${misc:Depends}/Depends: gcc, zlib1g, libxcb1/g' debian/control # Program description sed -i 's//lightweight clipboard manager for X/g' debian/control sed -i 's/ / ./g' debian/control # A build rule override echo 'override_dh_usrlocal:' | tee -a debian/rules ###################################################### # Compile source files into a deb package without signatures dpkg-buildpackage -rfakeroot -b -us -uc ###################################################### # Install compiled .deb package sudo dpkg -i ../xcmenu*.deb ###################################################### # Remove build dependencies from the system as they are no longer needed sudo apt-get purge --remove zlib1g-dev libxcb1-dev