Advertisement
Guest User

i3 - winrule script

a guest
Oct 22nd, 2020
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.17 KB | None | 0 0
  1. #!/bin/bash
  2. ID="$(xprop -root _NET_ACTIVE_WINDOW | cut -d' ' -f5)"
  3. CLASS=$(xprop -id $ID WM_CLASS | cut -d'"' -f2)
  4. NAME=$(xprop -id $ID WM_NAME | cut -d'"' -f2)
  5.  
  6. CFG=$(mktemp)
  7. echo "# Choose command or define your own" >> $CFG
  8. echo "#COMMAND=kill" >> $CFG
  9. echo "#COMMAND='move window to workspace \$ws'" >> $CFG
  10. echo "#COMMAND='floating enable'" >> $CFG
  11. echo "# Remove properties you do not want to create rule for" >> $CFG
  12. echo "WM_CLASS='${CLASS}'" >> $CFG
  13. echo "WM_NAME='${NAME}'" >> $CFG
  14. vim $CFG
  15. source $CFG
  16. RULE="for_window ["
  17. if [ "$WM_CLASS" != "" ]; then
  18.     RULE="$RULE class=\"^$WM_CLASS\$\""
  19. fi
  20. if [ "$WM_NAME" != "" ]; then
  21.     RULE="$RULE title=\"^$WM_NAME\$\""
  22. fi
  23. RULE="$RULE] $COMMAND"
  24. CFG=$(mktemp)
  25. echo "#Is it right? Modify the rule or delete it to abort." >> $CFG
  26. echo "i3rule='$RULE'" >> $CFG
  27. vim $CFG
  28. source $CFG
  29. if [ "$i3rule" = "" ]; then
  30.     echo "Aborted."
  31.     exit
  32. fi
  33. echo "Backing up i3 config as config.backup"
  34. cp -f ~/.config/i3/config ~/.config/i3/config.backup
  35. echo "Adding rule: $i3rule"
  36. CMD='sed -i '"'"'s/#$GENERATED_RULES$#/#$GENERATED_RULES$#\n'"$i3rule"'/g;'"'"' ~/.config/i3/config'
  37. #echo "$CMD"
  38. eval $CMD
  39. echo "Done."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement