notes/i3wm and Dmenu Window Focus by Class-tvv0nntt.sh
#!/bin/bash

###################################################################### 
#Copyright (C) 2018  Kris Occhipinti
#https://filmsbykris.com

#Uses dmenu to focus on an Open Window by Class


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

###################################################################### 

function main(){
  #get Window Title

  w="$(getList|dmenu -i -l 20 -fn Monospace-18)"

  #focus on Window by class
  i3-msg "[class=\"$w\"] focus"

  exit 0
}

function getList(){
  #get a list of classes for open Windows
  i3-msg -t get_tree|\
    tr "," "\n"|\

    grep class|\
    cut -d\" -f6|\
    sort -u
}
function getListTitle(){
  #get a list of all open windows
  i3-msg -t get_tree|\
    tr "," "\n"|\
    grep '^"title"'|\
    cut -d\" -f4|\
    sort -u
}
main

syntax highlighted by Code2HTML, v. 0.9.1