Compare commits
79 Commits
old-burnin
...
ryanfelder
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9e5f309a6 | ||
|
|
6f84f53390 | ||
|
|
0625ca4f15 | ||
|
|
dac2b4ff16 | ||
|
|
2d12b0c747 | ||
|
|
5fe26edaa6 | ||
|
|
a736cfd548 | ||
|
|
5af4214daa | ||
|
|
98ef7b329a | ||
|
|
b0e1962fa7 | ||
|
|
83684e8882 | ||
|
|
1ed7d077a9 | ||
|
|
ba4b36618f | ||
|
|
af647a4bad | ||
|
|
b719530ef0 | ||
|
|
530d61d67e | ||
|
|
3d76bcb48c | ||
|
|
70ce2f1f3c | ||
|
|
21a190a1aa | ||
|
|
a88d222709 | ||
|
|
b2defceae5 | ||
|
|
8d7565ffc4 | ||
|
|
9960b25dff | ||
|
|
411c116deb | ||
|
|
64e007f1fd | ||
|
|
c62fc365db | ||
|
|
e7e630bd5d | ||
|
|
7d77175fbb | ||
|
|
f033553972 | ||
|
|
ae1ed044ba | ||
|
|
35d601c7a7 | ||
|
|
f89aeec374 | ||
|
|
42c3b4b42e | ||
|
|
322fc31396 | ||
|
|
6e4d5cfddd | ||
|
|
d81485a8bf | ||
|
|
a9260d956c | ||
|
|
025bb560bc | ||
|
|
cdd1488e13 | ||
|
|
b8b2644969 | ||
|
|
09b5c0a5d0 | ||
|
|
1ed66f3aa2 | ||
|
|
3b4d5d1c3f | ||
|
|
f98fd5a7ad | ||
|
|
b961109623 | ||
|
|
8f0d1023a4 | ||
|
|
79773ba95c | ||
|
|
b026fe357e | ||
|
|
ade36c013b | ||
|
|
54a6a7f590 | ||
|
|
20728e4a0f | ||
|
|
afa456f6b3 | ||
|
|
3fbfb77430 | ||
|
|
051bcb62c6 | ||
|
|
d2c57eed6d | ||
|
|
4bff6efe97 | ||
|
|
c514dc7a24 | ||
|
|
24754edb6a | ||
|
|
79fbb76524 | ||
|
|
b85aede966 | ||
|
|
c66ca6e44f | ||
|
|
a192024fef | ||
|
|
918df9098a | ||
|
|
c9271bfa36 | ||
|
|
fa162c818b | ||
|
|
ff976e3ec2 | ||
|
|
17c5651305 | ||
|
|
7c7b049ba1 | ||
|
|
0823fe8b3d | ||
|
|
e787fd0fb5 | ||
|
|
650497bff4 | ||
|
|
2f25bd30b0 | ||
|
|
d58157a450 | ||
|
|
9d049bd041 | ||
|
|
988222b711 | ||
|
|
f42bd3036f | ||
|
|
297239fb5c | ||
|
|
dbd46d44aa | ||
|
|
254f4d6e92 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -18,6 +18,7 @@
|
|||||||
*.pro.user.*
|
*.pro.user.*
|
||||||
*.moc
|
*.moc
|
||||||
moc_*.cpp
|
moc_*.cpp
|
||||||
|
moc_*.h
|
||||||
qrc_*.cpp
|
qrc_*.cpp
|
||||||
ui_*.h
|
ui_*.h
|
||||||
Makefile*
|
Makefile*
|
||||||
|
|||||||
37
.travis.yml
Normal file
37
.travis.yml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
sudo: required
|
||||||
|
dist: trusty
|
||||||
|
language: c++
|
||||||
|
|
||||||
|
install:
|
||||||
|
- sudo add-apt-repository -y ppa:beineri/opt-qt58-trusty
|
||||||
|
- sudo apt-get update -qq
|
||||||
|
- sudo apt-get -y install build-essential qt58declarative qt58graphicaleffects qt58quickcontrols libgl1-mesa-dev
|
||||||
|
- source /opt/qt*/bin/qt*-env.sh
|
||||||
|
|
||||||
|
script:
|
||||||
|
- qmake CONFIG+=release PREFIX=/usr
|
||||||
|
- make -j$(nproc)
|
||||||
|
- mkdir -p appdir/usr/share/metainfo appdir/usr/bin
|
||||||
|
- cp packaging/appdata/cool-retro-term.appdata.xml appdir/usr/share/metainfo/
|
||||||
|
- cp cool-retro-term appdir/usr/bin/
|
||||||
|
- cp ./cool-retro-term.desktop appdir/
|
||||||
|
- cp ./app/icons/128x128/cool-retro-term.png appdir/
|
||||||
|
- cp -r ./app/qml appdir/usr/
|
||||||
|
- cp -r ./qmltermwidget/QMLTermWidget appdir/usr/qml/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/78
|
||||||
|
- wget -c https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
|
||||||
|
- chmod a+x linuxdeployqt-*.AppImage
|
||||||
|
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||||
|
- export VERSION=$(git rev-parse --short HEAD) # linuxdeployqt uses this for naming the file
|
||||||
|
- ./linuxdeployqt-*.AppImage appdir/usr/bin/cool-retro-term -qmldir=./app/qml/ -qmldir=./qmltermwidget/ # -verbose=3 2>&1 | grep "path:" -C 3
|
||||||
|
- ./linuxdeployqt-*.AppImage appdir/usr/bin/cool-retro-term -qmldir=./app/qml/ -qmldir=./qmltermwidget/ -verbose=2 -appimage
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
|
||||||
|
- # curl --upload-file Cool*.AppImage https://transfer.sh/Cool_Retro_Term-git.$(git rev-parse --short HEAD)-x86_64.AppImage
|
||||||
|
- wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
|
||||||
|
- bash upload.sh Cool*.AppImage*
|
||||||
|
|
||||||
|
branches:
|
||||||
|
except:
|
||||||
|
- # Do not build tags that we create when we upload to GitHub Releases
|
||||||
|
- /^(?i:continuous)/
|
||||||
58
README.md
58
README.md
@@ -12,6 +12,8 @@ It uses the QML port of qtermwidget (Konsole) developed by me: https://github.co
|
|||||||
|
|
||||||
This terminal emulator works under Linux and macOS and requires Qt 5.2 or higher.
|
This terminal emulator works under Linux and macOS and requires Qt 5.2 or higher.
|
||||||
|
|
||||||
|
Settings such as colors, fonts, and effects can be accessed via context menu.
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||

|

|
||||||

|

|
||||||
@@ -20,13 +22,19 @@ This terminal emulator works under Linux and macOS and requires Qt 5.2 or higher
|
|||||||
## Install
|
## Install
|
||||||
Walk the easy way and install cool-retro-term using one of these convenient packages:
|
Walk the easy way and install cool-retro-term using one of these convenient packages:
|
||||||
|
|
||||||
**Fedora** has the `cool-retro-term` in the offcial repositories. All you have to do is `sudo dnf install cool-retro-term`.
|
Just grab the latest AppImage from the release page and make it executable and run it:
|
||||||
|
|
||||||
|
wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||||
|
chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||||
|
./Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||||
|
|
||||||
|
**Fedora** has the `cool-retro-term` in the official 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).
|
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):
|
**Arch** users can install this [package](https://aur.archlinux.org/packages/cool-retro-term-git/) directly via the [AUR](https://aur.archlinux.org):
|
||||||
|
|
||||||
yaourt -S aur/cool-retro-term-git
|
trizen -S aur/cool-retro-term-git
|
||||||
|
|
||||||
or use:
|
or use:
|
||||||
|
|
||||||
@@ -34,22 +42,32 @@ or use:
|
|||||||
|
|
||||||
to install precompiled from community repository.
|
to install precompiled from community repository.
|
||||||
|
|
||||||
**Gentoo** users can now install the third release "1.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.1.0::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!
|
|
||||||
|
|
||||||
Users of **Ubuntu 14.04 LTS (Trusty) up to 15.10 (Wily)** can use [this PPA](https://launchpad.net/~bugs-launchpad-net-falkensweb).
|
Users of **Ubuntu 14.04 LTS (Trusty) up to 15.10 (Wily)** can use [this PPA](https://launchpad.net/~bugs-launchpad-net-falkensweb).
|
||||||
|
|
||||||
**Ubuntu 17.10** can use [this PPA](https://launchpad.net/%7Evantuz/+archive/ubuntu/cool-retro-term)
|
**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
|
**Solus** users can install using `eopg`:
|
||||||
|
```
|
||||||
|
eopkg it cool-retro-term
|
||||||
|
```
|
||||||
|
|
||||||
|
**macOS** users can grab the latest dmg from the [release page](https://github.com/Swordfish90/cool-retro-term/releases) or install via Homebrew:
|
||||||
|
```
|
||||||
|
brew cask install cool-retro-term
|
||||||
|
```
|
||||||
|
|
||||||
|
**FreeBSD** users can install cool-retro-term with `pkg`:
|
||||||
|
|
||||||
|
pkg install cool-retro-term
|
||||||
|
|
||||||
|
## Build instructions (FreeBSD)
|
||||||
|
|
||||||
|
Grab a copy of [the FreeBSD Ports Collection](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html), modify [`/usr/ports/x11/cool-retro-term/Makefile`](https://svnweb.freebsd.org/ports/head/x11/cool-retro-term/Makefile?view=markup) as you like, and then run `make install` to build and install the emulator:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd /usr/ports/x11/cool-retro-term
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
## Build instructions (Linux)
|
## Build instructions (Linux)
|
||||||
|
|
||||||
@@ -84,6 +102,12 @@ Make sure to install these first.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
**snapcraft (most of distros)**
|
||||||
|
|
||||||
|
sudo snap install cool-retro-term --classic
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**Debian Jessie and above**
|
**Debian Jessie and above**
|
||||||
|
|
||||||
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 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
|
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 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
|
||||||
@@ -175,6 +199,12 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
|
|||||||
open cool-retro-term.app
|
open cool-retro-term.app
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Homebrew**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
brew cask install cool-retro-term
|
||||||
|
```
|
||||||
|
|
||||||
## Donations
|
## 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).
|
||||||
|
|
||||||
|
|||||||
46
app/main.cpp
46
app/main.cpp
@@ -33,11 +33,37 @@ int main(int argc, char *argv[])
|
|||||||
// This disables QT appmenu under Ubuntu, which is not working with QML apps.
|
// This disables QT appmenu under Ubuntu, which is not working with QML apps.
|
||||||
setenv("QT_QPA_PLATFORMTHEME", "", 1);
|
setenv("QT_QPA_PLATFORMTHEME", "", 1);
|
||||||
|
|
||||||
|
#if defined (Q_OS_LINUX)
|
||||||
|
setenv("QSG_RENDER_LOOP", "threaded", 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_MAC)
|
#if defined(Q_OS_MAC)
|
||||||
// This allows UTF-8 characters usage in OSX.
|
// This allows UTF-8 characters usage in OSX.
|
||||||
setenv("LC_CTYPE", "UTF-8", 1);
|
setenv("LC_CTYPE", "UTF-8", 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (argc>1 && (!strcmp(argv[1],"-h") || !strcmp(argv[1],"--help"))) {
|
||||||
|
QTextStream cout(stdout, QIODevice::WriteOnly);
|
||||||
|
cout << "Usage: " << argv[0] << " [--default-settings] [--workdir <dir>] [--program <prog>] [-p|--profile <prof>] [--fullscreen] [-h|--help]" << endl;
|
||||||
|
cout << " --default-settings Run cool-retro-term with the default settings" << endl;
|
||||||
|
cout << " --workdir <dir> Change working directory to 'dir'" << endl;
|
||||||
|
cout << " -e <cmd> Command to execute. This option will catch all following arguments, so use it as the last option." << endl;
|
||||||
|
cout << " -T <title> Set window title to 'title'." << endl;
|
||||||
|
cout << " --fullscreen Run cool-retro-term in fullscreen." << endl;
|
||||||
|
cout << " -p|--profile <prof> Run cool-retro-term with the given profile." << endl;
|
||||||
|
cout << " -h|--help Print this help." << endl;
|
||||||
|
cout << " --verbose Print additional information such as profiles and settings." << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString appVersion("1.1.1");
|
||||||
|
|
||||||
|
if (argc>1 && (!strcmp(argv[1],"-v") || !strcmp(argv[1],"--version"))) {
|
||||||
|
QTextStream cout(stdout, QIODevice::WriteOnly);
|
||||||
|
cout << "cool-retro-term " << appVersion << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
// set application attributes
|
// set application attributes
|
||||||
// Has no effects, see https://bugreports.qt.io/browse/QTBUG-51293
|
// Has no effects, see https://bugreports.qt.io/browse/QTBUG-51293
|
||||||
@@ -55,25 +81,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// Manage command line arguments from the cpp side
|
// Manage command line arguments from the cpp side
|
||||||
QStringList args = app.arguments();
|
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'";
|
|
||||||
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.";
|
|
||||||
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
|
// Manage default command
|
||||||
QStringList cmdList;
|
QStringList cmdList;
|
||||||
@@ -82,6 +89,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
QVariant command(cmdList.empty() ? QVariant() : cmdList[0]);
|
QVariant command(cmdList.empty() ? QVariant() : cmdList[0]);
|
||||||
QVariant commandArgs(cmdList.size() <= 1 ? QVariant() : QVariant(cmdList.mid(1)));
|
QVariant commandArgs(cmdList.size() <= 1 ? QVariant() : QVariant(cmdList.mid(1)));
|
||||||
|
engine.rootContext()->setContextProperty("appVersion", appVersion);
|
||||||
engine.rootContext()->setContextProperty("defaultCmd", command);
|
engine.rootContext()->setContextProperty("defaultCmd", command);
|
||||||
engine.rootContext()->setContextProperty("defaultCmdArgs", commandArgs);
|
engine.rootContext()->setContextProperty("defaultCmdArgs", commandArgs);
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import QtQuick.Controls 1.0
|
|||||||
import "utils.js" as Utils
|
import "utils.js" as Utils
|
||||||
|
|
||||||
QtObject{
|
QtObject{
|
||||||
readonly property string version: "1.1.0"
|
readonly property string version: appVersion
|
||||||
readonly property int profileVersion: 2
|
readonly property int profileVersion: 2
|
||||||
|
|
||||||
// STATIC CONSTANTS ////////////////////////////////////////////////////////
|
// STATIC CONSTANTS ////////////////////////////////////////////////////////
|
||||||
@@ -59,6 +59,8 @@ QtObject{
|
|||||||
property real burnInQuality: 0.5
|
property real burnInQuality: 0.5
|
||||||
property bool useFastBurnIn: Qt.platform.os === "osx" ? false : true
|
property bool useFastBurnIn: Qt.platform.os === "osx" ? false : true
|
||||||
|
|
||||||
|
property bool blinkingCursor: false
|
||||||
|
|
||||||
onWindowScalingChanged: handleFontChanged();
|
onWindowScalingChanged: handleFontChanged();
|
||||||
|
|
||||||
// PROFILE SETTINGS ///////////////////////////////////////////////////////
|
// PROFILE SETTINGS ///////////////////////////////////////////////////////
|
||||||
@@ -92,6 +94,7 @@ QtObject{
|
|||||||
property real flickering: 0.1
|
property real flickering: 0.1
|
||||||
|
|
||||||
property real rbgShift: 0.0
|
property real rbgShift: 0.0
|
||||||
|
property real scanlineBlur: 0.0
|
||||||
|
|
||||||
property real _margin: 0.5
|
property real _margin: 0.5
|
||||||
property real margin: Utils.lint(1.0, 20.0, _margin)
|
property real margin: Utils.lint(1.0, 20.0, _margin)
|
||||||
@@ -134,7 +137,7 @@ QtObject{
|
|||||||
|
|
||||||
property FontLoader fontLoader: FontLoader { }
|
property FontLoader fontLoader: FontLoader { }
|
||||||
|
|
||||||
onFontScalingChanged: handleFontChanged();
|
onTotalFontScalingChanged: handleFontChanged();
|
||||||
onFontWidthChanged: handleFontChanged();
|
onFontWidthChanged: handleFontChanged();
|
||||||
|
|
||||||
function getIndexByName(name) {
|
function getIndexByName(name) {
|
||||||
@@ -208,7 +211,8 @@ QtObject{
|
|||||||
burnInQuality: burnInQuality,
|
burnInQuality: burnInQuality,
|
||||||
useCustomCommand: useCustomCommand,
|
useCustomCommand: useCustomCommand,
|
||||||
customCommand: customCommand,
|
customCommand: customCommand,
|
||||||
useFastBurnIn: useFastBurnIn
|
useFastBurnIn: useFastBurnIn,
|
||||||
|
blinkingCursor: blinkingCursor
|
||||||
}
|
}
|
||||||
return stringify(settings);
|
return stringify(settings);
|
||||||
}
|
}
|
||||||
@@ -229,6 +233,7 @@ QtObject{
|
|||||||
rasterization: rasterization,
|
rasterization: rasterization,
|
||||||
jitter: jitter,
|
jitter: jitter,
|
||||||
rbgShift: rbgShift,
|
rbgShift: rbgShift,
|
||||||
|
scanlineBlur: scanlineBlur,
|
||||||
brightness: brightness,
|
brightness: brightness,
|
||||||
contrast: contrast,
|
contrast: contrast,
|
||||||
ambientLight: ambientLight,
|
ambientLight: ambientLight,
|
||||||
@@ -296,6 +301,8 @@ QtObject{
|
|||||||
customCommand = settings.customCommand !== undefined ? settings.customCommand : customCommand
|
customCommand = settings.customCommand !== undefined ? settings.customCommand : customCommand
|
||||||
|
|
||||||
useFastBurnIn = settings.useFastBurnIn !== undefined ? settings.useFastBurnIn : useFastBurnIn;
|
useFastBurnIn = settings.useFastBurnIn !== undefined ? settings.useFastBurnIn : useFastBurnIn;
|
||||||
|
|
||||||
|
blinkingCursor = settings.blinkingCursor !== undefined ? settings.blinkingCursor : blinkingCursor
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadProfileString(profileString){
|
function loadProfileString(profileString){
|
||||||
@@ -320,6 +327,7 @@ QtObject{
|
|||||||
jitter = settings.jitter !== undefined ? settings.jitter : jitter;
|
jitter = settings.jitter !== undefined ? settings.jitter : jitter;
|
||||||
|
|
||||||
rbgShift = settings.rbgShift !== undefined ? settings.rbgShift : rbgShift;
|
rbgShift = settings.rbgShift !== undefined ? settings.rbgShift : rbgShift;
|
||||||
|
scanlineBlur = settings.scanlineBlur !== undefined ? settings.scanlineBlur : rbgShift;
|
||||||
|
|
||||||
ambientLight = settings.ambientLight !== undefined ? settings.ambientLight : ambientLight;
|
ambientLight = settings.ambientLight !== undefined ? settings.ambientLight : ambientLight;
|
||||||
contrast = settings.contrast !== undefined ? settings.contrast : contrast;
|
contrast = settings.contrast !== undefined ? settings.contrast : contrast;
|
||||||
@@ -397,6 +405,7 @@ QtObject{
|
|||||||
"jitter": 0.1997,
|
"jitter": 0.1997,
|
||||||
"rasterization": 0,
|
"rasterization": 0,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0.2483,
|
"saturationColor": 0.2483,
|
||||||
"screenCurvature": 0.3,
|
"screenCurvature": 0.3,
|
||||||
"staticNoise": 0.1198,
|
"staticNoise": 0.1198,
|
||||||
@@ -405,6 +414,34 @@ QtObject{
|
|||||||
}'
|
}'
|
||||||
builtin: true
|
builtin: true
|
||||||
}
|
}
|
||||||
|
ListElement{
|
||||||
|
text: "Amber Scanlines"
|
||||||
|
obj_string: '{
|
||||||
|
"ambientLight": 0.2,
|
||||||
|
"backgroundColor": "#000000",
|
||||||
|
"bloom": 0.32,
|
||||||
|
"brightness": 0.85,
|
||||||
|
"burnIn": 0.30,
|
||||||
|
"chromaColor": 1,
|
||||||
|
"contrast": 0.75,
|
||||||
|
"flickering": 0.04,
|
||||||
|
"fontColor": "#ff8100",
|
||||||
|
"fontName": "TERMINUS_SCALED",
|
||||||
|
"fontWidth": 1,
|
||||||
|
"glowingLine": 0,
|
||||||
|
"horizontalSync": 0,
|
||||||
|
"jitter": 0.03,
|
||||||
|
"rasterization": 1,
|
||||||
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0.05,
|
||||||
|
"saturationColor": 1,
|
||||||
|
"screenCurvature": 0.05,
|
||||||
|
"staticNoise": 0.05,
|
||||||
|
"windowOpacity": 1,
|
||||||
|
"margin": 0.5
|
||||||
|
}'
|
||||||
|
builtin: true
|
||||||
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Monochrome Green"
|
text: "Monochrome Green"
|
||||||
obj_string: '
|
obj_string: '
|
||||||
@@ -425,6 +462,7 @@ QtObject{
|
|||||||
"jitter": 0.1997,
|
"jitter": 0.1997,
|
||||||
"rasterization": 0,
|
"rasterization": 0,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0.0,
|
"saturationColor": 0.0,
|
||||||
"screenCurvature": 0.3,
|
"screenCurvature": 0.3,
|
||||||
"staticNoise": 0.1198,
|
"staticNoise": 0.1198,
|
||||||
@@ -453,6 +491,7 @@ QtObject{
|
|||||||
"jitter": 0.11,
|
"jitter": 0.11,
|
||||||
"rasterization": 1,
|
"rasterization": 1,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0.05,
|
||||||
"saturationColor": 0.5,
|
"saturationColor": 0.5,
|
||||||
"screenCurvature": 0.3,
|
"screenCurvature": 0.3,
|
||||||
"staticNoise": 0.15,
|
"staticNoise": 0.15,
|
||||||
@@ -481,6 +520,7 @@ QtObject{
|
|||||||
"jitter": 0,
|
"jitter": 0,
|
||||||
"rasterization": 2,
|
"rasterization": 2,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0,
|
"saturationColor": 0,
|
||||||
"screenCurvature": 0,
|
"screenCurvature": 0,
|
||||||
"staticNoise": 0.15,
|
"staticNoise": 0.15,
|
||||||
@@ -509,6 +549,7 @@ QtObject{
|
|||||||
"jitter": 0.1,
|
"jitter": 0.1,
|
||||||
"rasterization": 1,
|
"rasterization": 1,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0,
|
"saturationColor": 0,
|
||||||
"screenCurvature": 0.5,
|
"screenCurvature": 0.5,
|
||||||
"staticNoise": 0.099,
|
"staticNoise": 0.099,
|
||||||
@@ -537,6 +578,7 @@ QtObject{
|
|||||||
"jitter": 0.4,
|
"jitter": 0.4,
|
||||||
"rasterization": 1,
|
"rasterization": 1,
|
||||||
"rbgShift": 0.2969,
|
"rbgShift": 0.2969,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0,
|
"saturationColor": 0,
|
||||||
"screenCurvature": 0.5,
|
"screenCurvature": 0.5,
|
||||||
"staticNoise": 0.2969,
|
"staticNoise": 0.2969,
|
||||||
@@ -565,6 +607,7 @@ QtObject{
|
|||||||
"jitter": 0.1545,
|
"jitter": 0.1545,
|
||||||
"rasterization": 0,
|
"rasterization": 0,
|
||||||
"rbgShift": 0.3524,
|
"rbgShift": 0.3524,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0,
|
"saturationColor": 0,
|
||||||
"screenCurvature": 0.4,
|
"screenCurvature": 0.4,
|
||||||
"staticNoise": 0.0503,
|
"staticNoise": 0.0503,
|
||||||
@@ -593,6 +636,7 @@ QtObject{
|
|||||||
"jitter": 0,
|
"jitter": 0,
|
||||||
"rasterization": 0,
|
"rasterization": 0,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0,
|
"saturationColor": 0,
|
||||||
"screenCurvature": 0.2,
|
"screenCurvature": 0.2,
|
||||||
"staticNoise": 0,
|
"staticNoise": 0,
|
||||||
@@ -621,6 +665,7 @@ QtObject{
|
|||||||
"jitter": 0.099,
|
"jitter": 0.099,
|
||||||
"rasterization": 0,
|
"rasterization": 0,
|
||||||
"rbgShift": 0,
|
"rbgShift": 0,
|
||||||
|
"scanlineBlur": 0,
|
||||||
"saturationColor": 0.4983,
|
"saturationColor": 0.4983,
|
||||||
"screenCurvature": 0,
|
"screenCurvature": 0,
|
||||||
"staticNoise": 0.0955,
|
"staticNoise": 0.0955,
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ Loader {
|
|||||||
property real burnInTime: burnInFadeTime
|
property real burnInTime: burnInFadeTime
|
||||||
property real lastUpdate: burnInEffect.lastUpdate
|
property real lastUpdate: burnInEffect.lastUpdate
|
||||||
property real prevLastUpdate: burnInEffect.prevLastUpdate
|
property real prevLastUpdate: burnInEffect.prevLastUpdate
|
||||||
|
property int rasterization: appSettings.rasterization
|
||||||
|
property size virtual_resolution: Qt.size(kterminal.totalWidth, kterminal.totalHeight)
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
blending: false
|
blending: false
|
||||||
@@ -97,12 +99,33 @@ Loader {
|
|||||||
|
|
||||||
uniform highp float lastUpdate;
|
uniform highp float lastUpdate;
|
||||||
|
|
||||||
uniform highp float prevLastUpdate;" +
|
uniform highp float prevLastUpdate;
|
||||||
|
|
||||||
|
uniform highp vec2 virtual_resolution;" +
|
||||||
|
|
||||||
"float rgb2grey(vec3 v){
|
"float rgb2grey(vec3 v){
|
||||||
return dot(v, vec3(0.21, 0.72, 0.04));
|
return dot(v, vec3(0.21, 0.72, 0.04));
|
||||||
}" +
|
}" +
|
||||||
|
|
||||||
|
"highp float getScanlineIntensity(vec2 coords) {
|
||||||
|
float result = 1.0;" +
|
||||||
|
|
||||||
|
(appSettings.rasterization != appSettings.no_rasterization ?
|
||||||
|
"float val = 0.0;
|
||||||
|
vec2 rasterizationCoords = fract(coords * virtual_resolution);
|
||||||
|
val += smoothstep(0.0, 0.5, rasterizationCoords.y);
|
||||||
|
val -= smoothstep(0.5, 1.0, rasterizationCoords.y);
|
||||||
|
result *= mix(0.5, 1.0, val);" : "") +
|
||||||
|
|
||||||
|
(appSettings.rasterization == appSettings.pixel_rasterization ?
|
||||||
|
"val = 0.0;
|
||||||
|
val += smoothstep(0.0, 0.5, rasterizationCoords.x);
|
||||||
|
val -= smoothstep(0.5, 1.0, rasterizationCoords.x);
|
||||||
|
result *= mix(0.5, 1.0, val);" : "") + "
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}" +
|
||||||
|
|
||||||
"void main() {
|
"void main() {
|
||||||
vec2 coords = qt_TexCoord0;
|
vec2 coords = qt_TexCoord0;
|
||||||
|
|
||||||
@@ -111,7 +134,7 @@ Loader {
|
|||||||
|
|
||||||
float prevMask = accColor.a;
|
float prevMask = accColor.a;
|
||||||
float currMask = rgb2grey(txtColor);
|
float currMask = rgb2grey(txtColor);
|
||||||
|
txtColor *= getScanlineIntensity(coords);
|
||||||
highp float blurDecay = clamp((lastUpdate - prevLastUpdate) * burnInTime, 0.0, 1.0);
|
highp float blurDecay = clamp((lastUpdate - prevLastUpdate) * burnInTime, 0.0, 1.0);
|
||||||
blurDecay = max(0.0, blurDecay - prevMask);
|
blurDecay = max(0.0, blurDecay - prevMask);
|
||||||
vec3 blurColor = accColor.rgb - vec3(blurDecay);
|
vec3 blurColor = accColor.rgb - vec3(blurDecay);
|
||||||
|
|||||||
@@ -236,7 +236,9 @@ QtObject{
|
|||||||
function addSystemFonts() {
|
function addSystemFonts() {
|
||||||
var families = monospaceSystemFonts;
|
var families = monospaceSystemFonts;
|
||||||
for (var i = 0; i < families.length; i++) {
|
for (var i = 0; i < families.length; i++) {
|
||||||
console.log("Adding system font: ", families[i])
|
if (verbose) {
|
||||||
|
console.log("Adding system font: ", families[i])
|
||||||
|
}
|
||||||
fontlist.append(convertToListElement(families[i]))
|
fontlist.append(convertToListElement(families[i]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ Item{
|
|||||||
smooth: !appSettings.lowResolutionFont
|
smooth: !appSettings.lowResolutionFont
|
||||||
enableBold: false
|
enableBold: false
|
||||||
fullCursorHeight: true
|
fullCursorHeight: true
|
||||||
|
blinkingCursor: appSettings.blinkingCursor
|
||||||
|
|
||||||
session: QMLTermSession {
|
session: QMLTermSession {
|
||||||
id: ksession
|
id: ksession
|
||||||
|
|||||||
@@ -85,6 +85,11 @@ Tab{
|
|||||||
onNewValue: appSettings.rbgShift = newValue;
|
onNewValue: appSettings.rbgShift = newValue;
|
||||||
value: appSettings.rbgShift;
|
value: appSettings.rbgShift;
|
||||||
}
|
}
|
||||||
|
CheckableSlider{
|
||||||
|
name: qsTr("Scanline Blur")
|
||||||
|
onNewValue: appSettings.scanlineBlur = newValue;
|
||||||
|
value: appSettings.scanlineBlur;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,6 +114,24 @@ Tab{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
GroupBox{
|
||||||
|
title: qsTr("Cursor")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
CheckBox{
|
||||||
|
id: blinkingCursor
|
||||||
|
text: qsTr("Blinking Cursor")
|
||||||
|
checked: appSettings.blinkingCursor
|
||||||
|
onCheckedChanged: appSettings.blinkingCursor = checked
|
||||||
|
}
|
||||||
|
Binding{
|
||||||
|
target: blinkingCursor
|
||||||
|
property: "checked"
|
||||||
|
value: appSettings.blinkingCursor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
GroupBox{
|
GroupBox{
|
||||||
title: qsTr("Colors")
|
title: qsTr("Colors")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|||||||
@@ -378,6 +378,7 @@ Item {
|
|||||||
property real chromaColor: appSettings.chromaColor;
|
property real chromaColor: appSettings.chromaColor;
|
||||||
|
|
||||||
property real rbgShift: (appSettings.rbgShift / width) * appSettings.totalFontScaling // TODO FILIPPO width here is wrong.
|
property real rbgShift: (appSettings.rbgShift / width) * appSettings.totalFontScaling // TODO FILIPPO width here is wrong.
|
||||||
|
property real scanlineBlur: (appSettings.scanlineBlur / width) * appSettings.totalFontScaling
|
||||||
|
|
||||||
property int rasterization: appSettings.rasterization
|
property int rasterization: appSettings.rasterization
|
||||||
|
|
||||||
@@ -423,6 +424,9 @@ Item {
|
|||||||
(rbgShift !== 0 ? "
|
(rbgShift !== 0 ? "
|
||||||
uniform lowp float rbgShift;" : "") +
|
uniform lowp float rbgShift;" : "") +
|
||||||
|
|
||||||
|
(scanlineBlur !== 0 ? "
|
||||||
|
uniform lowp float scanlineBlur;" : "") +
|
||||||
|
|
||||||
(ambientLight !== 0 ? "
|
(ambientLight !== 0 ? "
|
||||||
uniform lowp float ambientLight;" : "") +
|
uniform lowp float ambientLight;" : "") +
|
||||||
|
|
||||||
@@ -432,15 +436,15 @@ Item {
|
|||||||
(appSettings.rasterization != appSettings.no_rasterization ?
|
(appSettings.rasterization != appSettings.no_rasterization ?
|
||||||
"float val = 0.0;
|
"float val = 0.0;
|
||||||
vec2 rasterizationCoords = fract(coords * virtual_resolution);
|
vec2 rasterizationCoords = fract(coords * virtual_resolution);
|
||||||
val += smoothstep(0.0, 0.5, rasterizationCoords.y);
|
val += smoothstep(0.1, 0.5, rasterizationCoords.y);
|
||||||
val -= smoothstep(0.5, 1.0, rasterizationCoords.y);
|
val -= smoothstep(0.5, 0.9, rasterizationCoords.y);
|
||||||
result *= mix(0.5, 1.0, val);" : "") +
|
result *= mix(0.3, 1.0, val);" : "") +
|
||||||
|
|
||||||
(appSettings.rasterization == appSettings.pixel_rasterization ?
|
(appSettings.rasterization == appSettings.pixel_rasterization ?
|
||||||
"val = 0.0;
|
"val = 0.0;
|
||||||
val += smoothstep(0.0, 0.5, rasterizationCoords.x);
|
val += smoothstep(0.0, 0.5, rasterizationCoords.x);
|
||||||
val -= smoothstep(0.5, 1.0, rasterizationCoords.x);
|
val -= smoothstep(0.5, 1.0, rasterizationCoords.x);
|
||||||
result *= mix(0.5, 1.0, val);" : "") + "
|
result *= mix(0.1, 1.0, val);" : "") + "
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -490,6 +494,19 @@ Item {
|
|||||||
txt_color.b = leftColor.b * 0.30 + rightColor.b * 0.10 + txt_color.b * 0.60;
|
txt_color.b = leftColor.b * 0.30 + rightColor.b * 0.10 + txt_color.b * 0.60;
|
||||||
" : "") +
|
" : "") +
|
||||||
|
|
||||||
|
(scanlineBlur !== 0 ? "
|
||||||
|
vec2 scanlineBlur_displacement = vec2(12.0, 0.0) * scanlineBlur;
|
||||||
|
vec3 scanlineBlur_rightColor = texture2D(source, txt_coords + scanlineBlur_displacement).rgb;
|
||||||
|
vec3 scanlineBlur_leftColor = texture2D(source, txt_coords - scanlineBlur_displacement).rgb;
|
||||||
|
vec3 scanlineBlur_rightColor2 = texture2D(source, txt_coords + scanlineBlur_displacement + scanlineBlur_displacement).rgb;
|
||||||
|
vec3 scanlineBlur_leftColor2 = texture2D(source, txt_coords - scanlineBlur_displacement - scanlineBlur_displacement).rgb;
|
||||||
|
vec3 scanlineBlur_rightColor3 = texture2D(source, txt_coords + scanlineBlur_displacement + scanlineBlur_displacement + scanlineBlur_displacement).rgb;
|
||||||
|
vec3 scanlineBlur_leftColor3 = texture2D(source, txt_coords - scanlineBlur_displacement - scanlineBlur_displacement - scanlineBlur_displacement).rgb;
|
||||||
|
txt_color.r = scanlineBlur_leftColor3.r * 0.05 + scanlineBlur_leftColor2.r * 0.1 + scanlineBlur_leftColor.r * 0.20 + txt_color.r * 0.30 + scanlineBlur_rightColor.r * 0.20 + scanlineBlur_rightColor2.r * 0.1 + scanlineBlur_rightColor3.r * 0.05;
|
||||||
|
txt_color.g = scanlineBlur_leftColor3.g * 0.05 + scanlineBlur_leftColor2.g * 0.1 + scanlineBlur_leftColor.g * 0.20 + txt_color.g * 0.30 + scanlineBlur_rightColor.g * 0.20 + scanlineBlur_rightColor2.g * 0.1 + scanlineBlur_rightColor3.g * 0.05;
|
||||||
|
txt_color.b = scanlineBlur_leftColor3.b * 0.05 + scanlineBlur_leftColor2.b * 0.1 + scanlineBlur_leftColor.b * 0.20 + txt_color.b * 0.30 + scanlineBlur_rightColor.b * 0.20 + scanlineBlur_rightColor2.b * 0.1 + scanlineBlur_rightColor3.b * 0.05;
|
||||||
|
" : "") +
|
||||||
|
|
||||||
"txt_color *= getScanlineIntensity(txt_coords);" +
|
"txt_color *= getScanlineIntensity(txt_coords);" +
|
||||||
|
|
||||||
"txt_color += vec3(0.0001);" +
|
"txt_color += vec3(0.0001);" +
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ Loader {
|
|||||||
property variant blurredSource: burnInSourceEffect
|
property variant blurredSource: burnInSourceEffect
|
||||||
property real burnInCoefficient: burnInSourceEffect.burnInCoefficient
|
property real burnInCoefficient: burnInSourceEffect.burnInCoefficient
|
||||||
|
|
||||||
|
property int rasterization: appSettings.rasterization
|
||||||
|
property size virtual_resolution: Qt.size(kterminal.totalWidth, kterminal.totalHeight)
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
blending: false
|
blending: false
|
||||||
|
|
||||||
@@ -97,6 +100,7 @@ Loader {
|
|||||||
|
|
||||||
"uniform lowp float qt_Opacity;" +
|
"uniform lowp float qt_Opacity;" +
|
||||||
"uniform lowp sampler2D txt_source;" +
|
"uniform lowp sampler2D txt_source;" +
|
||||||
|
"uniform highp vec2 virtual_resolution;" +
|
||||||
|
|
||||||
"varying highp vec2 qt_TexCoord0;
|
"varying highp vec2 qt_TexCoord0;
|
||||||
uniform lowp sampler2D blurredSource;
|
uniform lowp sampler2D blurredSource;
|
||||||
@@ -106,12 +110,33 @@ Loader {
|
|||||||
return max (max (v.x, v.y), v.z);
|
return max (max (v.x, v.y), v.z);
|
||||||
}" +
|
}" +
|
||||||
|
|
||||||
|
|
||||||
|
"highp float getScanlineIntensity(vec2 coords) {
|
||||||
|
float result = 1.0;" +
|
||||||
|
|
||||||
|
(appSettings.rasterization != appSettings.no_rasterization ?
|
||||||
|
"float val = 0.0;
|
||||||
|
vec2 rasterizationCoords = fract(coords * virtual_resolution);
|
||||||
|
val += smoothstep(0.0, 0.5, rasterizationCoords.y);
|
||||||
|
val -= smoothstep(0.5, 1.0, rasterizationCoords.y);
|
||||||
|
result *= mix(0.5, 1.0, val);" : "") +
|
||||||
|
|
||||||
|
(appSettings.rasterization == appSettings.pixel_rasterization ?
|
||||||
|
"val = 0.0;
|
||||||
|
val += smoothstep(0.0, 0.5, rasterizationCoords.x);
|
||||||
|
val -= smoothstep(0.5, 1.0, rasterizationCoords.x);
|
||||||
|
result *= mix(0.5, 1.0, val);" : "") + "
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}" +
|
||||||
|
|
||||||
|
|
||||||
"void main() {" +
|
"void main() {" +
|
||||||
"vec2 coords = qt_TexCoord0;" +
|
"vec2 coords = qt_TexCoord0;" +
|
||||||
"vec3 origColor = texture2D(txt_source, coords).rgb;" +
|
"vec3 origColor = texture2D(txt_source, coords).rgb;" +
|
||||||
|
"origColor *= getScanlineIntensity(coords);" +
|
||||||
"vec3 blur_color = texture2D(blurredSource, coords).rgb - vec3(burnInCoefficient);" +
|
"vec3 blur_color = texture2D(blurredSource, coords).rgb - vec3(burnInCoefficient);" +
|
||||||
"vec3 color = min(origColor + blur_color, max(origColor, blur_color));" +
|
"vec3 color = min(origColor + blur_color, max(origColor, blur_color));" +
|
||||||
|
|
||||||
"gl_FragColor = vec4(color, max3(color - origColor));" +
|
"gl_FragColor = vec4(color, max3(color - origColor));" +
|
||||||
"}"
|
"}"
|
||||||
|
|
||||||
|
|||||||
Submodule qmltermwidget updated: 48274c7566...59f967d5e1
@@ -1,32 +1,46 @@
|
|||||||
name: cool-retro-term # check to see if it's available
|
name: cool-retro-term # check to see if it's available
|
||||||
version: '1.1.0' # this is freakin' awesome
|
version: '1.1.1' # this is freakin' awesome
|
||||||
summary: cool-retro-term is a terminal emulator. # 79 char long summary
|
summary: cool-retro-term is a cool and retro terminal emulator. # 79 char long summary
|
||||||
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.
|
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.
|
||||||
grade: stable # must be 'stable' to release into candidate/stable channels
|
grade: stable # must be 'stable' to release into candidate/stable channels
|
||||||
confinement: strict # use 'strict' once you have the right plugs
|
confinement: classic # use 'strict' once you have the right plugs
|
||||||
|
|
||||||
|
base: core18
|
||||||
|
|
||||||
apps:
|
apps:
|
||||||
cool-retro-term:
|
cool-retro-term:
|
||||||
command: desktop-launch $SNAP/usr/bin/cool-retro-term
|
command: bin/desktop-launch $SNAP/usr/bin/cool-retro-term
|
||||||
desktop: usr/share/applications/cool-retro-term.desktop
|
desktop: usr/share/applications/cool-retro-term.desktop
|
||||||
plugs:
|
environment:
|
||||||
- unity7
|
QML2_IMPORT_PATH: $SNAP/usr/lib/x86_64-linux-gnu/qt5/qml
|
||||||
- x11
|
|
||||||
- desktop
|
|
||||||
- home
|
|
||||||
- network
|
|
||||||
- network-bind
|
|
||||||
- network-manager
|
|
||||||
- password-manager-service
|
|
||||||
- locale-control
|
|
||||||
- gsettings
|
|
||||||
- shutdown
|
|
||||||
- firewall-control
|
|
||||||
- process-control
|
|
||||||
- system-observe
|
|
||||||
|
|
||||||
parts:
|
parts:
|
||||||
|
desktop-qt5:
|
||||||
|
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
|
||||||
|
source-subdir: qt
|
||||||
|
plugin: make
|
||||||
|
make-parameters: ["FLAVOR=qt5"]
|
||||||
|
build-packages:
|
||||||
|
- build-essential
|
||||||
|
- qtbase5-dev
|
||||||
|
- dpkg-dev
|
||||||
|
stage-packages:
|
||||||
|
- libxkbcommon0
|
||||||
|
- ttf-ubuntu-font-family
|
||||||
|
- dmz-cursor-theme
|
||||||
|
- light-themes
|
||||||
|
- adwaita-icon-theme
|
||||||
|
- gnome-themes-standard
|
||||||
|
- shared-mime-info
|
||||||
|
- libqt5gui5
|
||||||
|
- libgdk-pixbuf2.0-0
|
||||||
|
- libqt5svg5 # for loading icon themes which are svg
|
||||||
|
- try: [appmenu-qt5] # not available on core18
|
||||||
|
- locales-all
|
||||||
|
- xdg-user-dirs
|
||||||
|
- fcitx-frontend-qt5
|
||||||
|
|
||||||
my-part:
|
my-part:
|
||||||
source: https://github.com/Swordfish90/cool-retro-term
|
source: https://github.com/Swordfish90/cool-retro-term
|
||||||
source-type: git
|
source-type: git
|
||||||
@@ -44,11 +58,14 @@ parts:
|
|||||||
stage-packages:
|
stage-packages:
|
||||||
- qmlscene
|
- qmlscene
|
||||||
- qml-module-qtquick-controls
|
- qml-module-qtquick-controls
|
||||||
- qtdeclarative5-qtquick2-plugin
|
- qml-module-qtquick2
|
||||||
- libqt5qml-graphicaleffects
|
- qml-module-qtgraphicaleffects
|
||||||
- qml-module-qtquick-dialogs
|
- qml-module-qtquick-dialogs
|
||||||
- qtdeclarative5-localstorage-plugin
|
- qml-module-qtquick-localstorage
|
||||||
- qtdeclarative5-window-plugin
|
- qml-module-qtquick-window2
|
||||||
- libgl1-mesa-dev
|
- libgl1-mesa-dev
|
||||||
- qtdeclarative5-dev-tools
|
- qtdeclarative5-dev-tools
|
||||||
- qml-module-qtquick-extras
|
- qml-module-qtquick-extras
|
||||||
|
- qml-module-qt-labs-settings
|
||||||
|
- qml-module-qt-labs-folderlistmodel
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user