Compare commits
	
		
			14 Commits
		
	
	
		
			osx-fixes
			...
			a683c5ad85
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a683c5ad85 | ||
| 
						 | 
					f157648d1e | ||
| 
						 | 
					d4baaeccfc | ||
| 
						 | 
					d412b66c6e | ||
| 
						 | 
					74ae511f92 | ||
| 
						 | 
					a3fbafe4ae | ||
| 
						 | 
					8a45fbe9ed | ||
| 
						 | 
					01c7929ee3 | ||
| 
						 | 
					2261af17d7 | ||
| 
						 | 
					41f34c3992 | ||
| 
						 | 
					36b1cd2dde | ||
| 
						 | 
					80374b3ec6 | ||
| 
						 | 
					bc00d1e45f | ||
| 
						 | 
					6ddb507247 | 
							
								
								
									
										4
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					# These are supported funding model platforms
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					patreon: swordfish90
 | 
				
			||||||
 | 
					custom: ['https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=flscogna%40gmail.com&item_name=Support+CRT¤cy_code=EUR&source=url']
 | 
				
			||||||
							
								
								
									
										98
									
								
								.github/workflows/appimage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								.github/workflows/appimage.yml
									
									
									
									
										vendored
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										197
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										197
									
								
								README.md
									
									
									
									
									
								
							@@ -8,9 +8,9 @@
 | 
				
			|||||||
cool-retro-term is a terminal emulator which mimics the look and feel of the old cathode tube 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, customizable, and reasonably lightweight.
 | 
					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.
 | 
					Settings such as colors, fonts, and effects can be accessed via context menu.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -20,196 +20,11 @@ Settings such as colors, fonts, and effects can be accessed via context menu.
 | 
				
			|||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Install
 | 
					## 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
 | 
					Alternatively, most distributions such as Ubuntu, Fedora or Arch already package cool-retro-term in their official repositories.
 | 
				
			||||||
    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`.
 | 
					## Building
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Users of **openSUSE** can grab a package from [Open Build Service](http://software.opensuse.org/package/cool-retro-term).
 | 
					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)).
 | 
				
			||||||
 | 
					 | 
				
			||||||
**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
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 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.
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,9 +47,6 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
    setenv("LC_CTYPE", "UTF-8", 1);
 | 
					    setenv("LC_CTYPE", "UTF-8", 1);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Force fusion style on every platform
 | 
					 | 
				
			||||||
    QQuickStyle::setStyle("Fusion");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (argc>1 && (!strcmp(argv[1],"-h") || !strcmp(argv[1],"--help"))) {
 | 
					    if (argc>1 && (!strcmp(argv[1],"-h") || !strcmp(argv[1],"--help"))) {
 | 
				
			||||||
        QTextStream cout(stdout, QIODevice::WriteOnly);
 | 
					        QTextStream cout(stdout, QIODevice::WriteOnly);
 | 
				
			||||||
        cout << "Usage: " << argv[0] << " [--default-settings] [--workdir <dir>] [--program <prog>] [-p|--profile <prof>] [--fullscreen] [-h|--help]" << endl;
 | 
					        cout << "Usage: " << argv[0] << " [--default-settings] [--workdir <dir>] [--program <prog>] [-p|--profile <prof>] [--fullscreen] [-h|--help]" << endl;
 | 
				
			||||||
@@ -64,12 +61,12 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QString appVersion("1.1.1");
 | 
					    QString appVersion("1.2.0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (argc>1 && (!strcmp(argv[1],"-v") || !strcmp(argv[1],"--version"))) {
 | 
					    if (argc>1 && (!strcmp(argv[1],"-v") || !strcmp(argv[1],"--version"))) {
 | 
				
			||||||
        QTextStream cout(stdout, QIODevice::WriteOnly);
 | 
					        QTextStream cout(stdout, QIODevice::WriteOnly);
 | 
				
			||||||
        cout << "cool-retro-term " << appVersion << endl;
 | 
					        cout << "cool-retro-term " << appVersion << endl;
 | 
				
			||||||
	return 0;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QApplication app(argc, argv);
 | 
					    QApplication app(argc, argv);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -76,7 +76,7 @@ Loader {
 | 
				
			|||||||
            Connections {
 | 
					            Connections {
 | 
				
			||||||
                target: kterminal
 | 
					                target: kterminal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                function onImagePainted() {
 | 
					                onImagePainted: {
 | 
				
			||||||
                    completelyUpdate()
 | 
					                    completelyUpdate()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -84,19 +84,19 @@ Loader {
 | 
				
			|||||||
            Connections {
 | 
					            Connections {
 | 
				
			||||||
                target: appSettings
 | 
					                target: appSettings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                function onBurnInChanged() {
 | 
					                onBurnInChanged: {
 | 
				
			||||||
                    burnInEffect.restartBlurSource()
 | 
					                    burnInEffect.restartBlurSource()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                function onTerminalFontChanged() {
 | 
					                onTerminalFontChanged: {
 | 
				
			||||||
                    burnInEffect.restartBlurSource()
 | 
					                    burnInEffect.restartBlurSource()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                function onRasterizationChanged() {
 | 
					                onRasterizationChanged: {
 | 
				
			||||||
                    burnInEffect.restartBlurSource()
 | 
					                    burnInEffect.restartBlurSource()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                function onBurnInQualityChanged() {
 | 
					                onBurnInQualityChanged: {
 | 
				
			||||||
                    burnInEffect.restartBlurSource()
 | 
					                    burnInEffect.restartBlurSource()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,14 +47,14 @@ Item{
 | 
				
			|||||||
    Connections {
 | 
					    Connections {
 | 
				
			||||||
        target: copyAction
 | 
					        target: copyAction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onTriggered() {
 | 
					        onTriggered: {
 | 
				
			||||||
            kterminal.copyClipboard()
 | 
					            kterminal.copyClipboard()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Connections {
 | 
					    Connections {
 | 
				
			||||||
        target: pasteAction
 | 
					        target: pasteAction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onTriggered() {
 | 
					        onTriggered: {
 | 
				
			||||||
            kterminal.pasteClipboard()
 | 
					            kterminal.pasteClipboard()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -63,29 +63,29 @@ Item{
 | 
				
			|||||||
    Connections {
 | 
					    Connections {
 | 
				
			||||||
        target: appSettings
 | 
					        target: appSettings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onFontScalingChanged() {
 | 
					        onFontScalingChanged: {
 | 
				
			||||||
            terminalContainer.updateSources()
 | 
					            terminalContainer.updateSources()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onFontWidthChanged() {
 | 
					        onFontWidthChanged: {
 | 
				
			||||||
            terminalContainer.updateSources()
 | 
					            terminalContainer.updateSources()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Connections {
 | 
					    Connections {
 | 
				
			||||||
        target: terminalContainer
 | 
					        target: terminalContainer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onWidthChanged() {
 | 
					        onWidthChanged: {
 | 
				
			||||||
            terminalContainer.updateSources()
 | 
					            terminalContainer.updateSources()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onHeightChanged() {
 | 
					        onHeightChanged: {
 | 
				
			||||||
            terminalContainer.updateSources()
 | 
					            terminalContainer.updateSources()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Connections {
 | 
					    Connections {
 | 
				
			||||||
        target: terminalWindow
 | 
					        target: terminalWindow
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function onActiveChanged() {
 | 
					        onActiveChanged: {
 | 
				
			||||||
            kterminal.forceActiveFocus()
 | 
					            kterminal.forceActiveFocus()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,7 +89,7 @@ ColumnLayout {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Label {
 | 
					            SizedLabel {
 | 
				
			||||||
                text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")
 | 
					                text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Label {
 | 
					            Label {
 | 
				
			||||||
@@ -109,7 +109,7 @@ ColumnLayout {
 | 
				
			|||||||
                    enabled = true
 | 
					                    enabled = true
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Label {
 | 
					            SizedLabel {
 | 
				
			||||||
                text: Math.round(txtslider.value * 100) + "%"
 | 
					                text: Math.round(txtslider.value * 100) + "%"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -130,7 +130,7 @@ ColumnLayout {
 | 
				
			|||||||
                    enabled = true
 | 
					                    enabled = true
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Label {
 | 
					            SizedLabel {
 | 
				
			||||||
                text: Math.round(bloomSlider.value * 100) + "%"
 | 
					                text: Math.round(bloomSlider.value * 100) + "%"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -151,7 +151,7 @@ ColumnLayout {
 | 
				
			|||||||
                    enabled = true
 | 
					                    enabled = true
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Label {
 | 
					            SizedLabel {
 | 
				
			||||||
                text: Math.round(burnInSlider.value * 100) + "%"
 | 
					                text: Math.round(burnInSlider.value * 100) + "%"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,7 +69,7 @@ ColumnLayout {
 | 
				
			|||||||
                Connections {
 | 
					                Connections {
 | 
				
			||||||
                    target: appSettings
 | 
					                    target: appSettings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    function onTerminalFontChanged() {
 | 
					                    onTerminalFontChanged: {
 | 
				
			||||||
                        fontChanger.updateIndex()
 | 
					                        fontChanger.updateIndex()
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,8 @@ import QtQuick.Dialogs 1.1
 | 
				
			|||||||
Window {
 | 
					Window {
 | 
				
			||||||
    id: settings_window
 | 
					    id: settings_window
 | 
				
			||||||
    title: qsTr("Settings")
 | 
					    title: qsTr("Settings")
 | 
				
			||||||
    width: 600
 | 
					    width: 640
 | 
				
			||||||
    height: 480
 | 
					    height: 640
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    property int tabmargins: 15
 | 
					    property int tabmargins: 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -243,6 +243,17 @@ Item {
 | 
				
			|||||||
             "  return outColor;
 | 
					             "  return outColor;
 | 
				
			||||||
             }" +
 | 
					             }" +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             //pseudo-random vector
 | 
				
			||||||
 | 
					             //https://stackoverflow.com/a/10625698
 | 
				
			||||||
 | 
					             "float random( vec2 p )
 | 
				
			||||||
 | 
					             {
 | 
				
			||||||
 | 
					                 vec2 K1 = vec2(
 | 
				
			||||||
 | 
					                     23.14069263277926, // e^pi (Gelfond's constant)
 | 
				
			||||||
 | 
					                     2.665144142690225 // 2^sqrt(2) (Gelfond-Schneider constant)
 | 
				
			||||||
 | 
					                 );
 | 
				
			||||||
 | 
					                 return fract( cos( dot(p,K1) ) * 12345.6789 );
 | 
				
			||||||
 | 
					             }" +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
             "void main() {" +
 | 
					             "void main() {" +
 | 
				
			||||||
                 "vec2 cc = vec2(0.5) - qt_TexCoord0;" +
 | 
					                 "vec2 cc = vec2(0.5) - qt_TexCoord0;" +
 | 
				
			||||||
                 "float distance = length(cc);" +
 | 
					                 "float distance = length(cc);" +
 | 
				
			||||||
@@ -281,7 +292,11 @@ Item {
 | 
				
			|||||||
                 : "") +
 | 
					                 : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                 (jitter !== 0 || staticNoise !== 0 ?
 | 
					                 (jitter !== 0 || staticNoise !== 0 ?
 | 
				
			||||||
                     "vec4 noiseTexel = texture2D(noiseSource, scaleNoiseSize * coords + vec2(fract(time / 51.0), fract(time / 237.0)));"
 | 
					                 "vec4 noiseTexel = texture2D(
 | 
				
			||||||
 | 
					                     noiseSource, scaleNoiseSize * coords
 | 
				
			||||||
 | 
					                     + vec2(0.0, random(vec2(fract(time / 237.0), 822.9582)))
 | 
				
			||||||
 | 
					                     + vec2(fract(time / 31.0), fract(time / 177.0))
 | 
				
			||||||
 | 
					                 );"
 | 
				
			||||||
                 : "") +
 | 
					                 : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                 (jitter !== 0 ? "
 | 
					                 (jitter !== 0 ? "
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user