Compare commits
83 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9d027291e | ||
|
|
eb00915c39 | ||
|
|
828a22a939 | ||
|
|
875d02458e | ||
|
|
a6d6ced1ad | ||
|
|
7e9855881b | ||
|
|
cf4e7ca279 | ||
|
|
0a9b2b0bac | ||
|
|
f6b0a63410 | ||
|
|
7563cd4a08 | ||
|
|
851f6d6624 | ||
|
|
cd97acfcc1 | ||
|
|
613a2c5583 | ||
|
|
32e95185ad | ||
|
|
e48719fa44 | ||
|
|
348e5a4e19 | ||
|
|
8d28972323 | ||
|
|
d74bd0a39b | ||
|
|
07307a6d8f | ||
|
|
151fb6e58d | ||
|
|
888ab49e44 | ||
|
|
24dad37da7 | ||
|
|
eb6a41556d | ||
|
|
5534cc4457 | ||
|
|
dde90fb5b7 | ||
|
|
efb2f749aa | ||
|
|
fbee977166 | ||
|
|
9f012b8ac8 | ||
|
|
9c3a157a84 | ||
|
|
b7f632077c | ||
|
|
bfab242344 | ||
|
|
6e54a96730 | ||
|
|
69d35a749f | ||
|
|
4745702909 | ||
|
|
e94801ee02 | ||
|
|
cc57fbdcd5 | ||
|
|
674097f672 | ||
|
|
472561c1b8 | ||
|
|
d345be2114 | ||
|
|
c505dfaa11 | ||
|
|
1574d5ab4c | ||
|
|
0a24f497cc | ||
|
|
9e629780ad | ||
|
|
98a842655a | ||
|
|
53943878c1 | ||
|
|
34360c1603 | ||
|
|
356448bb70 | ||
|
|
103cd641a7 | ||
|
|
d7fb0b3021 | ||
|
|
7bf79ec645 | ||
|
|
dd0e904432 | ||
|
|
561739ba8b | ||
|
|
b2596c0580 | ||
|
|
b1456b4fda | ||
|
|
923cf9b2bb | ||
|
|
273917060b | ||
|
|
7ba2046d14 | ||
|
|
be145c12a3 | ||
|
|
759e796fdd | ||
|
|
9121beaf8d | ||
|
|
89472dfc54 | ||
|
|
eb739195ea | ||
|
|
2da0bc9535 | ||
|
|
7255a162e9 | ||
|
|
a479506dcf | ||
|
|
cf62e85172 | ||
|
|
c0ea7acd28 | ||
|
|
7923db38c8 | ||
|
|
bf9937619e | ||
|
|
e5fe99eda9 | ||
|
|
eded375cf6 | ||
|
|
1b619a7a36 | ||
|
|
5d79e475d1 | ||
|
|
cb2b9dd3a2 | ||
|
|
04f819b331 | ||
|
|
5807ea001a | ||
|
|
28d92dc68b | ||
|
|
91a221529f | ||
|
|
844af0d93f | ||
|
|
6912d74d71 | ||
|
|
f1a6c0fcee | ||
|
|
edad3ab28c | ||
|
|
fb7e086770 |
70
README.md
70
README.md
@@ -1,6 +1,6 @@
|
||||
#cool-retro-term
|
||||
# cool-retro-term
|
||||
|
||||
##Description
|
||||
## 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.
|
||||
|
||||
@@ -8,12 +8,12 @@ It uses the QML port of qtermwidget (Konsole) developed by me: https://github.co
|
||||
|
||||
This terminal emulator works under Linux and OSX and requires Qt 5.2 or higher.
|
||||
|
||||
##Screenshots
|
||||
## Screenshots
|
||||

|
||||

|
||||

|
||||
|
||||
##Get cool-retro-term
|
||||
## 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).
|
||||
@@ -22,22 +22,30 @@ Arch users can install this [package](https://aur.archlinux.org/packages/cool-re
|
||||
|
||||
yaourt -S aur/cool-retro-term-git
|
||||
|
||||
Gentoo users can install from a 3rd-party repository preferably via layman:
|
||||
or use:
|
||||
|
||||
# USE="subversion git" emerge app-portage/layman
|
||||
# wget --no-check-certificate https://www.gerczei.eu/files/gerczei.xml -O /etc/layman/overlays/gerczei.xml
|
||||
# layman -f -a qt -a gerczei
|
||||
# ACCEPT_KEYWORDS="~*" emerge x11-terms/cool-retro-term::gerczei
|
||||
pacman -S cool-retro-term
|
||||
|
||||
to install precompiled from community repository.
|
||||
|
||||
Gentoo users can now install the first release "1.0" 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
|
||||
|
||||
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) 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
|
||||
|
||||
##Build instructions (Linux)
|
||||
## Build instructions (Linux)
|
||||
|
||||
##Dependencies
|
||||
## Dependencies
|
||||
Make sure to install these first.
|
||||
|
||||
---
|
||||
@@ -48,6 +56,18 @@ Make sure to install these first.
|
||||
|
||||
---
|
||||
|
||||
**Ubuntu 16.10**
|
||||
|
||||
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qtdeclarative5-qtquick2-plugin libqt5qml-graphicaleffects qml-module-qtquick-dialogs qtdeclarative5-localstorage-plugin qtdeclarative5-window-plugin
|
||||
|
||||
---
|
||||
|
||||
**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
|
||||
|
||||
---
|
||||
|
||||
**Debian Jessie**
|
||||
|
||||
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
|
||||
@@ -57,11 +77,11 @@ Make sure to install these first.
|
||||
**Fedora**
|
||||
This command should install the known fedora dependencies:
|
||||
|
||||
sudo yum -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols
|
||||
sudo yum -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols redhat-rpm-config
|
||||
|
||||
or:
|
||||
|
||||
sudo dnf -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols
|
||||
sudo dnf -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols redhat-rpm-config
|
||||
|
||||
---
|
||||
|
||||
@@ -90,7 +110,7 @@ Install Qt directly from here http://qt-project.org/downloads . Once done export
|
||||
export PATH=/opt/Qt5.3.1/5.3/gcc_64/bin/:$PATH
|
||||
---
|
||||
|
||||
###Compile
|
||||
### Compile
|
||||
Once you installed all dependencies (Qt is installed and in your path) you need to compile and run the application:
|
||||
|
||||
```bash
|
||||
@@ -107,11 +127,13 @@ qmake && make
|
||||
./cool-retro-term
|
||||
```
|
||||
|
||||
##Build instructions (OSX)
|
||||
## Build instructions (OSX)
|
||||
|
||||
1. Install [Xcode](https://developer.apple.com/xcode/) and agree to the licence agreement
|
||||
2. Enter the following commands into the terminal:
|
||||
|
||||
**Brew**
|
||||
|
||||
```sh
|
||||
brew install qt5
|
||||
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
|
||||
@@ -125,5 +147,19 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
|
||||
open cool-retro-term.app
|
||||
```
|
||||
|
||||
##Donations
|
||||
**MacPorts**
|
||||
|
||||
```sh
|
||||
sudo port install qt5
|
||||
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
|
||||
cd cool-retro-term
|
||||
/opt/local/libexec/qt5/bin/qmake && make
|
||||
mkdir cool-retro-term.app/Contents/PlugIns
|
||||
cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
|
||||
open cool-retro-term.app
|
||||
```
|
||||
|
||||
## 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) .
|
||||
|
||||
You can also add "bounties" on your favourite issues. More information on the [Bountysource](https://www.bountysource.com/teams/crt/issues) page.
|
||||
|
||||
16
app/main.cpp
16
app/main.cpp
@@ -48,6 +48,8 @@ int main(int argc, char *argv[])
|
||||
// Manage command line arguments from the cpp side
|
||||
QStringList args = app.arguments();
|
||||
if (args.contains("-h") || args.contains("--help")) {
|
||||
// BUG: This usage help text goes to stderr, should go to stdout.
|
||||
// BUG: First line of output is surrounded by double quotes.
|
||||
qDebug() << "Usage: " + args.at(0) + " [--default-settings] [--workdir <dir>] [--program <prog>] [-p|--profile <prof>] [--fullscreen] [-h|--help]";
|
||||
qDebug() << " --default-settings Run cool-retro-term with the default settings";
|
||||
qDebug() << " --workdir <dir> Change working directory to 'dir'";
|
||||
@@ -55,10 +57,15 @@ int main(int argc, char *argv[])
|
||||
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.";
|
||||
qDebug() << " --verbose Print additional informations such as profiles and settings.";
|
||||
qDebug() << " --verbose Print additional information such as profiles and settings.";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (args.contains("-v") || args.contains("--version")) {
|
||||
qDebug() << "cool-retro-term 1.0.1";
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Manage default command
|
||||
QStringList cmdList;
|
||||
if (args.contains("-e")) {
|
||||
@@ -81,7 +88,12 @@ int main(int argc, char *argv[])
|
||||
importPathList.prepend(QCoreApplication::applicationDirPath() + "/../../../qmltermwidget");
|
||||
engine.setImportPathList(importPathList);
|
||||
|
||||
engine.load(QUrl("qrc:/main.qml"));
|
||||
engine.load(QUrl(QStringLiteral ("qrc:/main.qml")));
|
||||
|
||||
if (engine.rootObjects().isEmpty()) {
|
||||
qDebug() << "Cannot load QML interface";
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// Quit the application when the engine closes.
|
||||
QObject::connect((QObject*) &engine, SIGNAL(quit()), (QObject*) &app, SLOT(quit()));
|
||||
|
||||
@@ -24,7 +24,7 @@ import QtQuick.Controls 1.0
|
||||
import "utils.js" as Utils
|
||||
|
||||
QtObject{
|
||||
property string version: "1.0.0"
|
||||
property string version: "1.0.1"
|
||||
|
||||
// STATIC CONSTANTS ////////////////////////////////////////////////////////
|
||||
|
||||
@@ -33,6 +33,11 @@ QtObject{
|
||||
|
||||
// GENERAL SETTINGS ///////////////////////////////////////////////////////
|
||||
|
||||
property int x: 100
|
||||
property int y: 100
|
||||
property int width: 1024
|
||||
property int height: 768
|
||||
|
||||
property bool fullscreen: false
|
||||
property bool showMenubar: true
|
||||
|
||||
@@ -51,6 +56,9 @@ QtObject{
|
||||
|
||||
// PROFILE SETTINGS ///////////////////////////////////////////////////////
|
||||
|
||||
property bool useCustomCommand: false
|
||||
property string customCommand: ""
|
||||
|
||||
property string _backgroundColor: "#000000"
|
||||
property string _fontColor: "#ff8100"
|
||||
property string saturatedColor: Utils.mix(Utils.strToColor("#FFFFFF"), Utils.strToColor(_fontColor), saturationColor * 0.5)
|
||||
@@ -94,6 +102,8 @@ QtObject{
|
||||
|
||||
signal terminalFontChanged(string fontSource, int pixelSize, int lineSpacing, real screenScaling, real fontWidth)
|
||||
|
||||
signal initializedSettings()
|
||||
|
||||
property Loader fontManager: Loader{
|
||||
states: [
|
||||
State { when: rasterization == no_rasterization
|
||||
@@ -206,6 +216,10 @@ QtObject{
|
||||
function composeSettingsString(){
|
||||
var settings = {
|
||||
fps: fps,
|
||||
x: x,
|
||||
y: y,
|
||||
width: width,
|
||||
height: height,
|
||||
windowScaling: windowScaling,
|
||||
showTerminalSize: showTerminalSize,
|
||||
fontScaling: fontScaling,
|
||||
@@ -240,7 +254,9 @@ QtObject{
|
||||
ambientLight: ambientLight,
|
||||
windowOpacity: windowOpacity,
|
||||
fontName: fontNames[rasterization],
|
||||
fontWidth: fontWidth
|
||||
fontWidth: fontWidth,
|
||||
useCustomCommand: useCustomCommand,
|
||||
customCommand: customCommand
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
@@ -284,6 +300,11 @@ QtObject{
|
||||
fps = settings.fps !== undefined ? settings.fps: fps
|
||||
windowScaling = settings.windowScaling !== undefined ? settings.windowScaling : windowScaling
|
||||
|
||||
x = settings.x !== undefined ? settings.x : x
|
||||
y = settings.y !== undefined ? settings.y : y
|
||||
width = settings.width !== undefined ? settings.width : width
|
||||
height = settings.height !== undefined ? settings.height : height
|
||||
|
||||
fontNames = settings.fontNames !== undefined ? settings.fontNames : fontNames
|
||||
fontScaling = settings.fontScaling !== undefined ? settings.fontScaling : fontScaling
|
||||
|
||||
@@ -328,6 +349,9 @@ QtObject{
|
||||
fontNames[rasterization] = settings.fontName !== undefined ? settings.fontName : fontNames[rasterization];
|
||||
fontWidth = settings.fontWidth !== undefined ? settings.fontWidth : fontWidth;
|
||||
|
||||
useCustomCommand = settings.useCustomCommand !== undefined ? settings.useCustomCommand : useCustomCommand
|
||||
customCommand = settings.customCommand !== undefined ? settings.customCommand : customCommand
|
||||
|
||||
handleFontChanged();
|
||||
}
|
||||
|
||||
@@ -377,47 +401,47 @@ QtObject{
|
||||
property ListModel profilesList: ListModel{
|
||||
ListElement{
|
||||
text: "Default Amber"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.65,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#ff8100","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.4,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.65,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#ff8100","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.4,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Default Green"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Default Scanlines"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Default Pixelated"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#ffffff","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.2,"horizontalSync":0.2,"jitter":0,"burnIn":0.45,"staticNoise":0.19,"rasterization":2,"screenCurvature":0.05,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#ffffff","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.2,"horizontalSync":0.2,"jitter":0,"burnIn":0.45,"staticNoise":0.19,"rasterization":2,"screenCurvature":0.05,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Apple ]["
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.5,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"APPLE_II","fontColor":"#2fff91","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.22,"horizontalSync":0.16,"jitter":0.1,"burnIn":0.65,"staticNoise":0.08,"rasterization":1,"screenCurvature":0.18,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.5,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"APPLE_II","fontColor":"#2fff91","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.22,"horizontalSync":0.16,"jitter":0.1,"burnIn":0.65,"staticNoise":0.08,"rasterization":1,"screenCurvature":0.18,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "Vintage"
|
||||
obj_string: '{"ambientLight":0.5,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.9,"contrast":0.80,"fontName":"COMMODORE_PET","fontColor":"#00ff3e","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.3,"horizontalSync":0.42,"jitter":0.4,"burnIn":0.75,"staticNoise":0.2,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.5,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.9,"contrast":0.80,"fontName":"COMMODORE_PET","fontColor":"#00ff3e","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.3,"horizontalSync":0.42,"jitter":0.4,"burnIn":0.75,"staticNoise":0.2,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "IBM Dos"
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0}'
|
||||
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
|
||||
builtin: true
|
||||
}
|
||||
ListElement{
|
||||
text: "IBM 3278"
|
||||
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}'
|
||||
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: "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}'
|
||||
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":""}'
|
||||
builtin: true
|
||||
}
|
||||
}
|
||||
@@ -455,6 +479,8 @@ QtObject{
|
||||
fullscreen = true;
|
||||
showMenubar = false;
|
||||
}
|
||||
|
||||
initializedSettings();
|
||||
}
|
||||
Component.onDestruction: {
|
||||
storeSettings();
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.0
|
||||
|
||||
// This component is simply a label with a predifined size.
|
||||
// This component is simply a label with a predefined size.
|
||||
// Used to improve alignment.
|
||||
|
||||
Item {
|
||||
|
||||
@@ -177,15 +177,6 @@ QtObject{
|
||||
fontWidth: 1.0
|
||||
lowResolutionFont: false
|
||||
}
|
||||
ListElement{
|
||||
name: "ENVY_CODE_R"
|
||||
text: "HD: Envy Code R (Modern)"
|
||||
source: "fonts/modern-envy-code-r/Envy Code R.ttf"
|
||||
lineSpacing: 0.1
|
||||
pixelSize: 30
|
||||
fontWidth: 1.0
|
||||
lowResolutionFont: false
|
||||
}
|
||||
ListElement{
|
||||
name: "MONACO"
|
||||
text: "HD: Monaco (Modern)"
|
||||
|
||||
@@ -129,13 +129,17 @@ Item{
|
||||
|
||||
kterminal.lineSpacing = lineSpacing;
|
||||
}
|
||||
Component.onCompleted: {
|
||||
appSettings.terminalFontChanged.connect(handleFontChange);
|
||||
function startSession() {
|
||||
appSettings.initializedSettings.disconnect(startSession);
|
||||
|
||||
// Retrieve the variable set in main.cpp if arguments are passed.
|
||||
if (defaultCmd) {
|
||||
ksession.setShellProgram(defaultCmd);
|
||||
ksession.setArgs(defaultCmdArgs);
|
||||
} else if (appSettings.useCustomCommand) {
|
||||
var args = Utils.tokenizeCommandLine(appSettings.customCommand);
|
||||
ksession.setShellProgram(args[0]);
|
||||
ksession.setArgs(args.slice(1));
|
||||
} else if (!defaultCmd && Qt.platform.os === "osx") {
|
||||
// OSX Requires the following default parameters for auto login.
|
||||
ksession.setArgs(["-i", "-l"]);
|
||||
@@ -147,6 +151,10 @@ Item{
|
||||
ksession.startShellProgram();
|
||||
forceActiveFocus();
|
||||
}
|
||||
Component.onCompleted: {
|
||||
appSettings.terminalFontChanged.connect(handleFontChange);
|
||||
appSettings.initializedSettings.connect(startSession);
|
||||
}
|
||||
}
|
||||
Component {
|
||||
id: linuxContextMenu
|
||||
@@ -312,6 +320,10 @@ Item{
|
||||
blending: false
|
||||
|
||||
fragmentShader:
|
||||
"#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif\n" +
|
||||
|
||||
"uniform lowp float qt_Opacity;" +
|
||||
"uniform lowp sampler2D txt_source;" +
|
||||
|
||||
|
||||
@@ -159,6 +159,40 @@ Tab{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GroupBox{
|
||||
anchors {left: parent.left; right: parent.right}
|
||||
title: qsTr("Command")
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
CheckBox{
|
||||
id: useCustomCommand
|
||||
text: qsTr("Use custom command instead of shell at startup")
|
||||
checked: appSettings.useCustomCommand
|
||||
onCheckedChanged: appSettings.useCustomCommand = checked
|
||||
}
|
||||
// Workaround for QTBUG-31627 for pre 5.3.0
|
||||
Binding{
|
||||
target: useCustomCommand
|
||||
property: "checked"
|
||||
value: appSettings.useCustomCommand
|
||||
}
|
||||
TextField{
|
||||
id: customCommand
|
||||
anchors {left: parent.left; right: parent.right}
|
||||
text: appSettings.customCommand
|
||||
enabled: useCustomCommand.checked
|
||||
onEditingFinished: appSettings.customCommand = text
|
||||
|
||||
// Save text even if user forgets to press enter or unfocus
|
||||
function saveSetting() {
|
||||
appSettings.customCommand = text;
|
||||
}
|
||||
Component.onCompleted: settings_window.closing.connect(saveSetting)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// DIALOGS ////////////////////////////////////////////////////////////////
|
||||
InsertNameDialog{
|
||||
id: insertname
|
||||
|
||||
@@ -151,6 +151,10 @@ ShaderEffect {
|
||||
}"
|
||||
|
||||
fragmentShader: "
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform highp float qt_Opacity;
|
||||
uniform highp float time;
|
||||
|
||||
Binary file not shown.
@@ -1,13 +1,49 @@
|
||||
Copyright (c) 2011-2012, Ricardo Banffy.
|
||||
Copyright (c) 2011-2017, Ricardo Banffy.
|
||||
Copyright (c) 1993-2011, Paul Mattes.
|
||||
Copyright (c) 2004-2005, Don Russell.
|
||||
Copyright (c) 2004, Dick Altenbern.
|
||||
Copyright (c) 1990, Jeff Sparkes.
|
||||
Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
Neither the names of Ricardo Banffy, Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Ricardo Banffy, Paul Mattes, Don Russell,
|
||||
Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL RICARDO BANFFY, PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
|
||||
SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The Debian Logo glyph is based on the Debian Open Use Logo and is
|
||||
Copyright (c) 1999 Software in the Public Interest, Inc., and it is
|
||||
incorporated here under the terms of the Creative Commons
|
||||
Attribution-ShareAlike 3.0 Unported License. The logo is released
|
||||
under the terms of the GNU Lesser General Public License, version 3 or
|
||||
any later version, or, at your option, of the Creative Commons
|
||||
Attribution-ShareAlike 3.0 Unported License.
|
||||
|
||||
Ubuntu, the Ubuntu logo and the Circle of Friends symbol are
|
||||
registered trademarks of Canonical Ltd.
|
||||
|
||||
The Fontforge SFD font description file is optionally licensed under
|
||||
the SIL Open Font License v1.1 with no Reserved Font Name. This
|
||||
license is available with a FAQ at http://scripts.sil.org/OFL.
|
||||
|
||||
@@ -1,73 +1,101 @@
|
||||
3270font: A font for the nostalgic
|
||||
==================================
|
||||
https://github.com/rbanffy/3270font
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
A little bit of history
|
||||
-----------------------
|
||||
|
||||
This font is derived from the x3270 font, which, in turn, was translated
|
||||
from the one in Georgia Tech's 3270tool, which was itself hand-copied
|
||||
from a 3270 terminal. I built it because I felt terminals deserve to be
|
||||
pretty. The .sfd font file contains a x3270 bitmap font that was used
|
||||
for guidance.
|
||||
This font is derived from the x3270 font, which, in turn, was
|
||||
translated from the one in Georgia Tech's 3270tool, which was itself
|
||||
hand-copied from a 3270 series terminal. I built it because I felt
|
||||
terminals deserve to be pretty. The .sfd font file contains a x3270
|
||||
bitmap font that was used for guidance.
|
||||
|
||||
![Using with the Cathode terminal program]
|
||||
(https://raw.github.com/wiki/rbanffy/3270font/cathode.png)
|
||||

|
||||
|
||||
Getting it
|
||||
----------
|
||||
|
||||
If you are running Debian or Ubuntu and you don't want to mess with
|
||||
building your font files, you can simply `apt-get install fonts-3270`
|
||||
(It's available from the Debian
|
||||
(https://packages.debian.org/sid/fonts/fonts-3270) and Ubuntu
|
||||
(http://packages.ubuntu.com/zesty/fonts-3270) package repos at
|
||||
https://packages.debian.org/sid/fonts/fonts-3270 and
|
||||
http://packages.ubuntu.com/xenial/fonts/fonts-3270, although the
|
||||
packaged version may not be the latest version, but it's good enough for
|
||||
most purposes. For those who don't have the luxury of a proper
|
||||
system-managed package, Adobe Type 1, TTF, OTF and WOFF versions are
|
||||
available for download on
|
||||
http://s3.amazonaws.com/3270font/3270_fonts_d250fd9.zip (although this
|
||||
URL may not always reflect the latest version).
|
||||
|
||||

|
||||
|
||||
The format
|
||||
----------
|
||||
|
||||
This font was built with FontForge. You'll need it if you want to
|
||||
generate fonts for your platform. On most civilized operating systems,
|
||||
you can simply `apt-get install fontforge`, `yum install fontforge` or
|
||||
even `port install fontforge`. On others, you may need to grab your copy
|
||||
from http://fontforge.org/. I encourage you to drop by and read the
|
||||
tutorials.
|
||||
The "source" file is edited using FontForge. You'll need it if you want
|
||||
to generate fonts for your platform. On most civilized operating
|
||||
systems, you can simply `apt-get install fontforge`, `yum install
|
||||
fontforge` or even `port install fontforge`. On others, you may need to
|
||||
grab your copy from http://fontforge.org/. I encourage you to drop by
|
||||
and read the tutorials.
|
||||
|
||||
![Powerline-shell compatible!]
|
||||
(https://raw.github.com/wiki/rbanffy/3270font/powerline.png)
|
||||

|
||||
|
||||
Adobe Type 1, TTF, OTF and WOFF versions are available for download on
|
||||
http://s3.amazonaws.com/rbanffy/3270_fonts.zip for those who would just
|
||||
like to use them.
|
||||

|
||||
|
||||
![Using it on OSX]
|
||||
(https://raw.github.com/wiki/rbanffy/3270font/osx_terminal.png)
|
||||
If you are running Windows, you'll probably need something like
|
||||
Cygwin, but, in the end, the font works correctly (with some very
|
||||
minor hinting issues).
|
||||
|
||||
Generating derived files
|
||||
------------------------
|
||||

|
||||
|
||||
Generating usable font files
|
||||
----------------------------
|
||||
|
||||
The easiest way to generate the font files your computer can use is to
|
||||
run `make all` (if you are running Ubuntu or Debian, `make install` will
|
||||
install them too). Using `make help` will offer a handy list of options.
|
||||
|
||||
The script `generate_derived.pe` calls FontForge and generates
|
||||
PostScript, OTF, TTF and WOFF versions of the base font, as well as a
|
||||
slightly more condensed .sfd file with the base font narrowed to 488
|
||||
units, with no glyph rescaling and its corresponding PostScript, TTF,
|
||||
OTF and WOFF versions.
|
||||
PostScript, OTF, TTF and WOFF versions of the base font, as well as a
|
||||
slightly more condensed .sfd file with the base font narrowed to 488
|
||||
units, with no glyph rescaling (or cropping - we need to fix that) and
|
||||
its corresponding PostScript, TTF, OTF and WOFF versions.
|
||||
|
||||

|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
I don't think GitHub's pull-request mechanism is FontForge-friendly. If
|
||||
you want to contribute (there are a lot of missing glyphs, such as the
|
||||
APL set and most non-latin alphabets which most likely were never built
|
||||
into 3270 terminals), get in touch and we will figure out how to do it
|
||||
right.
|
||||
|
||||
Preserving history
|
||||
------------------
|
||||
|
||||
I regard the history of electronic computing a very important part of
|
||||
our civilization's history. Consider donating to entities that help
|
||||
preserve it, such as the Computer History Museum
|
||||
(http://www.computerhistory.org/), the IT History Society
|
||||
(http://ithistory.org/) and many others around the world. If you have a
|
||||
historically significant piece of technology in your closet or garage,
|
||||
consider contacting a local technology or industrial-design-oriented
|
||||
museum for advice.
|
||||
I fear GitHub's pull-request mechanism may not be very
|
||||
FontForge-friendly. If you want to contribute (there are a lot of
|
||||
missing glyphs, such as the APL set and most non-latin alphabets which
|
||||
most likely were never built into 3270 terminals), the best workflow
|
||||
would be to make add the encoding slots (if needed), add/make the
|
||||
changes, reencode it in "Unicode, Full", compact it and validate
|
||||
it. Check if the `git diff` command gives out something sensible (does
|
||||
not change things you didn't intend to) and make a pull request. If, in
|
||||
doubt, get in touch and we will figure out how to do it right.
|
||||
|
||||
Known problems
|
||||
--------------
|
||||
|
||||
I have received errors when installing the OTF, TTF, and PFM fonts on
|
||||
Windows 7 and 8 (didn't try others).
|
||||
Not all symbols in the 3270 charset have Unicode counterparts. When
|
||||
possible, they are duplicated in the Unicode space. The 3270-only
|
||||
symbols are at the end of the font, along with some glyphs useful for
|
||||
building others.
|
||||
|
||||
Please refer to http://x3270.bgp.nu/Charset.html for a complete map.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,16 +0,0 @@
|
||||
Envy Code R (coding font) preview #7.2
|
||||
======================================
|
||||
Envy Code R is a fully-scalable monospaced font designed for programming and command prompts.
|
||||
|
||||
There are three variants including in the archive - Regular, Bold and Italic. A large number of additional symbols outside the ASCII range and provided which covers most of the Windows/ISO 1252 codepage, MacOS Roman and a number of other Central European pages.
|
||||
|
||||
This archive also contains a folder named 'Visual Studio Italics-as-bold' which contains the Regular and Italic fonts again with an alternate name of 'Envy Code R VS' and with the Italic variant set to identify itself as bold. This allows you to utilise italics within Visual Studio's syntax highlighter by choosing bold everywhere you want italics - great for comments or strings!
|
||||
|
||||
If you wish to use Envy Code R as a font for your Windows Command Prompt run the included .reg registry file and reboot, then choose Properties from the Command Prompt to set it.
|
||||
|
||||
Please send feedback to damien@envytech.co.uk and be sure to visit http://damieng.com/fonts/envy-code-r for updates and more information.
|
||||
|
||||
[)amien
|
||||
Damien Guard, May 2008.
|
||||
|
||||
Copyright <20> 2006-2008 Envy Technologies Ltd. Free to use but redistribution prohibited.
|
||||
@@ -120,6 +120,10 @@ Item{
|
||||
blending: true
|
||||
|
||||
fragmentShader: "
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform highp sampler2D normals;
|
||||
uniform highp sampler2D source;
|
||||
uniform lowp float screenCurvature;
|
||||
@@ -181,6 +185,10 @@ Item{
|
||||
blending: true
|
||||
|
||||
fragmentShader: "
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform sampler2D lightMask;
|
||||
uniform sampler2D reflectionSource;
|
||||
uniform lowp float diffuseComponent;
|
||||
|
||||
@@ -28,10 +28,29 @@ ApplicationWindow{
|
||||
|
||||
width: 1024
|
||||
height: 768
|
||||
|
||||
// Save window properties automatically
|
||||
onXChanged: appSettings.x = x
|
||||
onYChanged: appSettings.y = y
|
||||
onWidthChanged: appSettings.width = width
|
||||
onHeightChanged: appSettings.height = height
|
||||
|
||||
// Load saved window geometry and show the window
|
||||
Component.onCompleted: {
|
||||
appSettings.handleFontChanged();
|
||||
|
||||
x = appSettings.x
|
||||
y = appSettings.y
|
||||
width = appSettings.width
|
||||
height = appSettings.height
|
||||
|
||||
visible = true
|
||||
}
|
||||
|
||||
minimumWidth: 320
|
||||
minimumHeight: 240
|
||||
|
||||
visible: true
|
||||
visible: false
|
||||
|
||||
property bool fullscreen: appSettings.fullscreen
|
||||
onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed)
|
||||
@@ -140,7 +159,6 @@ ApplicationWindow{
|
||||
terminalSize: terminalContainer.terminalSize
|
||||
}
|
||||
}
|
||||
Component.onCompleted: appSettings.handleFontChanged();
|
||||
onClosing: {
|
||||
// OSX Since we are currently supporting only one window
|
||||
// quit the application when it is closed.
|
||||
|
||||
@@ -47,7 +47,6 @@
|
||||
<file>fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf</file>
|
||||
<file>fonts/modern-monaco/monaco.ttf</file>
|
||||
<file>fonts/modern-hermit/Hermit-medium.otf</file>
|
||||
<file>fonts/modern-envy-code-r/Envy Code R.ttf</file>
|
||||
<file>fonts/modern-inconsolata/Inconsolata.otf</file>
|
||||
<file>SettingsScreenTab.qml</file>
|
||||
<file>fonts/modern-fixedsys-excelsior/FSEX301-L2.ttf</file>
|
||||
|
||||
@@ -21,3 +21,74 @@ function strToColor(s){
|
||||
var b = parseInt(s.substring(5,7), 16) / 256;
|
||||
return Qt.rgba(r, g, b, 1.0);
|
||||
}
|
||||
|
||||
/* Tokenizes a command into program and arguments, taking into account quoted
|
||||
* strings and backslashes.
|
||||
* Based on GLib's tokenizer, used by Gnome Terminal
|
||||
*/
|
||||
function tokenizeCommandLine(s){
|
||||
var args = [];
|
||||
var currentToken = "";
|
||||
var quoteChar = "";
|
||||
var escaped = false;
|
||||
var nextToken = function() {
|
||||
args.push(currentToken);
|
||||
currentToken = "";
|
||||
}
|
||||
var appendToCurrentToken = function(c) {
|
||||
currentToken += c;
|
||||
}
|
||||
|
||||
for (var i = 0; i < s.length; i++) {
|
||||
|
||||
// char followed by backslash, append literally
|
||||
if (escaped) {
|
||||
escaped = false;
|
||||
appendToCurrentToken(s[i]);
|
||||
|
||||
// char inside quotes, either close or append
|
||||
} else if (quoteChar) {
|
||||
escaped = s[i] === '\\';
|
||||
if (quoteChar === s[i]) {
|
||||
quoteChar = "";
|
||||
nextToken();
|
||||
} else if (!escaped) {
|
||||
appendToCurrentToken(s[i]);
|
||||
}
|
||||
|
||||
// regular char
|
||||
} else {
|
||||
escaped = s[i] === '\\';
|
||||
switch (s[i]) {
|
||||
case '\\':
|
||||
// begin escape
|
||||
break;
|
||||
case '\n':
|
||||
// newlines always delimits
|
||||
nextToken();
|
||||
break;
|
||||
case ' ':
|
||||
case '\t':
|
||||
// delimit on new whitespace
|
||||
if (currentToken) {
|
||||
nextToken();
|
||||
}
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
// begin quoted section
|
||||
quoteChar = s[i];
|
||||
break;
|
||||
default:
|
||||
appendToCurrentToken(s[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore last token if broken quotes/backslash
|
||||
if (currentToken && !escaped && !quoteChar) {
|
||||
nextToken();
|
||||
}
|
||||
|
||||
return args;
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@ Comment=Use the command line the old way
|
||||
Exec=cool-retro-term
|
||||
GenericName=Terminal emulator
|
||||
Icon=cool-retro-term
|
||||
MimeType=
|
||||
Name=Cool Retro Term
|
||||
Categories=Qt;System;Utility;TerminalEmulator;
|
||||
Categories=System;TerminalEmulator;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Keywords=shell;prompt;command;commandline;
|
||||
|
||||
4
packaging/debian/.gitignore
vendored
Normal file
4
packaging/debian/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/*.debhelper.log
|
||||
/*.substvars
|
||||
/cool-retro-term/
|
||||
/files
|
||||
@@ -1,9 +1,12 @@
|
||||
Source: cool-retro-term
|
||||
Maintainer: Jeka Der <jekader@gmail.com>
|
||||
Section: misc
|
||||
Section: x11
|
||||
Priority: optional
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: debhelper (>= 9),qmlscene,
|
||||
Homepage: https://github.com/Swordfish90/cool-retro-term
|
||||
Vcs-Git: git://github.com/barak/cool-retro-term.git
|
||||
Vcs-Browser: https://github.com/barak/cool-retro-term
|
||||
Build-Depends: debhelper (>= 9), qmlscene,
|
||||
qt5-qmake, qtdeclarative5-dev, qml-module-qtquick-controls,
|
||||
qml-module-qtgraphicaleffects, qml-module-qtquick-dialogs,
|
||||
qml-module-qtquick-localstorage, qml-module-qtquick-window2
|
||||
@@ -11,7 +14,10 @@ Build-Depends: debhelper (>= 9),qmlscene,
|
||||
Package: cool-retro-term
|
||||
Architecture: any
|
||||
Replaces: cool-old-term
|
||||
Depends: qml-module-qtquick-controls, qml-module-qtgraphicaleffects, qml-module-qtquick-dialogs, qml-module-qtquick-localstorage, qml-module-qtquick-window2, ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: x-terminal-emulator
|
||||
Depends: qml-module-qtquick-controls, qml-module-qtgraphicaleffects,
|
||||
qml-module-qtquick-dialogs, qml-module-qtquick-localstorage,
|
||||
qml-module-qtquick-window2, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: terminal emulator which mimics old screens
|
||||
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,
|
||||
|
||||
31
packaging/debian/cool-retro-term.1
Normal file
31
packaging/debian/cool-retro-term.1
Normal file
@@ -0,0 +1,31 @@
|
||||
.TH cool-retro-term 1 "August 22 2016"
|
||||
.SH NAME
|
||||
cool-retro-term \- terminal emulator mimicking the old cathode display
|
||||
.SH SYNOPSIS
|
||||
"Usage: ./cool\-retro\-term [\-\-default\-settings] [\-\-workdir <dir>] [\-\-program <prog>] [\-p|\-\-profile <prof>] [\-\-fullscreen] [\-h|\-\-help]"
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B cool-retro-term
|
||||
command.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-default\-settings\fR
|
||||
Run cool\-retro\-term 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.
|
||||
.TP
|
||||
\fB\-\-fullscreen\fR
|
||||
Run cool\-retro\-term in fullscreen.
|
||||
.HP
|
||||
\fB\-p\fR|\-\-profile <prof> Run cool\-retro\-term with the given profile.
|
||||
.TP
|
||||
\fB\-h\fR|\-\-help
|
||||
Print this help.
|
||||
.TP
|
||||
\fB\-\-verbose\fR
|
||||
Print additional information such as profiles and settings.
|
||||
.PP
|
||||
@@ -4,10 +4,8 @@ Upstream-Contact: Filippo Scognamiglio <flscogna@gmail.com>
|
||||
Source: https://github.com/Swordfish90/cool-retro-term
|
||||
|
||||
Files: *
|
||||
Copyright: 2014 Filippo Scognamiglio
|
||||
Copyright: 2013-2017 Filippo Scognamiglio
|
||||
License: GPL-3
|
||||
On Debian systems, the full text of the GNU General Public
|
||||
License version 3 can be found in the file
|
||||
`/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
|
||||
|
||||
4
packaging/debian/watch
Normal file
4
packaging/debian/watch
Normal file
@@ -0,0 +1,4 @@
|
||||
version=4
|
||||
opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%<project>-$1.tar.gz%" \
|
||||
https://github.com/Swordfish90/cool-retro-term/tags \
|
||||
(?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate
|
||||
Submodule qmltermwidget updated: dbf93d175c...08958f7c83
Reference in New Issue
Block a user