Compare commits

..

9 Commits

Author SHA1 Message Date
Filippo Scognamiglio
f157648d1e
Merge pull request #711 from razziel89/feature/appimage-in-github-actions
Feature/appimage in GitHub actions
2022-03-31 07:18:37 +02:00
Torsten Sachse
d4baaeccfc Undo unneeded code changes 2022-03-29 08:22:59 +02:00
Torsten Sachse
d412b66c6e Add github action for building an appimage 2022-03-29 08:16:02 +02:00
Filippo Scognamiglio
74ae511f92 Bump version. Yeeee 2022-01-29 15:15:52 +01:00
Filippo Scognamiglio
a3fbafe4ae
Update README.md 2022-01-29 15:10:08 +01:00
Filippo Scognamiglio
8a45fbe9ed Tweak settings window and label sizes. 2022-01-16 09:40:20 +01:00
Filippo Scognamiglio
01c7929ee3 Increase size of settings window. 2022-01-12 21:11:58 +01:00
Filippo Scognamiglio
2261af17d7 Restore legacy Connection slots. Restore compilation on Qt 5.12. 2022-01-12 21:08:58 +01:00
Filippo Scognamiglio
41f34c3992 Disable Fusion style which has issues with dark themes. 2022-01-12 21:00:11 +01:00
8 changed files with 124 additions and 209 deletions

98
.github/workflows/appimage.yml vendored Normal file
View File

@ -0,0 +1,98 @@
name: "ci"
on:
push:
tags: "**"
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
appimage:
runs-on: ubuntu-18.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: true
- name: Install dependencies
run: |
sudo add-apt-repository -y ppa:beineri/opt-qt-5.15.2-bionic
sudo apt-get update -qq
sudo apt-get install -y \
build-essential make wget libgl1-mesa-dev \
qt515declarative qt515graphicaleffects \
qt515quickcontrols qt515quickcontrols2
- name: Download QT appimage builder
run: |
wget -c -O linuxdeployqt.AppImage \
https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
chmod a+x linuxdeployqt.AppImage
- name: Build project
run: |
source /opt/qt*/bin/qt*-env.sh && \
qmake -v && \
qmake CONFIG+=release PREFIX=/usr && \
make -j$(nproc)
- name: Install to appdir
run: |
source /opt/qt*/bin/qt*-env.sh && \
make INSTALL_ROOT=appdir -j$(nproc) install
- name: Extract version number
run: |
# Extract version for linuxdeployqt to name the file. Use the tag as
# release name but remove prefix.
echo "VERSION=$(echo '${{ github.ref }}' | sed 's;.*/;;')" >> $GITHUB_ENV
- name: Build appimage directory
run: |
mkdir -p \
appdir/usr/bin \
appdir/usr/lib \
appdir/usr/share/applications \
appdir/usr/share/metainfo \
appdir/usr/share/icons/hicolor/128x128/apps
cp cool-retro-term appdir/usr/bin/
cp cool-retro-term.desktop appdir/usr/share/applications/
cp packaging/appdata/cool-retro-term.appdata.xml appdir/usr/share/metainfo/
cp app/icons/128x128/cool-retro-term.png appdir/usr/share/icons/hicolor/128x128/apps/
cp -r ./app/qml appdir/usr/
# Workaround for https://github.com/probonopd/linuxdeployqt/issues/78
cp -r ./qmltermwidget/QMLTermWidget appdir/usr/qml/
find appdir | sort
- name: Build appimage
run: |
source /opt/qt*/bin/qt*-env.sh && \
./linuxdeployqt.AppImage appdir/usr/share/applications/cool-retro-term.desktop \
-verbose=1 -appimage \
-qmldir=./app/qml/ \
-qmldir=./qmltermwidget/
env:
# Unset environment variables
QTDIR:
QT_PLUGIN_PATH:
LD_LIBRARY_PATH:
- name: Upload release
uses: softprops/action-gh-release@v1
with:
body: appimage release
files: ./**/Cool_Retro_Term-*-x86_64.AppImage
- name: Clean up
if: always()
run: |
find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
make clean
rm -rf appdir

192
README.md
View File

@ -8,9 +8,9 @@
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.
It uses the QML port of qtermwidget (Konsole): https://github.com/Swordfish90/qmltermwidget.
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 Qt5. It's suggested that you stick to the latest LTS version.
Settings such as colors, fonts, and effects can be accessed via context menu.
@ -20,191 +20,11 @@ Settings such as colors, fonts, and effects can be accessed via context menu.
![Image](<https://i.imgur.com/GYRDPzJ.jpg>)
## Install
Walk the easy way and install cool-retro-term using one of these convenient packages:
Just grab the latest AppImage from the release page and make it executable and run it:
If you want to get a hold of the latest version, just go to the Releases page and grab the latest AppImage (Linux) or dmg (macOS).
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
Alternatively, most distributions such as Ubuntu, Fedora or Arch already package cool-retro-term in their official repositories.
**Fedora** has the `cool-retro-term` in the official repositories. All you have to do is `sudo dnf install cool-retro-term`.
## Building
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):
trizen -S aur/cool-retro-term-git
or use:
pacman -S cool-retro-term
to install precompiled from community repository.
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)
**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 or MacPorts:
```
brew install cool-retro-term --cask
```
or
```
port 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 cool-retro-term yourself, you know, the retro way.
## Dependencies
Make sure to install these first.
---
**Ubuntu 14.04**
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qtdeclarative5-controls-plugin qtdeclarative5-qtquick2-plugin libqt5qml-graphicaleffects qtdeclarative5-dialogs-plugin qtdeclarative5-localstorage-plugin qtdeclarative5-window-plugin
---
**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 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
---
**Ubuntu 17.10**
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
---
**snapcraft (most of distros)**
sudo snap install cool-retro-term --classic
---
**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
---
**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 redhat-rpm-config
or:
sudo dnf -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols redhat-rpm-config
---
**Arch Linux**
sudo pacman -S qt5-base qt5-declarative qt5-quickcontrols qt5-graphicaleffects
---
**openSUSE**
Add repository with latest Qt 5 (this is only needed on openSUSE 13.1, Factory already has it):
sudo zypper ar http://download.opensuse.org/repositories/KDE:/Qt5/openSUSE_13.1/ KDE:Qt5
Install dependencies:
sudo zypper install libqt5-qtbase-devel libqt5-qtdeclarative-devel libqt5-qtquickcontrols libqt5-qtgraphicaleffects
---
**Anyone else**
Install Qt directly from here http://qt-project.org/downloads . Once done export them in you path (replace "_/opt/Qt5.3.1/5.3/gcc_64/bin_" with your correct folder):
export PATH=/opt/Qt5.3.1/5.3/gcc_64/bin/:$PATH
---
### Compile
Once you installed all dependencies (Qt is installed and in your path) you need to compile and run the application:
```bash
# Get it from GitHub
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
# Build it
cd cool-retro-term
# Compile (Fedora and OpenSUSE user should use qmake-qt5 instead of qmake)
qmake && make
# Have fun!
./cool-retro-term
```
## 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:
**Brew**
```sh
brew install qt5
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
export CPPFLAGS="-I/usr/local/opt/qt5/include"
export LDFLAGS="-L/usr/local/opt/qt5/lib"
export PATH=/usr/local/opt/qt5/bin:$PATH
cd cool-retro-term
qmake && make
mkdir cool-retro-term.app/Contents/PlugIns
cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
open cool-retro-term.app
```
**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
```
**Homebrew**
```sh
brew install cool-retro-term --cask
```
Check out the wiki and follow the instructions on how to build it on [Linux](https://github.com/Swordfish90/cool-retro-term/wiki/Build-Instructions-(Linux)) and [macOS](https://github.com/Swordfish90/cool-retro-term/wiki/Build-Instructions-(macOS)).

View File

@ -47,9 +47,6 @@ int main(int argc, char *argv[])
setenv("LC_CTYPE", "UTF-8", 1);
#endif
// Force fusion style on every platform
QQuickStyle::setStyle("Fusion");
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;
@ -64,7 +61,7 @@ int main(int argc, char *argv[])
return 0;
}
QString appVersion("1.2.0-beta1");
QString appVersion("1.2.0");
if (argc>1 && (!strcmp(argv[1],"-v") || !strcmp(argv[1],"--version"))) {
QTextStream cout(stdout, QIODevice::WriteOnly);

View File

@ -76,7 +76,7 @@ Loader {
Connections {
target: kterminal
function onImagePainted() {
onImagePainted: {
completelyUpdate()
}
}
@ -84,19 +84,19 @@ Loader {
Connections {
target: appSettings
function onBurnInChanged() {
onBurnInChanged: {
burnInEffect.restartBlurSource()
}
function onTerminalFontChanged() {
onTerminalFontChanged: {
burnInEffect.restartBlurSource()
}
function onRasterizationChanged() {
onRasterizationChanged: {
burnInEffect.restartBlurSource()
}
function onBurnInQualityChanged() {
onBurnInQualityChanged: {
burnInEffect.restartBlurSource()
}
}

View File

@ -47,14 +47,14 @@ Item{
Connections {
target: copyAction
function onTriggered() {
onTriggered: {
kterminal.copyClipboard()
}
}
Connections {
target: pasteAction
function onTriggered() {
onTriggered: {
kterminal.pasteClipboard()
}
}
@ -63,29 +63,29 @@ Item{
Connections {
target: appSettings
function onFontScalingChanged() {
onFontScalingChanged: {
terminalContainer.updateSources()
}
function onFontWidthChanged() {
onFontWidthChanged: {
terminalContainer.updateSources()
}
}
Connections {
target: terminalContainer
function onWidthChanged() {
onWidthChanged: {
terminalContainer.updateSources()
}
function onHeightChanged() {
onHeightChanged: {
terminalContainer.updateSources()
}
}
Connections {
target: terminalWindow
function onActiveChanged() {
onActiveChanged: {
kterminal.forceActiveFocus()
}
}

View File

@ -89,7 +89,7 @@ ColumnLayout {
}
}
Label {
SizedLabel {
text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")
}
Label {
@ -109,7 +109,7 @@ ColumnLayout {
enabled = true
}
}
Label {
SizedLabel {
text: Math.round(txtslider.value * 100) + "%"
}
@ -130,7 +130,7 @@ ColumnLayout {
enabled = true
}
}
Label {
SizedLabel {
text: Math.round(bloomSlider.value * 100) + "%"
}
@ -151,7 +151,7 @@ ColumnLayout {
enabled = true
}
}
Label {
SizedLabel {
text: Math.round(burnInSlider.value * 100) + "%"
}
}

View File

@ -69,7 +69,7 @@ ColumnLayout {
Connections {
target: appSettings
function onTerminalFontChanged() {
onTerminalFontChanged: {
fontChanger.updateIndex()
}
}

View File

@ -27,8 +27,8 @@ import QtQuick.Dialogs 1.1
Window {
id: settings_window
title: qsTr("Settings")
width: 600
height: 480
width: 640
height: 640
property int tabmargins: 15