CCCPaste

FZF Window Switcher

#!/bin/bash
###################################################################### 
#This creates a windows switcher/launcher with fzf
#Copyright (C) 2020  Kris Occhipinti
#https://filmsbykris.com

#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 .
###################################################################### 


win=$((wmctrl -l|sed 's/^/o /';ls /usr/share/applications/*.desktop)|fzf)

if [[ $win = "o "* ]]
then
  title="$(echo $win|awk '{ s = ""; for (i = 5; i <= NF; i++) s = s $i " "; print s}')"
  space="$(echo $win|awk '{print $3}')"

  echo "wmctrl -s $space -a \"$title\""
  #wmctrl -s $space -a "${title%?}"
  wmctrl -s $space -a $title
else
  prog="$(basename $win)"
  setsid gtk-launch $prog &> /dev/null
  echo "Opening $prog..."
fi