1
0

center-window.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. # Klimbim Software collection, A bag full of things
  3. # Copyright (C) 2011-2023 Johannes 'Banana' Keßler
  4. #
  5. # This program is free software: you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation, either version 3 of the License, or
  8. # (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  17. # Center the current actve window based on screen and window size
  18. # create a kyboard shortcut to execute the script
  19. # needs the following applications
  20. # xdotool
  21. # xdpyinfo
  22. # This program is free software: you can redistribute it and/or modify
  23. # it under the terms of the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
  24. #
  25. # You should have received a copy of the
  26. # COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
  27. # along with this program. If not, see http://www.sun.com/cddl/cddl.html
  28. # 2019 https://www.bananas-playground.net
  29. screenWidth=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $7 }')
  30. screenHeight=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $8 }')
  31. window_id=$(xdotool getactivewindow)
  32. width=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $4 }')
  33. height=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $5 }')
  34. newPosX=$((screenWidth/2-width/2))
  35. newPosY=$((screenHeight/2-height/2))
  36. xdotool getactivewindow windowmove "$newPosX" "$newPosY"