160 Commits

Author SHA1 Message Date
Filippo Scognamiglio
a2be08e886 Change submodule to point to older qmltermwidget release. 2018-11-25 09:06:03 +01:00
Filippo Scognamiglio
1cf6e2743b Merge pull request #432 from picospuch/master
Refine alt(meta) and ctrl behaviour for emacs on macos
2018-04-28 00:00:40 +02:00
spuch
68a5f0dd4b update submodule 2018-03-08 20:00:15 +08:00
spuch
654f8d0761 fix alt(meta), ctrl for emacs on macos 2018-03-06 17:33:30 +08:00
Filippo Scognamiglio
dd799cf5c0 Merge pull request #375 from tgerczei/master
Gentoo package version bump announced
2018-02-25 12:24:57 +01:00
Filippo Scognamiglio
b8be28619a Merge pull request #380 from leereilly/macOS-updated
macOS updates
2018-02-25 12:22:28 +01:00
Filippo Scognamiglio
ca012a1c80 Merge pull request #390 from suve/fixes-image-sizes-in-appdata-file
Make screenshot sizes in appdata XML match actual image sizes
2018-02-25 12:09:22 +01:00
Filippo Scognamiglio
50de42ec9f Merge pull request #391 from suve/improves-manpage
Improve manpage
2018-02-25 12:08:01 +01:00
Filippo Scognamiglio
38c9dd50ff Merge pull request #400 from hroncok/patch-1
cool-retro-term made it to Fedora official repos
2018-02-25 12:04:30 +01:00
Filippo Scognamiglio
27e4e3444a Merge pull request #401 from ways/master
Instrucitons for ubuntu 17.10. Fixes https://github.com/Swordfish90/c…
2018-02-25 12:03:41 +01:00
Filippo Scognamiglio
a8935da416 Merge branch 'master' into master 2018-02-25 12:03:13 +01:00
Filippo Scognamiglio
beb56c527b Merge pull request #405 from maiki/patch-1
Fix bad spacing and punctuation in readme
2018-02-25 11:55:31 +01:00
Filippo Scognamiglio
5e3caedaf6 Merge pull request #407 from mason1920/patch-1
Change apt-get to apt, and added stretch.
2018-02-25 11:54:23 +01:00
Filippo Scognamiglio
0be17716f5 Merge pull request #409 from haesbaert/master
Add a -T option that sets window title.
2018-02-25 11:53:42 +01:00
Filippo Scognamiglio
dda5fbc330 Increase baseScaling font for knight profile to improve consistency. 2018-02-25 11:50:23 +01:00
Filippo Scognamiglio
ffc16c6814 Merge branch 'larsbrinkhoff-knight' 2018-02-25 11:47:51 +01:00
Filippo Scognamiglio
705371d7ee Merge branch 'knight' of https://github.com/larsbrinkhoff/cool-retro-term into larsbrinkhoff-knight 2018-02-25 11:37:11 +01:00
Filippo Scognamiglio
7c7810836e Merge pull request #414 from avh-on1/patch-1
Add Debian Stretch build and run dependencies
2018-02-22 09:17:20 +01:00
Filippo Scognamiglio
af9c039dcb Merge pull request #419 from tomchiverton/patch-3
Ubuntu 17.10 PPA
2018-02-22 09:15:14 +01:00
Tom Chiverton
7325835c3f Ubuntu 17.10 PPA 2018-02-10 14:40:56 +00:00
Lars Brinkhoff
e7aa72a7ab Add a Knight TV profile. 2018-01-25 06:27:21 +01:00
Lars Brinkhoff
35c48de638 Add Knight TV font. As used by the MIT AI Lab. 2018-01-25 06:27:11 +01:00
Alex Von Hoene
ae50ed980f Added Debian Stretch dependencies
In addition to what Debian Jessie needs, Stretch also needs qml-module-qt-labs-settings and qml-module-qt-labs-folderlistmodel
These packages are not needed to build cool-retro-term, but they are needed to run it.
2018-01-15 16:43:55 -05:00
Alex Von Hoene
1d6f0445f7 add Debian Stretch to dependency instructions
I've confirmed that the same instructions for Jessie also work for Stretch
2018-01-15 16:31:30 -05:00
Christiano Haesbaert
799ef63b81 Add a -T option that sets window title.
`cool-retro-term -T myretrosession` sets window name to 'myretrosession'

This is useful especially for people who rely on wmctrl to change windows, now I
can do `wmctrl -a myretrocession` to focus on cool-retro-term.

-T was chosen since it matches classic xterm(1) and other terminal emulators
2018-01-06 20:20:45 +01:00
mason1920
6b22a0c03a Change apt-get to apt, and added stretch. 2018-01-02 11:45:08 -05:00
maiki
2d54638f49 Update readme
Periods, amirite?
2017-12-21 21:17:45 -08:00
Lars Falk-Petersen
8adec835f6 Instrucitons for ubuntu 17.10. Fixes https://github.com/Swordfish90/cool-retro-term/issues/396 2017-12-12 15:24:20 +01:00
Miro Hrončok
a34654a9a9 cool-retro-term made it to Fedora official repos 2017-12-12 00:37:25 +01:00
suve
b7c8108ad5 Improve manpage: add description and missing options, improve formatting 2017-11-06 21:51:16 +01:00
suve
c34c3c3654 Make screenshot sizes in appdata XML match actual image sizes 2017-11-05 00:04:45 +01:00
Lee Reilly
88988dd3e1 Add some GIFs? 2017-10-29 16:07:24 -07:00
Lee Reilly
351b98189f Updated OS X → macOS 2017-10-29 16:04:23 -07:00
Tamás Gérczei
e6a049c214 Gentoo package version bump announced 2017-10-27 21:00:53 +02:00
Filippo Scognamiglio
b9d027291e Bump version to 1.0.1. 2017-10-27 18:28:43 +02:00
Filippo Scognamiglio
eb00915c39 Merge pull request #373 from rbanffy/master
Updated 3278 font and associated files
2017-10-27 11:03:48 +02:00
Filippo Scognamiglio
828a22a939 Update submodule to include fix for High Sierra. 2017-10-27 11:02:43 +02:00
Ricardo Bánffy
875d02458e Updated 3278 font and associated files 2017-10-25 22:08:23 +01:00
Filippo Scognamiglio
a6d6ced1ad Merge pull request #340 from alexmyczko/patch-6
update copyright years
2017-10-07 11:58:45 +02:00
Filippo Scognamiglio
7e9855881b Merge pull request #354 from alexmyczko/patch-7
fix typos
2017-10-07 11:56:58 +02:00
Filippo Scognamiglio
cf4e7ca279 Merge pull request #360 from tgerczei/master
Gentoo overlay source change note
2017-10-07 11:56:09 +02:00
Filippo Scognamiglio
0a9b2b0bac Merge pull request #364 from matthiasbalke/patch-1
fixed markdown headings
2017-10-07 11:35:46 +02:00
Filippo Scognamiglio
f6b0a63410 Merge pull request #365 from scruss/master
Update README.md
2017-10-07 11:35:15 +02:00
Stewart C. Russell
7563cd4a08 Update README.md
added Ubuntu 17.04 dependencies
2017-09-09 13:31:11 -04:00
Matthias Balke
851f6d6624 fixed markdown headings 2017-09-06 09:48:01 +02:00
Tamás Gérczei
cd97acfcc1 Gentoo overlay source change note 2017-08-27 19:50:24 +02:00
Alex
613a2c5583 fix typos 2017-07-21 13:01:18 +02:00
Alex
32e95185ad update copyright years 2017-03-30 16:34:53 +02:00
Filippo Scognamiglio
e48719fa44 Merge pull request #322 from rbanffy/master
Update 3270 terminal font
2017-02-01 12:14:26 +01:00
Filippo Scognamiglio
348e5a4e19 Merge pull request #326 from barak/tweaks
Minor tweaks, either fixes or tiny additions done while updating debian packaging
2017-02-01 12:13:48 +01:00
Barak A. Pearlmutter
8d28972323 Merge remote-tracking branch 'b0n541/master' into tweaks 2017-01-25 13:16:39 +00:00
Barak A. Pearlmutter
d74bd0a39b version 1.0 2016-12-18 22:53:16 +00:00
Barak A. Pearlmutter
07307a6d8f typo 2016-12-18 22:53:16 +00:00
Barak A. Pearlmutter
151fb6e58d add --version, aka -v, command line option 2016-12-18 22:53:16 +00:00
Barak A. Pearlmutter
888ab49e44 add comment listing bugs in --help option output 2016-12-18 22:53:16 +00:00
Jan Schäfer
24dad37da7 Removed duplicated packages from Ubuntu 16.10 2016-12-06 04:44:47 +01:00
Jan Schäfer
eb6a41556d Updated install of needed packages for Ubuntu 16.10 2016-12-06 04:11:50 +01:00
Ricardo Banffy
5534cc4457 Update 3270 terminal font 2016-11-26 20:21:41 +00:00
Filippo Scognamiglio
dde90fb5b7 Merge pull request #307 from alexmyczko/patch-2
Create manpage cool-retro-term.1
2016-08-30 18:12:43 +02:00
Filippo Scognamiglio
efb2f749aa Merge pull request #306 from alexmyczko/patch-1
Create watch
2016-08-30 18:12:23 +02:00
Filippo Scognamiglio
fbee977166 Merge pull request #303 from alex-spataru/master
Remember window size automatically
2016-08-30 18:11:36 +02:00
Alex
9f012b8ac8 Create cool-retro-term.1
a manpage
2016-08-22 17:04:26 +02:00
Alex
9c3a157a84 Create watch
watch file to be used by uscan(1)
2016-08-22 17:01:55 +02:00
Alex Spataru
b7f632077c Use provided settings database 2016-08-06 13:43:04 -05:00
Alex Spataru
bfab242344 Also save window position 2016-08-06 02:04:35 -05:00
Alex Spataru
6e54a96730 Save window size 2016-08-06 01:34:11 -05:00
Filippo Scognamiglio
69d35a749f Merge pull request #282 from tgerczei/master
Updated README.md
2016-05-20 15:16:58 +02:00
Filippo Scognamiglio
4745702909 Merge pull request #284 from EaterOA/master
Add custom command support
2016-05-20 15:16:45 +02:00
Vincent Wong
e94801ee02 Fix issue with custom command not saving on exit
If the user directly closes the settings window without triggering the
custom command Textfield's onEditingFinished (via unfocus or pressing
enter), the custom command may not save. This change adds a listener to
the Textfield so that if the settings window closes, the change will
always be recorded.
2016-04-07 18:15:37 -07:00
Vincent Wong
cc57fbdcd5 Profile-bound custom commands now execute
Rather than starting ksession right away, PreprocessedTerminal now waits
for ApplicationSettings to finish loading custom command settings from
storage. If a custom command is specified, PreprocessedTerminal will
tokenize it and pass it onto ksession as a shell program similar to the
-e option. If both a -e command and a custom command is specified, the
-e version overrides the custom command.
2016-03-21 12:55:09 -07:00
Vincent Wong
674097f672 Add new custom command settings in General
These custom commands are profile-specific
2016-03-21 12:48:18 -07:00
Tamas Gerczei
472561c1b8 Switched the Gentoo overlay to a new, trustable certificate so no exception is necessary any longer 2016-03-13 21:42:13 +01:00
Filippo Scognamiglio
d345be2114 Merge pull request #280 from rbanffy/master
Update 3270 font to v1.2.11, with added glyphs
2016-03-13 15:36:22 +01:00
Filippo Scognamiglio
c505dfaa11 Remove Envy Code Font. 2016-03-13 15:33:40 +01:00
Ricardo Bánffy
1574d5ab4c Update README 2016-02-29 21:30:54 +00:00
Ricardo Bánffy
0a24f497cc Update 3270 font to v1.2.11, with added glyphs 2016-02-29 17:24:31 +00:00
Filippo Scognamiglio
9e629780ad Merge pull request #274 from barak/master
Debian Packaging Updates
2016-02-20 13:08:31 +01:00
Filippo Scognamiglio
98a842655a Merge pull request #275 from rbanffy/master
Update 3270 font - better hints, new glyphs
2016-02-20 13:08:09 +01:00
Filippo Scognamiglio
53943878c1 Merge pull request #276 from Wazutiman/patch-1
Additional dependency for fedora
2016-02-20 13:07:57 +01:00
Filippo Scognamiglio
34360c1603 Merge pull request #278 from MichaelNeas/master
OSX Port Update
2016-02-20 13:07:37 +01:00
Michael Neas
356448bb70 OSX Port Update 2016-02-18 11:47:16 -05:00
Shawn Dooley
103cd641a7 Additional dependency for fedora 2016-01-29 23:44:41 -05:00
Ricardo Bánffy
d7fb0b3021 Update 3270 font - better hints, new glyphs 2016-01-27 08:52:41 -02:00
Barak A. Pearlmutter
7bf79ec645 placate desktop-file-validate and lintian
$ lintian cool-retro-term_*.deb | egrep desktop
I: cool-retro-term: desktop-entry-lacks-keywords-entry usr/share/applications/cool-retro-term.desktop
W: cool-retro-term: desktop-mime-but-no-exec-code usr/share/applications/cool-retro-term.desktop

$ desktop-file-validate cool-retro-term.desktop
cool-retro-term.desktop: hint: value "Qt;System;Utility;TerminalEmulator;" for key "Categories" in group "Desktop Entry" contains more than one main category; application might appear more than once in the application menu
2016-01-10 14:53:58 +00:00
Barak A. Pearlmutter
dd0e904432 debian/control section x11 per policy; provides x-terminal-emulator 2015-12-18 17:16:49 +00:00
Barak A. Pearlmutter
561739ba8b debian/control packaging repo 2015-12-18 17:04:53 +00:00
Barak A. Pearlmutter
b2596c0580 debian/control homepage 2015-12-18 16:14:12 +00:00
Barak A. Pearlmutter
b1456b4fda typo: informations ↝ information 2015-12-18 16:09:54 +00:00
Barak A. Pearlmutter
923cf9b2bb git ignore debian build debris 2015-12-18 16:00:41 +00:00
Filippo Scognamiglio
273917060b Merge pull request #266 from rbanffy/master
Update 3270 font to latest version
2015-12-15 18:27:54 +01:00
Filippo Scognamiglio
7ba2046d14 Merge pull request #270 from tomchiverton/patch-2
Ubuntu versions README updated
2015-12-15 18:26:13 +01:00
Tom Chiverton
be145c12a3 Ubuntu versions updated 2015-12-09 18:46:12 +00:00
Ricardo Bánffy
759e796fdd Re-add link to original project 2015-10-18 23:15:04 -02:00
Ricardo Bánffy
9121beaf8d Update 3270 font to latest version 2015-10-18 23:13:05 -02:00
Tamas Gerczei
89472dfc54 Merge remote-tracking branch 'upstream/master' 2015-10-16 12:20:16 +02:00
Tamas Gerczei
eb739195ea Merge branch 'master' of https://github.com/tgerczei/cool-retro-term 2015-10-15 20:11:23 +02:00
Tamas Gerczei
2da0bc9535 ebuild updated 2015-10-15 20:11:14 +02:00
Filippo Scognamiglio
7255a162e9 Merge pull request #254 from tgerczei/master
Update README.md
2015-08-16 11:47:29 +02:00
tgerczei
a479506dcf Update README.md
revision bump
2015-08-14 15:45:51 +02:00
Filippo Scognamiglio
cf62e85172 Merge pull request #249 from Swordfish90/unstable
Update engine. This fixes the CTRL+Space behaviour.
2015-06-20 16:48:39 +02:00
Filippo Scognamiglio
c0ea7acd28 Merge pull request #246 from GottZ/patch-1
Update readme.md to include install instructions for arch official repository.
2015-05-19 17:18:47 +02:00
Jan-Stefan Janetzky
7923db38c8 arch has it in community/
there is a precompiled version of cool-retro-term inside the official arch linux community repository.
2015-05-18 18:03:30 +02:00
Filippo Scognamiglio
bf9937619e Update engine. This fixes the CTRL+Space behaviour. 2015-04-03 19:17:40 +02:00
Filippo Scognamiglio
e5fe99eda9 Merge pull request #230 from andresgutierrez/master
Instructions for building on MacOSX with MacPorts
2015-02-24 01:29:38 +01:00
Andres Gutierrez
eded375cf6 Instructions for building on MacOSX with MacPorts 2015-02-23 15:34:47 -05:00
Filippo Scognamiglio
1b619a7a36 Merge pull request #223 from rbanffy/master
Update 3270 font
2015-02-16 16:06:36 +01:00
Ricardo Bánffy
5d79e475d1 update 3270 font 2015-02-15 13:24:56 -02:00
Filippo Scognamiglio
cb2b9dd3a2 Merge pull request #222 from tgerczei/master
Update README.md
2015-02-15 14:50:25 +01:00
tgerczei
04f819b331 Update README.md
Updated instructions for Gentoo to install first release.
2015-02-15 14:28:16 +01:00
Filippo Scognamiglio
5807ea001a Merge branch 'unstable' which fixes default precisions on ES systems.
Conflicts:
	app/qml/PreprocessedTerminal.qml
	app/qml/ShaderTerminal.qml
	app/qml/frames/utils/TerminalFrame.qml
2015-01-29 03:17:05 +01:00
Filippo Scognamiglio
28d92dc68b Remove default precision on non ES platforms. 2015-01-28 11:14:42 +01:00
Filippo Scognamiglio
91a221529f Merge pull request #216 from Swordfish90/revert-215-master
Revert "Fix: added missing default precision directives in fragment shad...
2015-01-28 10:10:03 +00:00
Filippo Scognamiglio
844af0d93f Revert "Fix: added missing default precision directives in fragment shaders" 2015-01-28 11:09:30 +01:00
Filippo Scognamiglio
6912d74d71 Merge pull request #215 from theridane/master
Fix: added missing default precision directives in fragment shaders
2015-01-28 09:46:22 +00:00
Martin Sekera
f1a6c0fcee Fix: added missing default precision directives in fragment shaders 2015-01-27 23:48:05 +01:00
Filippo Scognamiglio
edad3ab28c Merge pull request #214 from x-a-n-a-x/patch-1
Add Bountysource information to README.md
2015-01-25 10:36:30 +00:00
x-a-n-a-x
fb7e086770 Update README.md
Add a paragraph about bounties and bountysource.
2015-01-25 11:29:25 +01:00
Filippo Scognamiglio
6446f1d1bc Merge pull request #213 from Swordfish90/unstable
Mege latest changes for final version.
2015-01-24 18:16:52 +00:00
Filippo Scognamiglio
01f391dea3 Fix: wrong default font. 2015-01-24 19:11:54 +01:00
Filippo Scognamiglio
5b635abb38 Update README.md with new screenshots and bump version to 1.0.0. 2015-01-24 18:54:08 +01:00
Filippo Scognamiglio
54c52b230a Reorganize FPS slider. 2015-01-24 18:06:37 +01:00
Filippo Scognamiglio
40eb51e5eb Improve look of glow line. 2015-01-22 01:44:30 +01:00
Filippo Scognamiglio
546c4f36f0 Fix scanlines on high-dpi screens. 2015-01-20 03:35:47 +01:00
Filippo Scognamiglio
2911960482 Fix merge conflicts. 2015-01-20 01:14:51 +01:00
Filippo Scognamiglio
265e19def8 Revert invisibility of spacing item in settings dialog. 2015-01-20 01:05:27 +01:00
Filippo Scognamiglio
2bc88768b6 Reduce minimum scaling value and fix aliasing issues with small fonts and rasterization. 2015-01-20 00:57:23 +01:00
Filippo Scognamiglio
32f7923652 Fix: use arrow cursor when terminal application uses mouse. 2015-01-19 18:20:23 +01:00
Filippo Scognamiglio
e379f05aca Merge pull request #212 from Swordfish90/fast-burnin-3
Improved burnin. This is a very important optimizatoin for mesa linux ma...
2015-01-19 17:17:21 +00:00
Filippo Scognamiglio
a7bab660e9 Improved burnin. This is a very important optimizatoin for mesa linux machines. 2015-01-19 17:31:37 +01:00
Filippo Scognamiglio
1bcb85968b Merge pull request #211 from rbanffy/master
Correct rendering issue in 3270 font.
2015-01-17 10:24:46 +00:00
Ricardo Bánffy
4adf13539a Correct rendering issue (see https://raw.githubusercontent.com/wiki/rbanffy/3270font/aepw.png) 2015-01-16 21:44:34 -02:00
Filippo Scognamiglio
8b47c5633a Merge pull request #210 from KAMiKAZOW/patch-2
rm pixmap
2015-01-14 17:08:31 +00:00
KAMiKAZOW
cb1e3f1b76 rm pixmap
because it's redundant
2015-01-14 01:17:49 +01:00
Filippo Scognamiglio
92ef89d5d2 Merge pull request #207 from KAMiKAZOW/patch-1
Install icon
2015-01-13 21:38:06 +00:00
Filippo Scognamiglio
b8fd9d6c45 Merge pull request #209 from Swordfish90/install-icons
Install icons
2015-01-13 21:37:39 +00:00
Filippo Scognamiglio
0c17ca115e Set window application icon. 2015-01-12 22:35:49 +01:00
Filippo Scognamiglio
505a840574 Install icons. 2015-01-12 21:51:27 +01:00
KAMiKAZOW
56d742c1d2 Install icon
Install CRT icon, minor other things
2015-01-12 15:46:52 +01:00
Filippo Scognamiglio
28c66fa689 Merge pull request #204 from tomchiverton/patch-1
Add link to Ubuntu 14.04 PPA to readmd
2015-01-10 17:59:32 +00:00
Tom Chiverton
ceea1339d0 Add link to Ubuntu 14.04 PPA 2015-01-10 16:54:23 +00:00
Filippo Scognamiglio
8aea50fd2b Merge branch 'unstable' of https://github.com/Swordfish90/cool-retro-term into unstable 2015-01-08 03:56:06 +01:00
Filippo Scognamiglio
166e1f40fe Misc fixes in settings dialog. 2015-01-08 03:55:19 +01:00
Filippo Scognamiglio
415dcafee3 Merge pull request #201 from Swordfish90/unstable
Unstable
2015-01-07 11:43:09 +01:00
Filippo Scognamiglio
0399a6eb3c Adjust fixedsys-excelsior baseScaling. 2015-01-07 11:23:59 +01:00
Filippo Scognamiglio
ac70da5b38 Add Fixedsys Excelsior font. 2015-01-07 11:16:09 +01:00
Filippo Scognamiglio
5ad20f6b4e Merge pull request #200 from Swordfish90/unstable
Unstable
2015-01-06 02:37:22 +01:00
Filippo Scognamiglio
283aa92579 Merge pull request #199 from Swordfish90/improve-burn-in
Burnin is now subtractive. Better looking and more predictable.
2015-01-06 02:30:18 +01:00
Filippo Scognamiglio
a24cbbcc93 Burnin is now subtractive. Better looking and more predictable. 2015-01-06 01:35:35 +01:00
Filippo Scognamiglio
17b70b47ce Fix OSX keys issues. 2015-01-05 22:35:07 +01:00
Filippo Scognamiglio
295912fbb3 Reduce minimum quality and allower finer tuning of performance settings. 2015-01-05 22:08:06 +01:00
Filippo Scognamiglio
859adf966a Use IBeamCursor instead of normal arrow. 2015-01-05 22:01:14 +01:00
Filippo Scognamiglio
cf404f980d Use already available shaderEffectSource and improve bloom look at low quality by limiting minimum radius. 2015-01-05 21:47:42 +01:00
Filippo Scognamiglio
6979abe96a Merge pull request #198 from Swordfish90/fix-color-dialog-2
Fix bad behaving color dialog on some platforms.
2015-01-02 22:16:33 +01:00
Filippo Scognamiglio
c685cbd640 Merge pull request #197 from Swordfish90/add-pixelated-fonts
Add pixelated fonts and use them as default
2015-01-02 22:15:11 +01:00
Filippo Scognamiglio
4934d78cea Fix font names and default profiles. 2015-01-02 21:46:59 +01:00
Filippo Scognamiglio
c6716e1b1a Fix: texture quality and burnin sliders now have effect on image quality when low res fornts are used. 2015-01-02 12:09:25 +01:00
Filippo Scognamiglio
cc1d77ea32 Fix: font names and order. Added compatible scanlines and pixels fonts. 2014-12-31 16:40:30 +01:00
Filippo Scognamiglio
3e7ac0d87d Optimize burn-in effect when low res font is used. We can actually use a much lower-res accumulator too. 2014-12-31 14:36:53 +01:00
Filippo Scognamiglio
a6952251de Make the upscaled fonts really upscaled. (Faster expecially at high resolutions). 2014-12-31 13:46:03 +01:00
Filippo Scognamiglio
d10bf29493 Fix bad behaving color dialog on some platforms. 2014-12-30 10:25:33 +01:00
46 changed files with 902 additions and 288 deletions

1
.gitmodules vendored
View File

@@ -1,3 +1,4 @@
[submodule "qmltermwidget"] [submodule "qmltermwidget"]
path = qmltermwidget path = qmltermwidget
url = https://github.com/Swordfish90/qmltermwidget url = https://github.com/Swordfish90/qmltermwidget
branch = 0.1.x

110
README.md
View File

@@ -1,39 +1,59 @@
#cool-retro-term # cool-retro-term
##Description |> Default Amber|C:\ IBM DOS|$ Default Green|
|---|---|---|
|![Default Amber Cool Retro Term](https://user-images.githubusercontent.com/121322/32070717-16708784-ba42-11e7-8572-a8fcc10d7f7d.gif)|![IBM DOS](https://user-images.githubusercontent.com/121322/32070716-16567e5c-ba42-11e7-9e64-ba96dfe9b64d.gif)|![Default Green Cool Retro Term](https://user-images.githubusercontent.com/121322/32070715-163a1c94-ba42-11e7-80bb-41fbf10fc634.gif)|
## Description
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) developed by me: https://github.com/Swordfish90/qmltermwidget .
This terminal emulator requires Qt 5.2 or higher to run. This terminal emulator works under Linux and macOS and requires Qt 5.2 or higher.
##Screenshots ## Screenshots
![Image](<http://i.imgur.com/NUfvnlu.png>) ![Image](<http://i.imgur.com/I6wq1cC.png>)
![Image](<http://i.imgur.com/4LpfLF8.png>) ![Image](<http://i.imgur.com/12EqlpL.png>)
![Image](<http://i.imgur.com/MMmM6Ht.png>) ![Image](<http://i.imgur.com/Lx0acQz.jpg>)
##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: You can either build cool-retro-term yourself (see below) or walk the easy way and install one of these packages:
Users of Fedora and openSUSE can grab a package from [Open Build Service](http://software.opensuse.org/package/cool-retro-term). Fedora has the `cool-retro-term` in the offcial repositories. All you have to do is `sudo dnf install cool-retro-term`.
Users of openSUSE can grab a package from [Open Build Service](http://software.opensuse.org/package/cool-retro-term).
Arch users can install this [package](https://aur.archlinux.org/packages/cool-retro-term-git/) directly via the [AUR](https://aur.archlinux.org): 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 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 pacman -S cool-retro-term
# wget --no-check-certificate https://www.gerczei.eu/files/gerczei.xml -O /etc/layman/overlays/gerczei.xml
# layman -f -a qt -a gerczei to install precompiled from community repository.
# ACCEPT_KEYWORDS="~*" emerge x11-terms/cool-retro-term::gerczei
Gentoo users can now install the second release "1.0.1" from a 3rd-party repository preferably via layman:
USE="git" emerge app-portage/layman
wget https://www.gerczei.eu/files/gerczei.xml -O /etc/layman/overlays/gerczei.xml
layman -f -a qt -a gerczei # those who've added the repo before 27/08/17 should remove, update and add it again as its source has changed
ACCEPT_KEYWORDS="~*" emerge =x11-terms/cool-retro-term-1.0.1::gerczei
The live ebuild (version 9999-r1) tracking the bleeding-edge WIP codebase also remains available.
A word of warning: USE flags and keywords are to be added to portage's configuration files and every emerge operation should be executed with '-p' (short option for --pretend) appended to the command line first as per best practice! 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!
##Build instructions (Linux) Ubuntu users of 14.04 LTS (Trusty) up to 15.10 (Wily) can use [this PPA](https://launchpad.net/~bugs-launchpad-net-falkensweb).
##Dependencies Ubuntu 17.10 can use [this PPA](https://launchpad.net/%7Evantuz/+archive/ubuntu/cool-retro-term)
macOS users can grab the latest dmg from the release page: https://github.com/Swordfish90/cool-retro-term/releases
## Build instructions (Linux)
## Dependencies
Make sure to install these first. Make sure to install these first.
--- ---
@@ -44,20 +64,44 @@ Make sure to install these first.
--- ---
**Debian Jessie** **Ubuntu 16.10**
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2 sudo apt-get install build-essential 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
---
**Debian Stretch and Jessie**
sudo apt install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2
---
**Debian Stretch**
sudo apt-get install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2 qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel
--- ---
**Fedora** **Fedora**
This command should install the known fedora dependencies: 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: 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
--- ---
@@ -86,7 +130,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 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: Once you installed all dependencies (Qt is installed and in your path) you need to compile and run the application:
```bash ```bash
@@ -103,11 +147,13 @@ qmake && make
./cool-retro-term ./cool-retro-term
``` ```
##Build instructions (OSX) ## Build instructions (macOS)
1. Install [Xcode](https://developer.apple.com/xcode/) and agree to the licence agreement 1. Install [Xcode](https://developer.apple.com/xcode/) and agree to the licence agreement
2. Enter the following commands into the terminal: 2. Enter the following commands into the terminal:
**Brew**
```sh ```sh
brew install qt5 brew install qt5
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
@@ -121,5 +167,19 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
open cool-retro-term.app open cool-retro-term.app
``` ```
##Donations **MacPorts**
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&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted) .
```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&currency_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.

View File

@@ -20,3 +20,17 @@ RESOURCES += qml/resources.qrc
target.path += /usr/bin/ target.path += /usr/bin/
INSTALLS += target INSTALLS += target
# Install icons
unix {
icon32.files = icons/32x32/cool-retro-term.png
icon32.path = /usr/share/icons/hicolor/32x32/apps
icon64.files = icons/64x64/cool-retro-term.png
icon64.path = /usr/share/icons/hicolor/64x64/apps
icon128.files = icons/128x128/cool-retro-term.png
icon128.path = /usr/share/icons/hicolor/128x128/apps
icon256.files = icons/256x256/cool-retro-term.png
icon256.path = /usr/share/icons/hicolor/256x256/apps
INSTALLS += icon32 icon64 icon128 icon256
}

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -5,6 +5,7 @@
#include <QStringList> #include <QStringList>
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
#include <QIcon>
#include <QDebug> #include <QDebug>
#include <stdlib.h> #include <stdlib.h>
@@ -24,25 +25,52 @@ QString getNamedArgument(QStringList args, QString name)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
// Some environmental variable are necessary on certain platforms.
// 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_MAC)
// This allows UTF-8 characters usage in OSX.
setenv("LC_CTYPE", "UTF-8", 1);
#endif
QApplication app(argc, argv); QApplication app(argc, argv);
// set application attributes
// Has no effects, see https://bugreports.qt.io/browse/QTBUG-51293
// app.setAttribute(Qt::AA_MacDontSwapCtrlAndMeta, true);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
FileIO fileIO; FileIO fileIO;
#if !defined(Q_OS_MAC)
app.setWindowIcon(QIcon::fromTheme("cool-retro-term", QIcon(":../icons/32x32/cool-retro-term.png")));
#else
app.setWindowIcon(QIcon(":../icons/32x32/cool-retro-term.png"));
#endif
// 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")) { 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() << "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() << " --default-settings Run cool-retro-term with the default settings";
qDebug() << " --workdir <dir> Change working directory to 'dir'"; 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() << " -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() << " --fullscreen Run cool-retro-term in fullscreen.";
qDebug() << " -p|--profile <prof> Run cool-retro-term with the given profile."; qDebug() << " -p|--profile <prof> Run cool-retro-term with the given profile.";
qDebug() << " -h|--help Print this help."; 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; 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;
if (args.contains("-e")) { if (args.contains("-e")) {
@@ -56,13 +84,21 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("workdir", getNamedArgument(args, "--workdir", "$HOME")); engine.rootContext()->setContextProperty("workdir", getNamedArgument(args, "--workdir", "$HOME"));
engine.rootContext()->setContextProperty("fileIO", &fileIO); engine.rootContext()->setContextProperty("fileIO", &fileIO);
engine.rootContext()->setContextProperty("devicePixelRatio", app.devicePixelRatio());
// Manage import paths for Linux and OSX. // Manage import paths for Linux and OSX.
QStringList importPathList = engine.importPathList(); QStringList importPathList = engine.importPathList();
importPathList.prepend(QCoreApplication::applicationDirPath() + "/qmltermwidget"); importPathList.prepend(QCoreApplication::applicationDirPath() + "/qmltermwidget");
importPathList.prepend(QCoreApplication::applicationDirPath() + "/../PlugIns"); importPathList.prepend(QCoreApplication::applicationDirPath() + "/../PlugIns");
importPathList.prepend(QCoreApplication::applicationDirPath() + "/../../../qmltermwidget");
engine.setImportPathList(importPathList); 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. // Quit the application when the engine closes.
QObject::connect((QObject*) &engine, SIGNAL(quit()), (QObject*) &app, SLOT(quit())); QObject::connect((QObject*) &engine, SIGNAL(quit()), (QObject*) &app, SLOT(quit()));

View File

@@ -19,17 +19,30 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.0
import "utils.js" as Utils import "utils.js" as Utils
QtObject{ QtObject{
property string version: "1.0.0 RC1" property string version: "1.0.1"
// GENERAL SETTINGS /////////////////////////////////////////////////// // STATIC CONSTANTS ////////////////////////////////////////////////////////
readonly property real minimumFontScaling: 0.25
readonly property real maximumFontScaling: 2.50
// GENERAL SETTINGS ///////////////////////////////////////////////////////
property int x: 100
property int y: 100
property int width: 1024
property int height: 768
property bool fullscreen: false property bool fullscreen: false
property bool showMenubar: true property bool showMenubar: true
property string wintitle: "cool-retro-term"
property real windowOpacity: 1.0 property real windowOpacity: 1.0
property real ambientLight: 0.2 property real ambientLight: 0.2
property real contrast: 0.85 property real contrast: 0.85
@@ -45,6 +58,9 @@ QtObject{
// PROFILE SETTINGS /////////////////////////////////////////////////////// // PROFILE SETTINGS ///////////////////////////////////////////////////////
property bool useCustomCommand: false
property string customCommand: ""
property string _backgroundColor: "#000000" property string _backgroundColor: "#000000"
property string _fontColor: "#ff8100" property string _fontColor: "#ff8100"
property string saturatedColor: Utils.mix(Utils.strToColor("#FFFFFF"), Utils.strToColor(_fontColor), saturationColor * 0.5) property string saturatedColor: Utils.mix(Utils.strToColor("#FFFFFF"), Utils.strToColor(_fontColor), saturationColor * 0.5)
@@ -81,11 +97,15 @@ QtObject{
property real fontScaling: 1.0 property real fontScaling: 1.0
property real fontWidth: 1.0 property real fontWidth: 1.0
property var fontNames: ["HERMIT", "COMMODORE_PET", "COMMODORE_PET"] property bool lowResolutionFont: false
property var fontNames: ["TERMINUS_SCALED", "COMMODORE_PET", "COMMODORE_PET"]
property var fontlist: fontManager.item.fontlist property var fontlist: fontManager.item.fontlist
signal terminalFontChanged(string fontSource, int pixelSize, int lineSpacing, real screenScaling, real fontWidth) signal terminalFontChanged(string fontSource, int pixelSize, int lineSpacing, real screenScaling, real fontWidth)
signal initializedSettings()
property Loader fontManager: Loader{ property Loader fontManager: Loader{
states: [ states: [
State { when: rasterization == no_rasterization State { when: rasterization == no_rasterization
@@ -111,12 +131,12 @@ QtObject{
} }
function incrementScaling(){ function incrementScaling(){
fontScaling = Math.min(fontScaling + 0.05, 2.50); fontScaling = Math.min(fontScaling + 0.05, maximumFontScaling);
handleFontChanged(); handleFontChanged();
} }
function decrementScaling(){ function decrementScaling(){
fontScaling = Math.max(fontScaling - 0.05, 0.50); fontScaling = Math.max(fontScaling - 0.05, minimumFontScaling);
handleFontChanged(); handleFontChanged();
} }
@@ -135,6 +155,8 @@ QtObject{
var screenScaling = fontManager.item.screenScaling; var screenScaling = fontManager.item.screenScaling;
var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth; var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth;
lowResolutionFont = fontManager.item.lowResolutionFont;
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth); terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth);
} }
@@ -196,6 +218,10 @@ QtObject{
function composeSettingsString(){ function composeSettingsString(){
var settings = { var settings = {
fps: fps, fps: fps,
x: x,
y: y,
width: width,
height: height,
windowScaling: windowScaling, windowScaling: windowScaling,
showTerminalSize: showTerminalSize, showTerminalSize: showTerminalSize,
fontScaling: fontScaling, fontScaling: fontScaling,
@@ -230,7 +256,9 @@ QtObject{
ambientLight: ambientLight, ambientLight: ambientLight,
windowOpacity: windowOpacity, windowOpacity: windowOpacity,
fontName: fontNames[rasterization], fontName: fontNames[rasterization],
fontWidth: fontWidth fontWidth: fontWidth,
useCustomCommand: useCustomCommand,
customCommand: customCommand
} }
return settings; return settings;
} }
@@ -274,6 +302,11 @@ QtObject{
fps = settings.fps !== undefined ? settings.fps: fps fps = settings.fps !== undefined ? settings.fps: fps
windowScaling = settings.windowScaling !== undefined ? settings.windowScaling : windowScaling 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 fontNames = settings.fontNames !== undefined ? settings.fontNames : fontNames
fontScaling = settings.fontScaling !== undefined ? settings.fontScaling : fontScaling fontScaling = settings.fontScaling !== undefined ? settings.fontScaling : fontScaling
@@ -318,6 +351,9 @@ QtObject{
fontNames[rasterization] = settings.fontName !== undefined ? settings.fontName : fontNames[rasterization]; fontNames[rasterization] = settings.fontName !== undefined ? settings.fontName : fontNames[rasterization];
fontWidth = settings.fontWidth !== undefined ? settings.fontWidth : fontWidth; fontWidth = settings.fontWidth !== undefined ? settings.fontWidth : fontWidth;
useCustomCommand = settings.useCustomCommand !== undefined ? settings.useCustomCommand : useCustomCommand
customCommand = settings.customCommand !== undefined ? settings.customCommand : customCommand
handleFontChanged(); handleFontChanged();
} }
@@ -367,47 +403,52 @@ QtObject{
property ListModel profilesList: ListModel{ property ListModel profilesList: ListModel{
ListElement{ ListElement{
text: "Default Amber" text: "Default Amber"
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.65,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"HERMIT","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 builtin: true
} }
ListElement{ ListElement{
text: "Default Green" text: "Default Green"
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"HERMIT","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 builtin: true
} }
ListElement{ ListElement{
text: "Default Scanlines" 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 builtin: true
} }
ListElement{ ListElement{
text: "Default Pixelated" 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 builtin: true
} }
ListElement{ ListElement{
text: "Apple ][" 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 builtin: true
} }
ListElement{ ListElement{
text: "Vintage" 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 builtin: true
} }
ListElement{ ListElement{
text: "IBM Dos" 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 builtin: true
} }
ListElement{ ListElement{
text: "IBM 3278" 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: "Knight TV"
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.45,"brightness":0.5,"burnIn":0.3,"chromaColor":0,"contrast":0.85,"customCommand":"","flickering":0.1,"fontColor":"#0ccc68","fontName":"Knight_TV","fontWidth":1,"frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0.16,"jitter":0,"rasterization":0,"rbgShift":0,"saturationColor":0,"screenCurvature":0.07,"staticNoise":0,"useCustomCommand":false,"windowOpacity":1}'
builtin: true builtin: true
} }
ListElement{ ListElement{
text: "Transparent Green" text: "Transparent Green"
obj_string: '{"ambientLight":0.2,"backgroundColor":"#000000","bloom":0.45,"brightness":0.5,"flickering":0.20,"contrast":0.85,"fontName":"HERMIT","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 builtin: true
} }
} }
@@ -445,10 +486,23 @@ QtObject{
fullscreen = true; fullscreen = true;
showMenubar = false; showMenubar = false;
} }
if (args.indexOf("-T") !== -1) {
wintitle = args[args.indexOf("-T") + 1]
}
initializedSettings();
} }
Component.onDestruction: { Component.onDestruction: {
storeSettings(); storeSettings();
storeCustomProfiles(); storeCustomProfiles();
//storage.dropSettings(); //DROPS THE SETTINGS!.. REMEMBER TO DISABLE ONCE ENABLED!! //storage.dropSettings(); //DROPS THE SETTINGS!.. REMEMBER TO DISABLE ONCE ENABLED!!
} }
// VARS ///////////////////////////////////////////////////////////////////
property Label _sampleLabel: Label {
text: "100%"
}
property real labelWidth: _sampleLabel.width
} }

View File

@@ -22,6 +22,8 @@ import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components"
RowLayout { RowLayout {
property alias name: check.text property alias name: check.text
@@ -35,7 +37,6 @@ RowLayout {
id: setting_component id: setting_component
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: 25
onValueChanged: { onValueChanged: {
check.checked = !(value == 0); check.checked = !(value == 0);
@@ -45,7 +46,7 @@ RowLayout {
CheckBox{ CheckBox{
id: check id: check
implicitWidth: 150 implicitWidth: 160
onClicked: { onClicked: {
if(!checked){ if(!checked){
checked = false; checked = false;
@@ -66,16 +67,8 @@ RowLayout {
newValue(value); newValue(value);
} }
} }
Text{ SizedLabel {
id: textfield anchors { top: parent.top; bottom: parent.bottom }
property string unformattedText: Math.round(((value - min_value) / (max_value - min_value)) * 100) text: Math.round(((value - min_value) / (max_value - min_value)) * 100) + "%"
text: formatNumber(unformattedText)
}
function formatNumber(num) {
var n = "" + num;
while (n.length < 3) {
n = " " + n;
}
return n + "%";
} }
} }

View File

@@ -22,8 +22,10 @@ import QtQuick 2.2
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1
Item { Item {
id: rootItem
signal colorSelected (color color) signal colorSelected (color color)
property color button_color property color color
property string name property string name
ColorDialog { ColorDialog {
@@ -33,13 +35,13 @@ Item {
visible: false visible: false
//This is a workaround to a Qt 5.2 bug. //This is a workaround to a Qt 5.2 bug.
onCurrentColorChanged: colorDialog.color = colorDialog.currentColor; onColorChanged: if (Qt.platform.os !== "osx") colorSelected(color)
onAccepted: colorSelected(color) onAccepted: if (Qt.platform.os === "osx") colorSelected(color)
} }
Rectangle{ Rectangle{
anchors.fill: parent anchors.fill: parent
radius: 10 radius: 10
color: button_color color: rootItem.color
border.color: "black" border.color: "black"
Glossy {} Glossy {}
Rectangle { Rectangle {
@@ -52,7 +54,7 @@ Item {
Text{ Text{
anchors.centerIn: parent anchors.centerIn: parent
z: parent.z + 1 z: parent.z + 1
text: name + ": " + button_color text: name + ": " + rootItem.color
} }
} }
MouseArea{ MouseArea{

View File

@@ -0,0 +1,35 @@
/*******************************************************************************
* Copyright (c) 2013 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
*
* This file is part of cool-retro-term.
*
* cool-retro-term is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
import QtQuick 2.0
import QtQuick.Controls 1.0
// This component is simply a label with a predefined size.
// Used to improve alignment.
Item {
property alias text: textfield.text
width: appSettings.labelWidth
Label{
id: textfield
anchors { right: parent.right; verticalCenter: parent.verticalCenter }
}
}

View File

@@ -29,6 +29,7 @@ QtObject{
property int lineSpacing: _font.lineSpacing property int lineSpacing: _font.lineSpacing
property real screenScaling: scaling * _font.baseScaling property real screenScaling: scaling * _font.baseScaling
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
property bool lowResolutionFont: true
property ListModel fontlist: ListModel{ property ListModel fontlist: ListModel{
ListElement{ ListElement{
@@ -49,6 +50,24 @@ QtObject{
baseScaling: 4.0 baseScaling: 4.0
fontWidth: 0.9 fontWidth: 0.9
} }
ListElement{
name: "TERMINUS_SCALED"
text: "Terminus (Modern)"
source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
lineSpacing: 1
pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0
}
ListElement{
name: "PRO_FONT_SCALED"
text: "Pro Font (Modern)"
source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
lineSpacing: 1
pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0
}
ListElement{ ListElement{
name: "APPLE_II" name: "APPLE_II"
text: "Apple ][ (1977)" text: "Apple ][ (1977)"

View File

@@ -29,6 +29,7 @@ QtObject{
property int lineSpacing: _font.lineSpacing property int lineSpacing: _font.lineSpacing
property real screenScaling: scaling * _font.baseScaling property real screenScaling: scaling * _font.baseScaling
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
property bool lowResolutionFont: true
property ListModel fontlist: ListModel{ property ListModel fontlist: ListModel{
ListElement{ ListElement{
@@ -49,6 +50,24 @@ QtObject{
baseScaling: 4.0 baseScaling: 4.0
fontWidth: 0.9 fontWidth: 0.9
} }
ListElement{
name: "TERMINUS_SCALED"
text: "Terminus (Modern)"
source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
lineSpacing: 1
pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0
}
ListElement{
name: "PRO_FONT_SCALED"
text: "Pro Font (Modern)"
source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
lineSpacing: 1
pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0
}
ListElement{ ListElement{
name: "APPLE_II" name: "APPLE_II"
text: "Apple ][ (1977)" text: "Apple ][ (1977)"

View File

@@ -25,117 +25,194 @@ QtObject{
property real scaling property real scaling
property var source: fontlist.get(selectedFontIndex).source property var source: fontlist.get(selectedFontIndex).source
property var _font: fontlist.get(selectedFontIndex) property var _font: fontlist.get(selectedFontIndex)
property int pixelSize: _font.pixelSize * scaling property bool lowResolutionFont: _font.lowResolutionFont
property int lineSpacing: pixelSize * _font.lineSpacing
property real screenScaling: 1.0 property int pixelSize: lowResolutionFont
? _font.pixelSize
: _font.pixelSize * scaling
property int lineSpacing: lowResolutionFont
? _font.lineSpacing
: pixelSize * _font.lineSpacing
property real screenScaling: lowResolutionFont
? _font.baseScaling * scaling
: 1.0
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
//In this configuration lineSpacing is proportional to pixelSize. // There are two kind of fonts: low resolution and high resolution.
// Low resolution font sets the lowResolutionFont property to true.
// They are rendered at a fixed pixel size and the texture is upscaled
// to fill the screen (they are much faster to render).
// High resolution fonts are instead drawn on a texture which has the
// size of the screen, and the scaling directly controls their pixels size.
// Those are slower to render but are not pixelated.
property ListModel fontlist: ListModel{ property ListModel fontlist: ListModel{
ListElement{ ListElement{
name: "HERMIT" name: "TERMINUS_SCALED"
text: "Hermit (Modern)"
source: "fonts/modern-hermit/Hermit-medium.otf"
lineSpacing: 0.05
pixelSize: 28
fontWidth: 1.0
}
ListElement{
name: "TERMINUS"
text: "Terminus (Modern)" text: "Terminus (Modern)"
source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf" source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
lineSpacing: 0.1 lineSpacing: 1
pixelSize: 35 pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "ENVY_CODE_R" name: "PRO_FONT_SCALED"
text: "Envy Code R (Modern)"
source: "fonts/modern-envy-code-r/Envy Code R.ttf"
lineSpacing: 0.1
pixelSize: 30
fontWidth: 1.0
}
ListElement{
name: "PRO_FONT"
text: "Pro Font (Modern)" text: "Pro Font (Modern)"
source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf" source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
lineSpacing: 0.1 lineSpacing: 1
pixelSize: 35 pixelSize: 12
baseScaling: 3.0
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "MONACO" name: "EXCELSIOR_SCALED"
text: "Monaco (Modern)" text: "Fixedsys Excelsior (Modern)"
source: "fonts/modern-monaco/monaco.ttf" source: "fonts/modern-fixedsys-excelsior/FSEX301-L2.ttf"
lineSpacing: 0.1 lineSpacing: 0
pixelSize: 30 pixelSize: 16
baseScaling: 2.4
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "INCONSOLATA" name: "COMMODORE_PET_SCALED"
text: "Inconsolata (Modern)"
source: "fonts/modern-inconsolata/Inconsolata.otf"
lineSpacing: 0.1
pixelSize: 35
fontWidth: 1.0
}
ListElement{
name: "COMMODORE_PET"
text: "Commodore PET (1977)" text: "Commodore PET (1977)"
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
lineSpacing: 0.2 lineSpacing: 2
pixelSize: 26 pixelSize: 8
baseScaling: 3.5
fontWidth: 0.7 fontWidth: 0.7
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "APPLE_II" name: "PROGGY_TINY_SCALED"
text: "Proggy Tiny (Modern)"
source: "fonts/modern-proggy-tiny/ProggyTiny.ttf"
lineSpacing: 1
pixelSize: 16
baseScaling: 3.0
fontWidth: 0.9
lowResolutionFont: true
}
ListElement{
name: "APPLE_II_SCALED"
text: "Apple ][ (1977)" text: "Apple ][ (1977)"
source: "fonts/1977-apple2/PrintChar21.ttf" source: "fonts/1977-apple2/PrintChar21.ttf"
lineSpacing: 0.2 lineSpacing: 2
pixelSize: 26 pixelSize: 8
baseScaling: 3.5
fontWidth: 0.8 fontWidth: 0.8
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "ATARI_400" name: "ATARI_400_SCALED"
text: "Atari 400-800 (1979)" text: "Atari 400-800 (1979)"
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF" source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
lineSpacing: 0.3 lineSpacing: 3
pixelSize: 26 pixelSize: 8
baseScaling: 3.5
fontWidth: 0.7 fontWidth: 0.7
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "COMMODORE_64" name: "COMMODORE_64_SCALED"
text: "Commodore 64 (1982)" text: "Commodore 64 (1982)"
source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf" source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
lineSpacing: 0.3 lineSpacing: 3
pixelSize: 26 pixelSize: 8
baseScaling: 3.5
fontWidth: 0.7 fontWidth: 0.7
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "ATARI_ST" name: "ATARI_ST_SCALED"
text: "Atari ST (1985)" text: "Atari ST (1985)"
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf" source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
lineSpacing: 0.2 lineSpacing: 3
pixelSize: 32 pixelSize: 16
baseScaling: 2.0
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: true
} }
ListElement{ ListElement{
name: "IBM_DOS" name: "IBM_DOS"
text: "IBM DOS (1985)" text: "IBM DOS (1985)"
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf" source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf"
lineSpacing: 0.2 lineSpacing: 3
pixelSize: 32 pixelSize: 16
baseScaling: 2.0
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: true
}
ListElement{
name: "HERMIT"
text: "HD: Hermit (Modern)"
source: "fonts/modern-hermit/Hermit-medium.otf"
lineSpacing: 0.05
pixelSize: 28
fontWidth: 1.0
lowResolutionFont: false
}
ListElement{
name: "TERMINUS"
text: "HD: Terminus (Modern)"
source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
lineSpacing: 0.1
pixelSize: 35
fontWidth: 1.0
lowResolutionFont: false
}
ListElement{
name: "PRO_FONT"
text: "HD: Pro Font (Modern)"
source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
lineSpacing: 0.1
pixelSize: 35
fontWidth: 1.0
lowResolutionFont: false
}
ListElement{
name: "MONACO"
text: "HD: Monaco (Modern)"
source: "fonts/modern-monaco/monaco.ttf"
lineSpacing: 0.1
pixelSize: 30
fontWidth: 1.0
lowResolutionFont: false
}
ListElement{
name: "INCONSOLATA"
text: "HD: Inconsolata (Modern)"
source: "fonts/modern-inconsolata/Inconsolata.otf"
lineSpacing: 0.1
pixelSize: 35
fontWidth: 1.0
lowResolutionFont: false
} }
ListElement{ ListElement{
name: "IBM_3278" name: "IBM_3278"
text: "IBM 3278 (1971)" text: "HD: IBM 3278 (1971)"
source: "fonts/1971-ibm-3278/3270Medium.ttf" source: "fonts/1971-ibm-3278/3270Medium.ttf"
lineSpacing: 0.2 lineSpacing: 0.2
pixelSize: 32 pixelSize: 32
fontWidth: 1.0 fontWidth: 1.0
lowResolutionFont: false
}
ListElement{
name: "Knight_TV"
text: "Knight TV (1975)"
source: "fonts/1975-knight-tv/KnightTVMedium.ttf"
lineSpacing: 0.2
pixelSize: 10
fontWidth: 1.0
baseScaling: 3.0
lowResolutionFont: true
} }
} }
} }

View File

@@ -23,6 +23,8 @@ import QtQuick.Controls 1.1
import QMLTermWidget 1.0 import QMLTermWidget 1.0
import "utils.js" as Utils
Item{ Item{
id: terminalContainer id: terminalContainer
@@ -42,11 +44,13 @@ Item{
anchors.topMargin: frame.displacementTop * appSettings.windowScaling anchors.topMargin: frame.displacementTop * appSettings.windowScaling
anchors.bottomMargin: frame.displacementBottom * appSettings.windowScaling anchors.bottomMargin: frame.displacementBottom * appSettings.windowScaling
//The blur effect has to take into account the framerate //Parameters for the burnIn effect.
property real mBlur: appSettings.burnIn property real burnIn: appSettings.burnIn
property real motionBlurCoefficient: (_maxBlurCoefficient * Math.sqrt(mBlur) + _minBlurCoefficient * (1 - Math.sqrt(mBlur))) property real fps: appSettings.fps !== 0 ? appSettings.fps : 60
property real _minBlurCoefficient: 0.50 property real burnInFadeTime: Utils.lint(_minBurnInFadeTime, _maxBurnInFadeTime, burnIn)
property real _maxBlurCoefficient: 0.90 property real motionBlurCoefficient: 1.0 / (fps * burnInFadeTime)
property real _minBurnInFadeTime: 0.16
property real _maxBurnInFadeTime: 1.6
property size terminalSize: kterminal.terminalSize property size terminalSize: kterminal.terminalSize
property size fontMetrics: kterminal.fontMetrics property size fontMetrics: kterminal.fontMetrics
@@ -83,7 +87,7 @@ Item{
colorScheme: "cool-retro-term" colorScheme: "cool-retro-term"
smooth: appSettings.rasterization === appSettings.no_rasterization smooth: !appSettings.lowResolutionFont
enableBold: false enableBold: false
fullCursorHeight: true fullCursorHeight: true
@@ -115,23 +119,27 @@ Item{
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){ function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){
fontLoader.source = fontSource; fontLoader.source = fontSource;
kterminal.antialiasText = appSettings.rasterization === appSettings.no_rasterization kterminal.antialiasText = !appSettings.lowResolutionFont;
font.pixelSize = pixelSize; font.pixelSize = pixelSize;
font.family = fontLoader.name; font.family = fontLoader.name;
terminalContainer.fontWidth = fontWidth; terminalContainer.fontWidth = fontWidth;
terminalContainer.screenScaling= screenScaling; terminalContainer.screenScaling = screenScaling;
scaleTexture = Math.max(1.0, Math.round(screenScaling / 2)); scaleTexture = Math.max(1.0, Math.floor(screenScaling * appSettings.windowScaling));
kterminal.lineSpacing = lineSpacing; kterminal.lineSpacing = lineSpacing;
} }
Component.onCompleted: { function startSession() {
appSettings.terminalFontChanged.connect(handleFontChange); appSettings.initializedSettings.disconnect(startSession);
// Retrieve the variable set in main.cpp if arguments are passed. // Retrieve the variable set in main.cpp if arguments are passed.
if (defaultCmd) { if (defaultCmd) {
ksession.setShellProgram(defaultCmd); ksession.setShellProgram(defaultCmd);
ksession.setArgs(defaultCmdArgs); 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") { } else if (!defaultCmd && Qt.platform.os === "osx") {
// OSX Requires the following default parameters for auto login. // OSX Requires the following default parameters for auto login.
ksession.setArgs(["-i", "-l"]); ksession.setArgs(["-i", "-l"]);
@@ -143,6 +151,10 @@ Item{
ksession.startShellProgram(); ksession.startShellProgram();
forceActiveFocus(); forceActiveFocus();
} }
Component.onCompleted: {
appSettings.terminalFontChanged.connect(handleFontChange);
appSettings.initializedSettings.connect(startSession);
}
} }
Component { Component {
id: linuxContextMenu id: linuxContextMenu
@@ -174,6 +186,7 @@ Item{
MouseArea{ MouseArea{
acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton
anchors.fill: parent anchors.fill: parent
cursorShape: kterminal.terminalUsesMouse ? Qt.ArrowCursor : Qt.IBeamCursor
onWheel:{ onWheel:{
if(wheel.modifiers & Qt.ControlModifier){ if(wheel.modifiers & Qt.ControlModifier){
wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger(); wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger();
@@ -225,13 +238,15 @@ Item{
Loader{ Loader{
id: blurredSourceLoader id: blurredSourceLoader
asynchronous: true asynchronous: true
active: mBlur !== 0 active: burnIn !== 0
sourceComponent: ShaderEffectSource{ sourceComponent: ShaderEffectSource{
property bool updateBurnIn: false
id: _blurredSourceEffect id: _blurredSourceEffect
sourceItem: blurredTerminalLoader.item sourceItem: blurredTerminalLoader.item
recursive: true recursive: true
live: true live: false
hideSource: true hideSource: true
wrapMode: kterminalSource.wrapMode wrapMode: kterminalSource.wrapMode
@@ -241,15 +256,29 @@ Item{
livetimer.restart(); livetimer.restart();
} }
// This updates the burnin synched with the timer.
Connections {
target: updateBurnIn ? mainShader : null
ignoreUnknownSignals: false
onTimeChanged: _blurredSourceEffect.scheduleUpdate();
}
Timer{ Timer{
id: livetimer id: livetimer
// The interval assumes 60 fps. This is the time needed burnout a white pixel.
// We multiply 1.1 to have a little bit of margin over the theoretical value.
// This solution is not extremely clean, but it's probably the best to avoid measuring fps.
interval: burnInFadeTime * 1000 * 1.1
running: true running: true
onTriggered: _blurredSourceEffect.live = false; onTriggered: _blurredSourceEffect.updateBurnIn = false;
} }
Connections{ Connections{
target: kterminal target: kterminal
onImagePainted:{ onImagePainted:{
_blurredSourceEffect.live = true; _blurredSourceEffect.scheduleUpdate();
_blurredSourceEffect.updateBurnIn = true;
livetimer.restart(); livetimer.restart();
} }
} }
@@ -271,19 +300,30 @@ Item{
Loader{ Loader{
id: blurredTerminalLoader id: blurredTerminalLoader
width: kterminal.width * scaleTexture * appSettings.burnInQuality property int burnInScaling: scaleTexture * appSettings.burnInQuality
height: kterminal.height * scaleTexture * appSettings.burnInQuality
active: mBlur !== 0 width: appSettings.lowResolutionFont
? kterminal.width * Math.max(1, burnInScaling)
: kterminal.width * scaleTexture * appSettings.burnInQuality
height: appSettings.lowResolutionFont
? kterminal.height * Math.max(1, burnInScaling)
: kterminal.height * scaleTexture * appSettings.burnInQuality
active: burnIn !== 0
asynchronous: true asynchronous: true
sourceComponent: ShaderEffect { sourceComponent: ShaderEffect {
property variant txt_source: kterminalSource property variant txt_source: kterminalSource
property variant blurredSource: blurredSourceLoader.item property variant blurredSource: blurredSourceLoader.item
property real blurCoefficient: (1.0 - motionBlurCoefficient) property real blurCoefficient: motionBlurCoefficient
blending: false blending: false
fragmentShader: fragmentShader:
"#ifdef GL_ES
precision mediump float;
#endif\n" +
"uniform lowp float qt_Opacity;" + "uniform lowp float qt_Opacity;" +
"uniform lowp sampler2D txt_source;" + "uniform lowp sampler2D txt_source;" +
@@ -299,10 +339,10 @@ Item{
"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;" +
"vec3 blur_color = texture2D(blurredSource, coords).rgb * (1.0 - blurCoefficient);" + "vec3 blur_color = texture2D(blurredSource, coords).rgb - vec3(blurCoefficient);" +
"vec3 color = min(origColor + blur_color, max(origColor, blur_color));" + "vec3 color = min(origColor + blur_color, max(origColor, blur_color));" +
"gl_FragColor = vec4(color, step(0.02, rgb2grey(color - origColor)));" + "gl_FragColor = vec4(color, rgb2grey(color - origColor));" +
"}" "}"
onStatusChanged: if (log) console.log(log) //Print warning messages onStatusChanged: if (log) console.log(log) //Print warning messages

View File

@@ -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 //////////////////////////////////////////////////////////////// // DIALOGS ////////////////////////////////////////////////////////////////
InsertNameDialog{ InsertNameDialog{
id: insertname id: insertname

View File

@@ -22,6 +22,8 @@ import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components"
Tab{ Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent anchors.fill: parent
@@ -34,36 +36,39 @@ Tab{
anchors.fill: parent anchors.fill: parent
rows: 2 rows: 2
columns: 3 columns: 3
CheckBox{ Label{text: qsTr("Effects FPS")}
property int fps: checked ? slider.value : 0
onFpsChanged: appSettings.fps = fps
checked: appSettings.fps !== 0
text: qsTr("Effects FPS")
}
Slider{ Slider{
id: slider
Layout.fillWidth: true Layout.fillWidth: true
id: fpsSlider
onValueChanged: {
if (enabled) {
appSettings.fps = value !== 60 ? value + 1 : 0;
}
}
stepSize: 1 stepSize: 1
maximumValue: 60 enabled: false
minimumValue: 1 Component.onCompleted: {
enabled: appSettings.fps !== 0 minimumValue = 0;
value: appSettings.fps !== 0 ? appSettings.fps : 60 maximumValue = 60;
value = appSettings.fps !== 0 ? appSettings.fps - 1 : 60;
enabled = true;
}
} }
Text{text: slider.value} SizedLabel{text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")}
Text{text: qsTr("Texture Quality")} Label{text: qsTr("Texture Quality")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
id: txtslider id: txtslider
onValueChanged: if (enabled) appSettings.windowScaling = value; onValueChanged: if (enabled) appSettings.windowScaling = value;
stepSize: 0.10 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.3 //Without this value gets set to 0.5 minimumValue = 0.25 //Without this value gets set to 0.5
value = appSettings.windowScaling; value = appSettings.windowScaling;
enabled = true; enabled = true;
} }
} }
Text{text: Math.round(txtslider.value * 100) + "%"} SizedLabel{text: Math.round(txtslider.value * 100) + "%"}
} }
} }
GroupBox{ GroupBox{
@@ -74,21 +79,20 @@ Tab{
GridLayout{ GridLayout{
id: bloomQualityContainer id: bloomQualityContainer
anchors.fill: parent anchors.fill: parent
Label{text: qsTr("Bloom Quality")}
Text{text: qsTr("Bloom Quality")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
id: bloomSlider id: bloomSlider
onValueChanged: if (enabled) appSettings.bloomQuality = value; onValueChanged: if (enabled) appSettings.bloomQuality = value;
stepSize: 0.10 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.3 minimumValue = 0.25
value = appSettings.bloomQuality; value = appSettings.bloomQuality;
enabled = true; enabled = true;
} }
} }
Text{text: Math.round(bloomSlider.value * 100) + "%"} SizedLabel{text: Math.round(bloomSlider.value * 100) + "%"}
} }
} }
GroupBox{ GroupBox{
@@ -100,20 +104,20 @@ Tab{
id: blurQualityContainer id: blurQualityContainer
anchors.fill: parent anchors.fill: parent
Text{text: qsTr("BurnIn Quality")} Label{text: qsTr("BurnIn Quality")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
id: burnInSlider id: burnInSlider
onValueChanged: if (enabled) appSettings.burnInQuality = value; onValueChanged: if (enabled) appSettings.burnInQuality = value;
stepSize: 0.10 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.3 minimumValue = 0.25
value = appSettings.burnInQuality; value = appSettings.burnInQuality;
enabled = true; enabled = true;
} }
} }
Text{text: Math.round(burnInSlider.value * 100) + "%"} SizedLabel{text: Math.round(burnInSlider.value * 100) + "%"}
} }
} }
GroupBox{ GroupBox{

View File

@@ -46,17 +46,17 @@ Tab{
GridLayout{ GridLayout{
anchors.fill: parent anchors.fill: parent
columns: 2 columns: 2
Text{ text: qsTr("Brightness") } Label{ text: qsTr("Brightness") }
SimpleSlider{ SimpleSlider{
onValueChanged: appSettings.brightness = value onValueChanged: appSettings.brightness = value
value: appSettings.brightness value: appSettings.brightness
} }
Text{ text: qsTr("Contrast") } Label{ text: qsTr("Contrast") }
SimpleSlider{ SimpleSlider{
onValueChanged: appSettings.contrast = value onValueChanged: appSettings.contrast = value
value: appSettings.contrast value: appSettings.contrast
} }
Text{ text: qsTr("Opacity") } Label{ text: qsTr("Opacity") }
SimpleSlider{ SimpleSlider{
onValueChanged: appSettings.windowOpacity = value onValueChanged: appSettings.windowOpacity = value
value: appSettings.windowOpacity value: appSettings.windowOpacity

View File

@@ -22,6 +22,8 @@ import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components"
Tab{ Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent anchors.fill: parent
@@ -32,7 +34,7 @@ Tab{
GridLayout{ GridLayout{
anchors.fill: parent anchors.fill: parent
columns: 2 columns: 2
Text{ text: qsTr("Name") } Label{ text: qsTr("Name") }
ComboBox{ ComboBox{
id: fontChanger id: fontChanger
Layout.fillWidth: true Layout.fillWidth: true
@@ -54,7 +56,7 @@ Tab{
} }
Component.onCompleted: updateIndex(); Component.onCompleted: updateIndex();
} }
Text{ text: qsTr("Scaling") } Label{ text: qsTr("Scaling") }
RowLayout{ RowLayout{
Layout.fillWidth: true Layout.fillWidth: true
Slider{ Slider{
@@ -64,8 +66,8 @@ Tab{
stepSize: 0.05 stepSize: 0.05
enabled: false // Another trick to fix initial bad behavior. enabled: false // Another trick to fix initial bad behavior.
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.5; minimumValue = appSettings.minimumFontScaling;
maximumValue = 2.5; maximumValue = appSettings.maximumFontScaling;
value = appSettings.fontScaling; value = appSettings.fontScaling;
enabled = true; enabled = true;
} }
@@ -74,11 +76,11 @@ Tab{
onFontScalingChanged: fontScalingChanger.value = appSettings.fontScaling; onFontScalingChanged: fontScalingChanger.value = appSettings.fontScaling;
} }
} }
Text{ SizedLabel{
text: Math.round(fontScalingChanger.value * 100) + "%" text: Math.round(fontScalingChanger.value * 100) + "%"
} }
} }
Text{ text: qsTr("Font Width") } Label{ text: qsTr("Font Width") }
RowLayout{ RowLayout{
Layout.fillWidth: true Layout.fillWidth: true
Slider{ Slider{
@@ -93,7 +95,7 @@ Tab{
maximumValue = 1.5; maximumValue = 1.5;
} }
} }
Text{ SizedLabel{
text: Math.round(widthChanger.value * 100) + "%" text: Math.round(widthChanger.value * 100) + "%"
} }
} }
@@ -125,14 +127,14 @@ Tab{
height: 50 height: 50
Layout.fillWidth: true Layout.fillWidth: true
onColorSelected: appSettings._fontColor = color; onColorSelected: appSettings._fontColor = color;
button_color: appSettings._fontColor color: appSettings._fontColor
} }
ColorButton{ ColorButton{
name: qsTr("Background") name: qsTr("Background")
height: 50 height: 50
Layout.fillWidth: true Layout.fillWidth: true
onColorSelected: appSettings._backgroundColor = color; onColorSelected: appSettings._backgroundColor = color;
button_color: appSettings._backgroundColor color: appSettings._backgroundColor
} }
} }
} }

View File

@@ -21,6 +21,8 @@
import QtQuick 2.2 import QtQuick 2.2
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import "utils.js" as Utils
ShaderEffect { ShaderEffect {
property ShaderEffectSource source property ShaderEffectSource source
property ShaderEffectSource blurredSource property ShaderEffectSource blurredSource
@@ -38,7 +40,7 @@ ShaderEffect {
(height) / (noiseTexture.height * appSettings.windowScaling * appSettings.fontScaling)) (height) / (noiseTexture.height * appSettings.windowScaling * appSettings.fontScaling))
property real screenCurvature: appSettings.screenCurvature property real screenCurvature: appSettings.screenCurvature
property real glowingLine: appSettings.glowingLine property real glowingLine: appSettings.glowingLine * 0.2
property real chromaColor: appSettings.chromaColor; property real chromaColor: appSettings.chromaColor;
@@ -56,6 +58,12 @@ ShaderEffect {
property real screen_brightness: appSettings.brightness * 1.5 + 0.5 property real screen_brightness: appSettings.brightness * 1.5 + 0.5
// This is the average value of the abs(sin) function. Needed to avoid aliasing.
readonly property real absSinAvg: 0.63661828335466886
property size rasterizationSmooth: Qt.size(
Utils.clamp(2.0 * virtual_resolution.width / (width * devicePixelRatio), 0.0, 1.0),
Utils.clamp(2.0 * virtual_resolution.height / (height * devicePixelRatio), 0.0, 1.0))
property real dispX property real dispX
property real dispY property real dispY
property size virtual_resolution property size virtual_resolution
@@ -143,6 +151,10 @@ ShaderEffect {
}" }"
fragmentShader: " fragmentShader: "
#ifdef GL_ES
precision mediump float;
#endif
uniform sampler2D source; uniform sampler2D source;
uniform highp float qt_Opacity; uniform highp float qt_Opacity;
uniform highp float time; uniform highp float time;
@@ -153,6 +165,7 @@ ShaderEffect {
uniform lowp float screen_brightness; uniform lowp float screen_brightness;
uniform highp vec2 virtual_resolution; uniform highp vec2 virtual_resolution;
uniform highp vec2 rasterizationSmooth;
uniform highp float dispX; uniform highp float dispX;
uniform highp float dispY;" + uniform highp float dispY;" +
@@ -191,16 +204,18 @@ ShaderEffect {
(glowingLine !== 0 ? " (glowingLine !== 0 ? "
float randomPass(vec2 coords){ float randomPass(vec2 coords){
return fract(smoothstep(-0.2, 0.0, coords.y - 3.0 * fract(time * 0.0001))) * glowingLine; return fract(smoothstep(-120.0, 0.0, coords.y - (virtual_resolution.y + 120.0) * fract(time * 0.00015)));
}" : "") + }" : "") +
"highp float getScanlineIntensity(vec2 coords) { "highp float getScanlineIntensity(vec2 coords) {
highp float result = 1.0;" + highp float result = 1.0;" +
(appSettings.rasterization != appSettings.no_rasterization ? (appSettings.rasterization != appSettings.no_rasterization ?
"result *= abs(sin(coords.y * virtual_resolution.y * "+Math.PI+"));" : "") + "float val = abs(sin(coords.y * virtual_resolution.y * "+Math.PI+"));
result *= mix(val, " + absSinAvg + ", rasterizationSmooth.y);" : "") +
(appSettings.rasterization == appSettings.pixel_rasterization ? (appSettings.rasterization == appSettings.pixel_rasterization ?
"result *= abs(sin(coords.x * virtual_resolution.x * "+Math.PI+"));" : "") + " "val = abs(sin(coords.x * virtual_resolution.x * "+Math.PI+"));
result *= mix(val, " + absSinAvg + ", rasterizationSmooth.x);" : "") + "
return result; return result;
} }
@@ -261,7 +276,7 @@ ShaderEffect {
color += noiseVal * noise * (1.0 - distance * 1.3);" : "") + color += noiseVal * noise * (1.0 - distance * 1.3);" : "") +
(glowingLine !== 0 ? " (glowingLine !== 0 ? "
color += randomPass(coords) * glowingLine;" : "") + color += randomPass(coords * virtual_resolution) * glowingLine;" : "") +
"vec3 txt_color = texture2D(source, txt_coords).rgb;" + "vec3 txt_color = texture2D(source, txt_coords).rgb;" +

View File

@@ -22,6 +22,8 @@ import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components"
RowLayout { RowLayout {
property alias value: slider.value property alias value: slider.value
property alias stepSize: slider.stepSize property alias stepSize: slider.stepSize
@@ -36,15 +38,7 @@ RowLayout {
stepSize: parent.stepSize stepSize: parent.stepSize
Layout.fillWidth: true Layout.fillWidth: true
} }
Text{ SizedLabel{
id: textfield text: Math.round(value * maxMultiplier) + "%"
text: formatNumber(Math.round(value * maxMultiplier))
}
function formatNumber(num) {
var n = "" + num;
while (n.length < 3) {
n = " " + n;
}
return n + "%";
} }
} }

View File

@@ -1,6 +1,8 @@
import QtQuick 2.2 import QtQuick 2.2
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import "utils.js" as Utils
ShaderTerminal{ ShaderTerminal{
property alias title: terminal.title property alias title: terminal.title
property alias terminalSize: terminal.terminalSize property alias terminalSize: terminal.terminalSize
@@ -45,9 +47,10 @@ ShaderTerminal{
asynchronous: true asynchronous: true
width: parent.width * appSettings.bloomQuality width: parent.width * appSettings.bloomQuality
height: parent.height * appSettings.bloomQuality height: parent.height * appSettings.bloomQuality
sourceComponent: FastBlur{ sourceComponent: FastBlur{
radius: 48 * appSettings.bloomQuality * appSettings.windowScaling radius: Utils.lint(16, 48, appSettings.bloomQuality * appSettings.windowScaling);
source: terminal.mainTerminal source: terminal.mainSource
transparentBorder: true transparentBorder: true
} }
} }
@@ -67,8 +70,8 @@ ShaderTerminal{
bloomSource: bloomSourceLoader.item bloomSource: bloomSourceLoader.item
// This shader might be useful in the future. Since we used it only for a couple // This shader might be useful in the future. Since we used it only for a couple
// of calculations is probably best to move those in the main shader. If in // of calculations is probably best to move those in the main shader. If in the future
// we will need to store another fullScreen channel this might be handy. // we need to store another fullScreen channel this might be handy.
// ShaderEffect { // ShaderEffect {
// id: rasterizationEffect // id: rasterizationEffect

View File

@@ -1,13 +1,49 @@
Copyright (c) 2011-2012, Ricardo Banffy. Copyright (c) 2011-2017, Ricardo Banffy.
Copyright (c) 1993-2011, Paul Mattes. Copyright (c) 1993-2011, Paul Mattes.
Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004-2005, Don Russell.
Copyright (c) 2004, Dick Altenbern. Copyright (c) 2004, Dick Altenbern.
Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1990, Jeff Sparkes.
Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved. 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. Redistribution and use in source and binary forms, with or without
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. modification, are permitted provided that the following conditions are
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. met:
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.
* 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.

View File

@@ -1,73 +1,101 @@
3270font: A font for the nostalgic 3270font: A font for the nostalgic
================================== ==================================
https://github.com/rbanffy/3270font
![Screenshot](https://raw.github.com/wiki/rbanffy/3270font/emacs.png) ![Travis-CI](https://api.travis-ci.org/rbanffy/3270font.svg)
![Screenshot](https://raw.githubusercontent.com/wiki/rbanffy/3270font/emacs.png)
![Sample](https://raw.githubusercontent.com/wiki/rbanffy/3270font/3270Medium_sample.png)
A little bit of history A little bit of history
----------------------- -----------------------
This font is derived from the x3270 font, which, in turn, was translated This font is derived from the x3270 font, which, in turn, was
from the one in Georgia Tech's 3270tool, which was itself hand-copied translated from the one in Georgia Tech's 3270tool, which was itself
from a 3270 terminal. I built it because I felt terminals deserve to be hand-copied from a 3270 series terminal. I built it because I felt
pretty. The .sfd font file contains a x3270 bitmap font that was used terminals deserve to be pretty. The .sfd font file contains a x3270
for guidance. bitmap font that was used for guidance.
![Using with the Cathode terminal program] ![Using with the cool-old-tern (now cool-retro-term) terminal program](
(https://raw.github.com/wiki/rbanffy/3270font/cathode.png) https://raw.githubusercontent.com/wiki/rbanffy/3270font/cool-retro-term.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).
![ASCII is so 60's](
https://raw.githubusercontent.com/wiki/rbanffy/3270font/cyrillic.png)
The format The format
---------- ----------
This font was built with FontForge. You'll need it if you want to The "source" file is edited using FontForge. You'll need it if you want
generate fonts for your platform. On most civilized operating systems, to generate fonts for your platform. On most civilized operating
you can simply `apt-get install fontforge`, `yum install fontforge` or systems, you can simply `apt-get install fontforge`, `yum install
even `port install fontforge`. On others, you may need to grab your copy fontforge` or even `port install fontforge`. On others, you may need to
from http://fontforge.org/. I encourage you to drop by and read the grab your copy from http://fontforge.org/. I encourage you to drop by
tutorials. and read the tutorials.
![Powerline-shell compatible!] ![Powerline-shell compatible!](
(https://raw.github.com/wiki/rbanffy/3270font/powerline.png) https://raw.githubusercontent.com/wiki/rbanffy/3270font/powerline.png)
Adobe Type 1, TTF, OTF and WOFF versions are available for download on ![Using it on OSX (don't forget to turn antialiasing on)](https://raw.githubusercontent.com/wiki/rbanffy/3270font/osx_terminal.png)
http://s3.amazonaws.com/rbanffy/3270_fonts.zip for those who would just
like to use them.
![Using it on OSX] If you are running Windows, you'll probably need something like
(https://raw.github.com/wiki/rbanffy/3270font/osx_terminal.png) Cygwin, but, in the end, the font works correctly (with some very
minor hinting issues).
Generating derived files ![Works on Windows](
------------------------ https://raw.githubusercontent.com/wiki/rbanffy/3270font/windows_7.png)
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 The script `generate_derived.pe` calls FontForge and generates
PostScript, OTF, TTF and WOFF versions of the base font, as well as a 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 slightly more condensed .sfd file with the base font narrowed to 488
units, with no glyph rescaling and its corresponding PostScript, TTF, units, with no glyph rescaling (or cropping - we need to fix that) and
OTF and WOFF versions. its corresponding PostScript, TTF, OTF and WOFF versions.
![For your favorite editor](
https://raw.githubusercontent.com/wiki/rbanffy/3270font/symbols.png)
Contributing Contributing
------------ ------------
I don't think GitHub's pull-request mechanism is FontForge-friendly. If I fear GitHub's pull-request mechanism may not be very
you want to contribute (there are a lot of missing glyphs, such as the FontForge-friendly. If you want to contribute (there are a lot of
APL set and most non-latin alphabets which most likely were never built missing glyphs, such as the APL set and most non-latin alphabets which
into 3270 terminals), get in touch and we will figure out how to do it most likely were never built into 3270 terminals), the best workflow
right. would be to make add the encoding slots (if needed), add/make the
changes, reencode it in "Unicode, Full", compact it and validate
Preserving history 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.
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.
Known problems Known problems
-------------- --------------
I have received errors when installing the OTF, TTF, and PFM fonts on Not all symbols in the 3270 charset have Unicode counterparts. When
Windows 7 and 8 (didn't try others). 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.

View File

@@ -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.

Binary file not shown.

View File

@@ -83,7 +83,7 @@ Item{
sourceComponent: FastBlur{ sourceComponent: FastBlur{
id: frameReflectionEffect id: frameReflectionEffect
radius: 128 radius: 128
source: terminal.kterminal source: terminal.mainSource
smooth: false smooth: false
} }
} }
@@ -120,6 +120,10 @@ Item{
blending: true blending: true
fragmentShader: " fragmentShader: "
#ifdef GL_ES
precision mediump float;
#endif
uniform highp sampler2D normals; uniform highp sampler2D normals;
uniform highp sampler2D source; uniform highp sampler2D source;
uniform lowp float screenCurvature; uniform lowp float screenCurvature;
@@ -181,6 +185,10 @@ Item{
blending: true blending: true
fragmentShader: " fragmentShader: "
#ifdef GL_ES
precision mediump float;
#endif
uniform sampler2D lightMask; uniform sampler2D lightMask;
uniform sampler2D reflectionSource; uniform sampler2D reflectionSource;
uniform lowp float diffuseComponent; uniform lowp float diffuseComponent;

View File

@@ -28,10 +28,29 @@ ApplicationWindow{
width: 1024 width: 1024
height: 768 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 minimumWidth: 320
minimumHeight: 240 minimumHeight: 240
visible: true visible: false
property bool fullscreen: appSettings.fullscreen property bool fullscreen: appSettings.fullscreen
onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed) onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed)
@@ -43,8 +62,10 @@ ApplicationWindow{
__contentItem.visible: mainMenu.visible __contentItem.visible: mainMenu.visible
} }
property string wintitle: appSettings.wintitle
color: "#00000000" color: "#00000000"
title: terminalContainer.title || qsTr("cool-retro-term") title: terminalContainer.title || qsTr(appSettings.wintitle)
Action { Action {
id: showMenubarAction id: showMenubarAction
@@ -82,12 +103,12 @@ ApplicationWindow{
Action{ Action{
id: copyAction id: copyAction
text: qsTr("Copy") text: qsTr("Copy")
shortcut: Qt.platform.os === "osx" ? StandardKey.Copy : "Ctrl+Shift+C" shortcut: "Ctrl+Shift+C"
} }
Action{ Action{
id: pasteAction id: pasteAction
text: qsTr("Paste") text: qsTr("Paste")
shortcut: Qt.platform.os === "osx" ? StandardKey.Paste : "Ctrl+Shift+V" shortcut: "Ctrl+Shift+V"
} }
Action{ Action{
id: zoomIn id: zoomIn
@@ -140,7 +161,6 @@ ApplicationWindow{
terminalSize: terminalContainer.terminalSize terminalSize: terminalContainer.terminalSize
} }
} }
Component.onCompleted: appSettings.handleFontChanged();
onClosing: { onClosing: {
// OSX Since we are currently supporting only one window // OSX Since we are currently supporting only one window
// quit the application when it is closed. // quit the application when it is closed.

View File

@@ -31,6 +31,7 @@
<file>fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf</file> <file>fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf</file>
<file>fonts/1977-apple2/PrintChar21.ttf</file> <file>fonts/1977-apple2/PrintChar21.ttf</file>
<file>fonts/1971-ibm-3278/3270Medium.ttf</file> <file>fonts/1971-ibm-3278/3270Medium.ttf</file>
<file>fonts/1975-knight-tv/KnightTVMedium.ttf</file>
<file>fonts/1985-atari-st/AtariST8x16SystemFont.ttf</file> <file>fonts/1985-atari-st/AtariST8x16SystemFont.ttf</file>
<file>fonts/modern-terminus/TerminusTTF-4.38.2.ttf</file> <file>fonts/modern-terminus/TerminusTTF-4.38.2.ttf</file>
<file>fonts/1977-commodore-pet/COMMODORE_PET.ttf</file> <file>fonts/1977-commodore-pet/COMMODORE_PET.ttf</file>
@@ -47,8 +48,10 @@
<file>fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf</file> <file>fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf</file>
<file>fonts/modern-monaco/monaco.ttf</file> <file>fonts/modern-monaco/monaco.ttf</file>
<file>fonts/modern-hermit/Hermit-medium.otf</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>fonts/modern-inconsolata/Inconsolata.otf</file>
<file>SettingsScreenTab.qml</file> <file>SettingsScreenTab.qml</file>
<file>fonts/modern-fixedsys-excelsior/FSEX301-L2.ttf</file>
<file>../icons/32x32/cool-retro-term.png</file>
<file>Components/SizedLabel.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -1,5 +1,14 @@
.pragma library .pragma library
function clamp(x, min, max) {
if (x <= min)
return min;
if (x >= max)
return max;
return x;
}
function lint(a, b, t) {
return (1 - t) * a + (t) * b;
}
function mix(c1, c2, alpha){ function mix(c1, c2, alpha){
return Qt.rgba(c1.r * alpha + c2.r * (1-alpha), return Qt.rgba(c1.r * alpha + c2.r * (1-alpha),
c1.g * alpha + c2.g * (1-alpha), c1.g * alpha + c2.g * (1-alpha),
@@ -12,3 +21,74 @@ function strToColor(s){
var b = parseInt(s.substring(5,7), 16) / 256; var b = parseInt(s.substring(5,7), 16) / 256;
return Qt.rgba(r, g, b, 1.0); 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;
}

View File

@@ -2,10 +2,10 @@
Comment=Use the command line the old way Comment=Use the command line the old way
Exec=cool-retro-term Exec=cool-retro-term
GenericName=Terminal emulator GenericName=Terminal emulator
Icon=utilities-terminal Icon=cool-retro-term
MimeType=
Name=Cool Retro Term Name=Cool Retro Term
Categories=Qt;System;Utility;TerminalEmulator; Categories=System;TerminalEmulator;
StartupNotify=true StartupNotify=true
Terminal=false Terminal=false
Type=Application Type=Application
Keywords=shell;prompt;command;commandline;

View File

@@ -16,11 +16,11 @@
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<caption>Default amber look</caption> <caption>Default amber look</caption>
<image width="768" height="595">https://camo.githubusercontent.com/2443e662e95733ba6ae331f391f6ec036d1ee7fd/687474703a2f2f692e696d6775722e636f6d2f4e5566766e6c752e706e67</image> <image width="1022" height="791">https://camo.githubusercontent.com/2443e662e95733ba6ae331f391f6ec036d1ee7fd/687474703a2f2f692e696d6775722e636f6d2f4e5566766e6c752e706e67</image>
</screenshot> </screenshot>
<screenshot> <screenshot>
<caption>Apple II look</caption> <caption>Apple II look</caption>
<image width="768" height="595">https://camo.githubusercontent.com/44a19842d532555c7b02bf6b4b4684add9edf18c/687474703a2f2f692e696d6775722e636f6d2f4d4d6d4d3648742e706e67</image> <image width="1024" height="796">https://camo.githubusercontent.com/44a19842d532555c7b02bf6b4b4684add9edf18c/687474703a2f2f692e696d6775722e636f6d2f4d4d6d4d3648742e706e67</image>
</screenshot> </screenshot>
</screenshots> </screenshots>

4
packaging/debian/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/*.debhelper.log
/*.substvars
/cool-retro-term/
/files

View File

@@ -1,9 +1,12 @@
Source: cool-retro-term Source: cool-retro-term
Maintainer: Jeka Der <jekader@gmail.com> Maintainer: Jeka Der <jekader@gmail.com>
Section: misc Section: x11
Priority: optional Priority: optional
Standards-Version: 3.9.6 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, qt5-qmake, qtdeclarative5-dev, qml-module-qtquick-controls,
qml-module-qtgraphicaleffects, qml-module-qtquick-dialogs, qml-module-qtgraphicaleffects, qml-module-qtquick-dialogs,
qml-module-qtquick-localstorage, qml-module-qtquick-window2 qml-module-qtquick-localstorage, qml-module-qtquick-window2
@@ -11,7 +14,10 @@ Build-Depends: debhelper (>= 9),qmlscene,
Package: cool-retro-term Package: cool-retro-term
Architecture: any Architecture: any
Replaces: cool-old-term 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 Description: terminal emulator which mimics old screens
cool-retro-term is a terminal emulator which mimics the look and feel 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, of the old cathode tube screens. It has been designed to be eye-candy,

View File

@@ -0,0 +1,43 @@
.TH "COOL-RETRO-TERM" 1 "2017-11-06"
.SH NAME
cool\-retro\-term \- terminal emulator mimicking an old cathode display
.SH SYNOPSIS
\fBcool\-retro\-term\fR [\fIOPTIONS\fR]
.br
\fBcool\-retro\-term\fR [\fIOPTIONS\fR] -e \fICOMMAND\fR [\fIARGUMENT\fR...]
.SH DESCRIPTION
This manual page documents briefly the \fBcool\-retro\-term\fR command.
.PP
\fBcool\-retro\-term\fR is a terminal emulator which mimics the
look and feel of the old cathode tube screens.
It has been designed to be eye-candy,
customizable, and reasonably lightweight.
.SH OPTIONS
.TP
\fB\-\-default\-settings\fR
Run with the default settings.
.TP
\fB\-e\fR \fICOMMAND\fR
Command to execute. This should be used as the last option.
All the arguments following \fICOMMAND\fR will be passed to said command.
.TP
\fB\-\-fullscreen\fR
Run in fullscreen mode.
.TP
\fB\-h\fR, \fB\-\-help\fR
Print a help screen and exit.
.TP
\fB\-p\fR \fIPROFILE\fR, \fB\-\-profile\fR \fIPROFILE\fR
Run with the given profile.
.TP
\fB\-\-workdir\fR \fIDIR\fR
Start with \fIDIR\fR as the working directory.
.TP
\fB\-\-verbose\fR
Print additional information such as profiles and settings.
.TP
\fB\-v\fR, \fB\-\-version\fR
Print the version number and exit.
.SH LICENCE
This program is available under the terms of the GNU General Public License,
version 3 or any later version, as published by the Free Software Foundation.

View File

@@ -4,10 +4,8 @@ Upstream-Contact: Filippo Scognamiglio <flscogna@gmail.com>
Source: https://github.com/Swordfish90/cool-retro-term Source: https://github.com/Swordfish90/cool-retro-term
Files: * Files: *
Copyright: 2014 Filippo Scognamiglio Copyright: 2013-2017 Filippo Scognamiglio
License: GPL-3 License: GPL-3
On Debian systems, the full text of the GNU General Public On Debian systems, the full text of the GNU General Public
License version 3 can be found in the file License version 3 can be found in the file
`/usr/share/common-licenses/GPL-3'. `/usr/share/common-licenses/GPL-3'.

4
packaging/debian/watch Normal file
View 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

View File

@@ -18,10 +18,10 @@
Name: cool-retro-term Name: cool-retro-term
Summary: Cool Retro Terminal Summary: Cool Retro Terminal
Version: 0.9 Version: 1.0
Release: 0%{?dist} Release: 0%{?dist}
Group: System/X11/Terminals Group: System/X11/Terminals
License: GPLv3 License: GPL-3.0+
URL: https://github.com/Swordfish90/cool-retro-term URL: https://github.com/Swordfish90/cool-retro-term
# For this spec file to work, the cool-retro-term sources must be located # For this spec file to work, the cool-retro-term sources must be located
@@ -82,9 +82,7 @@ desktop-file-install \
%{_bindir}/%{name} %{_bindir}/%{name}
%{_libdir}/qt5/qml/ %{_libdir}/qt5/qml/
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/%{name}.desktop
# FIXME: Icon %{_datadir}/icons/hicolor/*/*/*
# %{_datadir}/pixmaps/%{name}.png
# %{_datadir}/icons/hicolor/*/*/*
%clean %clean
rm -rf %{buildroot} rm -rf %{buildroot}