背景

调试一个程序,有当前的控制窗口,还要两个输出调试窗口(一个调试信息,一个报错信息)。
每次重启之后,都需要重新挪动窗口,才适合调试,挪动的过程很麻烦。
Kali默认的控制台是“QTerminal”,没找到怎么通过参数启动后设置3个不重叠的窗口。
我想要的分屏效果:
image.png
中间对半开,右边上下对半

Kali

Kali没有自带resize命令,并且有其他第三方的程序可以设置,但是由于考虑兼容性,基本上只能通过原生环境来修改。

QTerminal

有切割的功能,实现方式是组合击键:
image.png

Python实现击键

有一个细节,一开始按键方式是一个循环里按下和释放,发现无效:

  1. for iKey in listKey:
  2. keyboard.press( iKey )
  3. keyboard.release( iKey )

组合按键需要全部按下后,此时击键同时存在,触发事件后,才能释放。
需要写成2个循环,全部按下后,再全部释放:

  1. for iKey in listKey:
  2. keyboard.press( iKey )
  3. for iKey in listKey:
  4. keyboard.release( iKey )

完整实现Python代码

  1. from pynput.keyboard import Key , Controller
  2. # Show : Console cut to 3
  3. def funShow_ConsoleSplit3():
  4. listKey = [Key.ctrl , Key.shift]
  5. listKeyV = listKey + ["R"]
  6. funManual_KeyPress( listKeyV )
  7. listKeyH = listKey + ["D"]
  8. funManual_KeyPress( listKeyH )
  9. # Key : Press and Release
  10. def funManual_KeyPress( inputKey ):
  11. keyboard = Controller()
  12. if funGet_Type( inputKey ) == typeList:
  13. for iKey in inputKey:
  14. keyboard.press( iKey )
  15. for iKey in inputKey:
  16. keyboard.release( iKey )
  17. elif funGet_Type( inputKey ) == typeString:
  18. keyboard.press( inputKey )
  19. keyboard.release( inputKey )

效果录屏

20220921_140218.gif