Skip to content

Instantly share code, notes, and snippets.

@DonnieWest
Last active December 5, 2022 23:12
Show Gist options
  • Select an option

  • Save DonnieWest/e0276a66d82d7fd01271745ecd5cb9bd to your computer and use it in GitHub Desktop.

Select an option

Save DonnieWest/e0276a66d82d7fd01271745ecd5cb9bd to your computer and use it in GitHub Desktop.
Restraint

Restraint - a minimal terminal

Requires qtermwidget. To build, run:

g++ $(pkg-config --cflags --libs Qt5Widgets qtermwidget5) -fPIC -o restraint restraint.cpp

# --- special colors ---
[Background]
Color=10,15,20
[BackgroundIntense]
Color=10,15,20
[Foreground]
Color=152,209,206
[ForegroundIntense]
Color=152,209,206
Bold=true
# --- standard colors ---
[Color0]
Color=10,15,20
[Color0Intense]
Color=16,21,27
[Color1]
Color=195,48,39
[Color1Intense]
Color=210,105,57
[Color2]
Color=38,169,139
[Color2Intense]
Color=8,31,45
[Color3]
Color=237,181,75
[Color3Intense]
Color=36,83,97
[Color4]
Color=25,84,101
[Color4Intense]
Color=9,55,72
[Color5]
Color=78,81,101
[Color5Intense]
Color=136,139,165
[Color6]
Color=51,133,157
[Color6Intense]
Color=89,156,170
[Color7]
Color=152,209,206
[Color7Intense]
Color=211,235,233
# --- general options ---
[General]
Description=terminal.sexy
Opacity=1
Wallpaper=
#include <QApplication>
#include <QDesktopServices>
#include <QKeySequence>
#include <QMainWindow>
#include <QShortcut>
#include <QtDebug>
#include "qtermwidget.h"
void activateUrl(const QUrl &url, bool fromContextMenu) {
if (QApplication::keyboardModifiers() & Qt::ControlModifier ||
fromContextMenu) {
QDesktopServices::openUrl(url);
}
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow *mainWindow = new QMainWindow();
QCoreApplication::instance()->setAttribute(
Qt::AA_UseHighDpiPixmaps); // Fix for High-DPI systems
setenv("TERM", "xterm-256color", 1);
QTermWidget *console = new QTermWidget();
QFont font = QApplication::font();
font.setFamily("Dank Mono");
font.setPixelSize(22);
font.setWeight(QFont::Normal);
console->setTerminalFont(font);
console->setAutoClose(true);
console->setColorScheme("/home/igneo676/gotham.colorscheme");
// console->setTerminalOpacity(0.9);
QObject::connect(console, &QTermWidget::urlActivated, mainWindow,
activateUrl);
QObject::connect(new QShortcut(QKeySequence("Ctrl+Shift+V"), mainWindow),
&QShortcut::activated,
[console]() { console->pasteClipboard(); });
QObject::connect(new QShortcut(QKeySequence("Ctrl+Shift+C"), mainWindow),
&QShortcut::activated,
[console]() { console->copyClipboard(); });
mainWindow->resize(1800, 3200);
mainWindow->setCentralWidget(console);
QObject::connect(console, SIGNAL(finished()), mainWindow, SLOT(close()));
mainWindow->show();
return app.exec();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment