Compare commits
39 Commits
1.0.1
...
aric49/fea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7bb749d3d | ||
|
|
8e5bc2ffca | ||
|
|
a445ab4b86 | ||
|
|
90060c8d1f | ||
|
|
af317fe39a | ||
|
|
d25346e814 | ||
|
|
1cf6e2743b | ||
|
|
68a5f0dd4b | ||
|
|
654f8d0761 | ||
|
|
dd799cf5c0 | ||
|
|
b8be28619a | ||
|
|
ca012a1c80 | ||
|
|
50de42ec9f | ||
|
|
38c9dd50ff | ||
|
|
27e4e3444a | ||
|
|
a8935da416 | ||
|
|
beb56c527b | ||
|
|
5e3caedaf6 | ||
|
|
0be17716f5 | ||
|
|
dda5fbc330 | ||
|
|
ffc16c6814 | ||
|
|
705371d7ee | ||
|
|
7c7810836e | ||
|
|
af9c039dcb | ||
|
|
7325835c3f | ||
|
|
e7aa72a7ab | ||
|
|
35c48de638 | ||
|
|
ae50ed980f | ||
|
|
1d6f0445f7 | ||
|
|
799ef63b81 | ||
|
|
6b22a0c03a | ||
|
|
2d54638f49 | ||
|
|
8adec835f6 | ||
|
|
a34654a9a9 | ||
|
|
b7c8108ad5 | ||
|
|
c34c3c3654 | ||
|
|
88988dd3e1 | ||
|
|
351b98189f | ||
|
|
e6a049c214 |
14
Dockerfile
Normal file
14
Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
||||
FROM ubuntu:18.04
|
||||
|
||||
#TODO: Clean up after installation and building
|
||||
RUN apt-get update && apt-get install -y build-essential qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
RUN qmake && make
|
||||
|
||||
RUN adduser user --home /home/user
|
||||
WORKDIR /app
|
||||
RUN chmod +x /app/cool-retro-term
|
||||
USER user
|
||||
ENTRYPOINT ["./cool-retro-term"]
|
||||
67
README.md
67
README.md
@@ -1,12 +1,16 @@
|
||||
# cool-retro-term
|
||||
|
||||
|> Default Amber|C:\ IBM DOS|$ Default Green|
|
||||
|---|---|---|
|
||||
||||
|
||||
|
||||
## Description
|
||||
cool-retro-term is a terminal emulator which mimics the look and feel of the old cathode tube screens.
|
||||
It has been designed to be eye-candy, customizable, and reasonably lightweight.
|
||||
|
||||
It uses the QML port of qtermwidget (Konsole) developed by me: https://github.com/Swordfish90/qmltermwidget .
|
||||
|
||||
This terminal emulator works under Linux and OSX and requires Qt 5.2 or higher.
|
||||
This terminal emulator works under Linux and macOS and requires Qt 5.2 or higher.
|
||||
|
||||
## Screenshots
|
||||

|
||||
@@ -16,7 +20,9 @@ This terminal emulator works under Linux and OSX and requires Qt 5.2 or higher.
|
||||
## Get cool-retro-term
|
||||
You can either build cool-retro-term yourself (see below) or walk the easy way and install one of these packages:
|
||||
|
||||
Users of Fedora and openSUSE can grab a package from [Open Build Service](http://software.opensuse.org/package/cool-retro-term).
|
||||
Fedora has the `cool-retro-term` in the offcial repositories. All you have to do is `sudo dnf install cool-retro-term`.
|
||||
|
||||
Users of openSUSE can grab a package from [Open Build Service](http://software.opensuse.org/package/cool-retro-term).
|
||||
|
||||
Arch users can install this [package](https://aur.archlinux.org/packages/cool-retro-term-git/) directly via the [AUR](https://aur.archlinux.org):
|
||||
|
||||
@@ -28,20 +34,22 @@ or use:
|
||||
|
||||
to install precompiled from community repository.
|
||||
|
||||
Gentoo users can now install the first release "1.0" from a 3rd-party repository preferably via layman:
|
||||
Gentoo users can now install the second release "1.0.1" from a 3rd-party repository preferably via layman:
|
||||
|
||||
USE="git" emerge app-portage/layman
|
||||
wget https://www.gerczei.eu/files/gerczei.xml -O /etc/layman/overlays/gerczei.xml
|
||||
layman -f -a qt -a gerczei # those who've added the repo before 27/08/17 should remove, update and add it again as its source has changed
|
||||
ACCEPT_KEYWORDS="~*" emerge =x11-terms/cool-retro-term-1.0.0-r1::gerczei
|
||||
ACCEPT_KEYWORDS="~*" emerge =x11-terms/cool-retro-term-1.0.1::gerczei
|
||||
|
||||
The live ebuild (version 9999-r1) tracking the bleeding-edge WIP codebase also remains available.
|
||||
|
||||
A word of warning: USE flags and keywords are to be added to portage's configuration files and every emerge operation should be executed with '-p' (short option for --pretend) appended to the command line first as per best practice!
|
||||
|
||||
Ubuntu users of 14.04 LTS (Trusty) up to 15.10 (Wily) can use [this PPA](https://launchpad.net/~bugs-launchpad-net-falkensweb)
|
||||
Ubuntu users of 14.04 LTS (Trusty) up to 15.10 (Wily) can use [this PPA](https://launchpad.net/~bugs-launchpad-net-falkensweb).
|
||||
|
||||
OSX users can grab the latest dmg from the release page: https://github.com/Swordfish90/cool-retro-term/releases
|
||||
Ubuntu 17.10 can use [this PPA](https://launchpad.net/%7Evantuz/+archive/ubuntu/cool-retro-term)
|
||||
|
||||
macOS users can grab the latest dmg from the release page: https://github.com/Swordfish90/cool-retro-term/releases
|
||||
|
||||
## Build instructions (Linux)
|
||||
|
||||
@@ -64,13 +72,25 @@ Make sure to install these first.
|
||||
|
||||
**Ubuntu 17.04**
|
||||
|
||||
sudo apt-get install build-essential libqt5qml-graphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin
|
||||
sudo apt install build-essential libqt5qml-graphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin
|
||||
|
||||
---
|
||||
|
||||
**Debian Jessie**
|
||||
**Ubuntu 17.10**
|
||||
|
||||
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2
|
||||
sudo apt-get install build-essential qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin
|
||||
|
||||
---
|
||||
|
||||
**Debian Stretch and Jessie**
|
||||
|
||||
sudo apt install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2
|
||||
|
||||
---
|
||||
|
||||
**Debian Stretch**
|
||||
|
||||
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
|
||||
|
||||
---
|
||||
|
||||
@@ -102,6 +122,16 @@ Install dependencies:
|
||||
sudo zypper install libqt5-qtbase-devel libqt5-qtdeclarative-devel libqt5-qtquickcontrols libqt5-qtgraphicaleffects
|
||||
|
||||
---
|
||||
**Docker**
|
||||
Docker users running X-Server can run cool-retro-term in an isolated Docker container using the following command. Please note that hardware and x-server resources need to be mounted inside the container in order for the container to have access to hardware acceleration and X-server resources. Furthermore, preserving user profile settings within the cool-retro-term container requires a volume mount from your local home directory to the `user` home directory within the container:
|
||||
|
||||
```sh
|
||||
#Create the application settings directory:
|
||||
mkdir -p ~/.local/share/cool-retro-term
|
||||
|
||||
#Run cool-retro-term:
|
||||
docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri -v ~/.local/share/cool-retro-term:/home/user/.local/share/cool-retro-term quay.io/aric49/crt:latest
|
||||
```
|
||||
|
||||
**Anyone else**
|
||||
|
||||
@@ -127,7 +157,7 @@ qmake && make
|
||||
./cool-retro-term
|
||||
```
|
||||
|
||||
## Build instructions (OSX)
|
||||
## Build instructions (macOS)
|
||||
|
||||
1. Install [Xcode](https://developer.apple.com/xcode/) and agree to the licence agreement
|
||||
2. Enter the following commands into the terminal:
|
||||
@@ -159,7 +189,22 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
|
||||
open cool-retro-term.app
|
||||
```
|
||||
|
||||
## Build Instructions Docker
|
||||
Clone the primary repository with the `--recursive` flag, and perform a Docker build. Docker will automatically compile the code inside a Docker container. To run the docker container, you need to mount X-Server resources and your video card inside the Docker container so that Docker can initiate the GUI and successfully start cool-retro-term with hardware acceleration:
|
||||
|
||||
```sh
|
||||
#Git clone
|
||||
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
|
||||
|
||||
#Docker Build
|
||||
docker build -t cool-retro-term:1
|
||||
|
||||
#Run the built image.
|
||||
docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri -v ~/.local/share/cool-retro-term:/home/user/.local/share/cool-retro-term cool-retro-term:1
|
||||
|
||||
```
|
||||
|
||||
## Donations
|
||||
I made this project in my spare time because I love what I'm doing. If you are enjoying it and you want to buy me a beer click [here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=flscogna%40gmail%2ecom&lc=IT&item_name=Filippo%20Scognamiglio¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted) .
|
||||
I made this project in my spare time because I love what I'm doing. If you are enjoying it and you want to buy me a beer click [here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=flscogna%40gmail%2ecom&lc=IT&item_name=Filippo%20Scognamiglio¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted).
|
||||
|
||||
You can also add "bounties" on your favourite issues. More information on the [Bountysource](https://www.bountysource.com/teams/crt/issues) page.
|
||||
|
||||
@@ -36,6 +36,10 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
QApplication app(argc, argv);
|
||||
// set application attributes
|
||||
// Has no effects, see https://bugreports.qt.io/browse/QTBUG-51293
|
||||
// app.setAttribute(Qt::AA_MacDontSwapCtrlAndMeta, true);
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
FileIO fileIO;
|
||||
|
||||
@@ -54,6 +58,7 @@ int main(int argc, char *argv[])
|
||||
qDebug() << " --default-settings Run cool-retro-term with the default settings";
|
||||
qDebug() << " --workdir <dir> Change working directory to 'dir'";
|
||||
qDebug() << " -e <cmd> Command to execute. This option will catch all following arguments, so use it as the last option.";
|
||||
qDebug() << " -T <title> Set window title to 'title'.";
|
||||
qDebug() << " --fullscreen Run cool-retro-term in fullscreen.";
|
||||
qDebug() << " -p|--profile <prof> Run cool-retro-term with the given profile.";
|
||||
qDebug() << " -h|--help Print this help.";
|
||||
|
||||
@@ -41,6 +41,8 @@ QtObject{
|
||||
property bool fullscreen: false
|
||||
property bool showMenubar: true
|
||||
|
||||
property string wintitle: "cool-retro-term"
|
||||
|
||||
property real windowOpacity: 1.0
|
||||
property real ambientLight: 0.2
|
||||
property real contrast: 0.85
|
||||
@@ -439,6 +441,11 @@ QtObject{
|
||||
obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Knight TV"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.45,"brightness":0.5,"burnIn":0.3,"chromaColor":0,"contrast":0.85,"customCommand":"","flickering":0.1,"fontColor":"#0ccc68","fontName":"Knight_TV","fontWidth":1,"frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0.16,"jitter":0,"rasterization":0,"rbgShift":0,"saturationColor":0,"screenCurvature":0.07,"staticNoise":0,"useCustomCommand":false,"windowOpacity":1}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Transparent Green"
|
||||
obj_string: '{"ambientLight":0.2,"backgroundColor":"#000000","bloom":0.45,"brightness":0.5,"flickering":0.20,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"NO_FRAME","glowingLine":0.16,"horizontalSync":0.1,"jitter":0.20,"burnIn":0.25,"staticNoise":0.20,"rasterization":0,"screenCurvature":0.05,"windowOpacity":0.60,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
@@ -480,6 +487,10 @@ QtObject{
|
||||
showMenubar = false;
|
||||
}
|
||||
|
||||
if (args.indexOf("-T") !== -1) {
|
||||
wintitle = args[args.indexOf("-T") + 1]
|
||||
}
|
||||
|
||||
initializedSettings();
|
||||
}
|
||||
Component.onDestruction: {
|
||||
|
||||
@@ -204,5 +204,15 @@ QtObject{
|
||||
fontWidth: 1.0
|
||||
lowResolutionFont: false
|
||||
}
|
||||
ListElement{
|
||||
name: "Knight_TV"
|
||||
text: "Knight TV (1975)"
|
||||
source: "fonts/1975-knight-tv/KnightTVMedium.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 10
|
||||
fontWidth: 1.0
|
||||
baseScaling: 3.0
|
||||
lowResolutionFont: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
app/qml/fonts/1975-knight-tv/KnightTVMedium.ttf
Normal file
BIN
app/qml/fonts/1975-knight-tv/KnightTVMedium.ttf
Normal file
Binary file not shown.
@@ -62,8 +62,10 @@ ApplicationWindow{
|
||||
__contentItem.visible: mainMenu.visible
|
||||
}
|
||||
|
||||
property string wintitle: appSettings.wintitle
|
||||
|
||||
color: "#00000000"
|
||||
title: terminalContainer.title || qsTr("cool-retro-term")
|
||||
title: terminalContainer.title || qsTr(appSettings.wintitle)
|
||||
|
||||
Action {
|
||||
id: showMenubarAction
|
||||
@@ -101,12 +103,12 @@ ApplicationWindow{
|
||||
Action{
|
||||
id: copyAction
|
||||
text: qsTr("Copy")
|
||||
shortcut: Qt.platform.os === "osx" ? StandardKey.Copy : "Ctrl+Shift+C"
|
||||
shortcut: "Ctrl+Shift+C"
|
||||
}
|
||||
Action{
|
||||
id: pasteAction
|
||||
text: qsTr("Paste")
|
||||
shortcut: Qt.platform.os === "osx" ? StandardKey.Paste : "Ctrl+Shift+V"
|
||||
shortcut: "Ctrl+Shift+V"
|
||||
}
|
||||
Action{
|
||||
id: zoomIn
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<file>fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf</file>
|
||||
<file>fonts/1977-apple2/PrintChar21.ttf</file>
|
||||
<file>fonts/1971-ibm-3278/3270Medium.ttf</file>
|
||||
<file>fonts/1975-knight-tv/KnightTVMedium.ttf</file>
|
||||
<file>fonts/1985-atari-st/AtariST8x16SystemFont.ttf</file>
|
||||
<file>fonts/modern-terminus/TerminusTTF-4.38.2.ttf</file>
|
||||
<file>fonts/1977-commodore-pet/COMMODORE_PET.ttf</file>
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Default amber look</caption>
|
||||
<image width="768" height="595">https://camo.githubusercontent.com/2443e662e95733ba6ae331f391f6ec036d1ee7fd/687474703a2f2f692e696d6775722e636f6d2f4e5566766e6c752e706e67</image>
|
||||
<image width="1022" height="791">https://camo.githubusercontent.com/2443e662e95733ba6ae331f391f6ec036d1ee7fd/687474703a2f2f692e696d6775722e636f6d2f4e5566766e6c752e706e67</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Apple II look</caption>
|
||||
<image width="768" height="595">https://camo.githubusercontent.com/44a19842d532555c7b02bf6b4b4684add9edf18c/687474703a2f2f692e696d6775722e636f6d2f4d4d6d4d3648742e706e67</image>
|
||||
<image width="1024" height="796">https://camo.githubusercontent.com/44a19842d532555c7b02bf6b4b4684add9edf18c/687474703a2f2f692e696d6775722e636f6d2f4d4d6d4d3648742e706e67</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
|
||||
@@ -1,31 +1,43 @@
|
||||
.TH cool-retro-term 1 "August 22 2016"
|
||||
.TH "COOL-RETRO-TERM" 1 "2017-11-06"
|
||||
.SH NAME
|
||||
cool-retro-term \- terminal emulator mimicking the old cathode display
|
||||
cool\-retro\-term \- terminal emulator mimicking an old cathode display
|
||||
.SH SYNOPSIS
|
||||
"Usage: ./cool\-retro\-term [\-\-default\-settings] [\-\-workdir <dir>] [\-\-program <prog>] [\-p|\-\-profile <prof>] [\-\-fullscreen] [\-h|\-\-help]"
|
||||
\fBcool\-retro\-term\fR [\fIOPTIONS\fR]
|
||||
.br
|
||||
\fBcool\-retro\-term\fR [\fIOPTIONS\fR] -e \fICOMMAND\fR [\fIARGUMENT\fR...]
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B cool-retro-term
|
||||
command.
|
||||
This manual page documents briefly the \fBcool\-retro\-term\fR command.
|
||||
.PP
|
||||
\fBcool\-retro\-term\fR is a terminal emulator which mimics the
|
||||
look and feel of the old cathode tube screens.
|
||||
It has been designed to be eye-candy,
|
||||
customizable, and reasonably lightweight.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-default\-settings\fR
|
||||
Run cool\-retro\-term with the default settings
|
||||
Run with the default settings.
|
||||
.TP
|
||||
\fB\-\-workdir\fR <dir>
|
||||
Change working directory to 'dir'
|
||||
.TP
|
||||
\fB\-e\fR <cmd>
|
||||
Command to execute. This option will catch all following arguments, so use it as the last option.
|
||||
\fB\-e\fR \fICOMMAND\fR
|
||||
Command to execute. This should be used as the last option.
|
||||
All the arguments following \fICOMMAND\fR will be passed to said command.
|
||||
.TP
|
||||
\fB\-\-fullscreen\fR
|
||||
Run cool\-retro\-term in fullscreen.
|
||||
.HP
|
||||
\fB\-p\fR|\-\-profile <prof> Run cool\-retro\-term with the given profile.
|
||||
Run in fullscreen mode.
|
||||
.TP
|
||||
\fB\-h\fR|\-\-help
|
||||
Print this help.
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Print a help screen and exit.
|
||||
.TP
|
||||
\fB\-p\fR \fIPROFILE\fR, \fB\-\-profile\fR \fIPROFILE\fR
|
||||
Run with the given profile.
|
||||
.TP
|
||||
\fB\-\-workdir\fR \fIDIR\fR
|
||||
Start with \fIDIR\fR as the working directory.
|
||||
.TP
|
||||
\fB\-\-verbose\fR
|
||||
Print additional information such as profiles and settings.
|
||||
.PP
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-version\fR
|
||||
Print the version number and exit.
|
||||
.SH LICENCE
|
||||
This program is available under the terms of the GNU General Public License,
|
||||
version 3 or any later version, as published by the Free Software Foundation.
|
||||
|
||||
Submodule qmltermwidget updated: 08958f7c83...5da50472e3
Reference in New Issue
Block a user