#!/bin/bash # # Program: kompswitch # Version: 0.4 # Date: 4/19/2008 # Copyright: (c) 2008 Aculade, LLC # Contact: See www.aculade.com for more info. # # # KompSwitch: For automatically disabling/reenabling compositing for DVD playback. # Copyright (C) 2008 Aculade, LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/. # # # Purpose: KompSwitch simply addresses the problem with playing DVDs on some Ubuntu systems. # For some systems, playing DVDs with compositing enabled causes flickering during # playback. # It switches off compositing features for the duration that the video player is in # use; as soon as the video player is closed, compositing is re-enabled. # This allows cool desktop effects and the ability to watch DVDs without actively # switching managers; KompSwitch will automatically turn of compositing and re-enable # it upon closing the movie. # # Directions: # 1) Save this entire file to your home directory # 2) Make it executable, from Terminal or another command line utility # sudo chmod u+x kompswitch # 3) In Ubuntu, go to System > Preferences > Main Menu # 4) Click Sound & Video in the left pane # 5) Highlight your video player of choice # 6) Click Properties # 7) Copy the text command and paste it in this file inside the quotes for PLAYER # PLAYER="PASTE_IT_HERE" # You can drop the options, only the package name is necessary--totem, vlc, etc. # If you use Totem (default in Ubuntu and this program), then no need to change # anything # 8) Change the command to # /home/YOURUSERNAME/kompswitch [--player PLAYER] # Replace YOURUSERNAME with the name of your home directory and PLAYER with the # command to run your DVD player program. Example: replace PLAYER with vlc # 9) Now when you want to run DVDs, click the launcher under the Applications menu # # Hope this helps and you don't give up on Ubuntu just to watch DVDs! # ##### # # DEFINE YOUR CONFIGURATION HERE # # PLAYER is the command used to run the application you use to play DVDs # Examples: totem, vlc, etc. # PLAYER="totem" # DVD_DRIVE is the device used to play DVDs # Change if yours is different # Can also try /dev/scd0? # If you're using VLC, open VLC as normal (without the launcher changed and go to Media > Open Disc # Click the Disc tab and look at the Disc Device box...try that DVD_DRIVE="/dev/dvd" # MAIN_DE is the name of the desktop environment you usually use # TEMP_DE is the name of the desk. env. without compositing # Change these two lines to make work for Kubuntu and Xubuntu MAIN_DE="compiz" TEMP_DE="metacity" ##### prog_info() { printf "\n KompSwitch" printf "\n For disabling compositing effects to allow DVD playback in Ubuntu systems" printf "\n" printf "\n Usage: Call with no arguments to run." printf "\n" printf "\n Options:" printf "\n -h | --help: Show help" printf "\n --player PLAYER: Sets the player to be used to PLAYER" printf "\n Some options are totem, vlc, etc." printf "\n -v | --version: Display current version" printf "\n --license: Display the free software license" printf "\n --remove | --uninstall: Uninstall kompswitch completely" printf "\n" printf "\n Examples:" printf "\n To play DVD using Totem (default): ~/kompswitch" printf "\n To play DVD using VLC: ~/kompswitch --player vlc" printf "\n To uninstall kompswitch: ~/kompswitch --uninstall" printf "\n\n" } switcher() { printf "\n Turning $MAIN_DE off..." $TEMP_DE --replace 1>/dev/null 2>/dev/null & printf " [done]" printf "\n Watching DVD (close DVD player window when finished)..." $PLAYER $DVD_DRIVE 1>/dev/null 2>/dev/null printf " [done]" printf "\n Turning $MAIN_DE on..." $MAIN_DE --replace 1>/dev/null 2>/dev/null & printf " [done]" } remove_installer() { INSTALLER=${HOME}/kompswitch.install if [ -f $INSTALLER ] ; then rm "$INSTALLER" printf "\n Removing installer... [done]" fi } uninstall() { cd ${HOME} if [ -f Desktop/kompswitch.desktop ] ; then rm Desktop/kompswitch.desktop printf "\n Removing desktop launcher... [done]" else printf "\n Warning: Could not remove Desktop/kompswitch.desktop: It has been moved." fi if [ -f kompswitch.install ] ; then rm kompswitch.install fi if [ -f LICENSE ] ; then rm LICENSE printf "\n Removing license... [done]" else printf "\n Warning: Could not remove LICENSE: It has been moved." fi if [ -f kompswitch ] ; then rm kompswitch printf "\n Removing script... [done]" else printf "\n Warning: Could not remove KompSwitch: It could not be found." fi printf "\n Uninstallation complete.\n\n" } version() { printf "Version: 0.4\n" } header() { printf "\n KompSwitch " printf "\n For disabling compositing effects to allow DVD playback in Ubuntu systems " printf "\n" printf "\n Program: kompswitch " printf "\n Copyright: (c) 2008 Aculade, LLC " printf "\n Contact: See www.aculade.com for more info. " printf "\n\n" } license() { echo "`cat LICENSE`"; printf "\n"; } if [ $# -ne 0 ] ; then case $1 in -h | --help) prog_info exit 0 ;; --player) if [ $# -eq 2 ] ; then PLAYER=$2 header remove_installer switcher printf "\n\n" else header printf "\n Error: --player option requires a DVD player to be specified.\n" printf " A third argument of the player name is required.\n" printf " Example: ~/kompswitch --player vlc\n\n" fi exit 0 ;; --remove | --uninstall) header uninstall exit 0 ;; -v | --version) version exit 0 ;; --license) license exit 0 ;; *) header printf "\n Error: $1 is not a valid option.\n ...I don't get it. Try again.\n\n" exit 0 ;; esac else header remove_installer switcher fi printf "\n\n" exit 0