Skip to content

OuluBSD/RexTerm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RexTerm Banner

RexTerm

Cross-platform drop-down terminal for Windows, macOS, and Linux. It can float down from the top of the screen like Guake or run as a normal terminal window.

We wanted to just fork Guake, but the Linux-first codebase proved too difficult to adapt across platforms. A Qt6 + winpty core worked immediately on Windows, so we built a new app that follows Guake's spirit while targeting all major desktops.

Features

  • Drop-down quake-style terminal or standard windowed terminal
  • PyQt6 UI with tabs and configurable shortcuts
  • Truecolor/TERM export and scrollback via pyte + platform-appropriate PTY backend
  • Global hotkey for toggling the quake window (Windows only)
  • Settings dialog for fonts, themes, quake behavior, and shortcuts
  • Command execution capabilities
  • Command history with up/down arrow navigation
  • Keyboard shortcuts (Ctrl+C for interrupt, Ctrl+L to clear)
  • Proper terminal I/O handling through winpty
  • Threading for asynchronous operations

Dependencies

  • Python 3.8+
  • PyQt6
  • pywinpty (Windows only)
  • ptyprocess (Unix-like systems)

Installation (Windows / MSYS2 examples)

# UCRT64
pacman -S mingw-w64-ucrt-x86_64-python-pyqt6 mingw-w64-ucrt-x86_64-python-pywinpty

# CLANG64
pacman -S mingw-w64-clang-x86_64-python-pyqt6 mingw-w64-clang-x86_64-python-pywinpty

Installation (Linux)

pip install -r requirements.txt

Installation (macOS)

./install_macos.sh

Usage

Run the app:

python gui_shell.py

Notes

  • Default behavior follows Guake: quake-style drop-down when enabled, otherwise a standard window.
  • On Windows the PTY layer uses winpty; on Unix-like systems it uses ptyprocess for cross-platform PTY support.
  • Global hotkey functionality is now available cross-platform using the keyboard library.
  • On macOS, you may need to grant accessibility permissions for global hotkeys to work. Go to System Preferences > Security & Privacy > Privacy > Accessibility, and add your Python application or terminal.
  • In MSYS2/MinGW environments, pywinpty is installed as 'winpty'
  • The winpty module has a different API than standard pywinpty:
    • Uses pywinpty.ptyprocess.PtyProcess instead of pywinpty.spawn_process
    • Read and write methods have different signatures
  • Terminal might close prematurely under certain conditions
  • The winpty API doesn't directly support resizing
  • Reading from the terminal requires careful handling of timing and availability

About

Quake-like terminal for windows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •