diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9d1366..1e2951a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,7 @@ on: pull_request: branches: [ main ] paths-ignore: + - 'assets/' - 'dist/' - 'docs/' - 'sample-apps/' diff --git a/README.md b/README.md index 74932cf..e1b02af 100644 --- a/README.md +++ b/README.md @@ -3,97 +3,20 @@ Liquid is a tool that turns web pages into desktop applications. -## How it works +## Features -Liquid is capable of making websites appear and behave more like native OS applications: isolated, customizable, and running as separate system processes. +| | Transparent websites | +|:-|:-:| +| Liquid is capable of making websites appear semi-opaque, utilizing 32 bits of depth instead of typical 24.
Not only this increases the amount of information on the screen, it literally adds one more creative dimension to web design, giving a glance at how the web will visually transform after mass adoption of transparent OLED screens. | [![Transparency snapshot](assets/images/transparency-square.png)](assets/images/transparency.png) | -You’ll be able to: - - encapsulate websites the way virtual machines and Docker do it for operating systems - - safely and securely utilize different browsing identities - - remain safe from being tracked by third-party websites - - make sure you stay within specific domain range +| Full control and complete isolation | | +|:-:|:-| +| [![Transparency snapshot](assets/images/transparency-square.png)](assets/images/transparency.png) | Inspired by software such as Docker and Virtual Box, Liquid app windows behave a lot like separate mobile device emulators rather than browser windows, providing full control over the encapsulated website, preventing it from accessing or performing actions without user's permission.
Those can be things such as: accessing unwanted network resources, entering full-screen mode, displaying desktop notifications, opening pop-up windows, playing sounds, using third-party cookies, etc.
Long story short, it puts the user back in control over what happens to their data and what actions the website is capable of performing. | -What gets stored (if allowed): cookies. +| | Next-generation snapshots | +|:-|:-:| +| PNG snapshots of Liquid apps that feature semi-opaque background will retain their transparency when saved to disk.
Additionally, support for vector (SVG) snapshots is another great feature that will ensure impeccable quality of the saved visual representation of the page.
Both raster and vector snapshots can be made in viewport and full-page modes. | [![Transparency snapshot](assets/images/transparency-square.png)](assets/images/transparency.png) | - -## Comparison table - -| Feature | :ocean: Liquid | :earth_africa: Browsers | Notes | -|:-------------------------------------------------|:--------------:|:-------------------------------------:|:----------------------------------| -| Custom User-Agent string | ✅ | ✅ | Some browsers require a plug-in | -| Window transparency | ✅ | ❌ | See-through websites | -| Full-page snapshots | ✅ | ❌ | Possible with plug-ins | -| Transparent snapshots | ✅ | ❌ | See-through snapshots of websites | -| Vector snapshots | ❌ | ❌ | Experimental feature, SVG | -| Ability to save pages as monolithic HTML files | ❌ | ❌ | Possible with plug-ins | -| Complete absence of pop-up windows | ✅ | ❌ | Can be optionally disabled in most browsers | -| Ability to completely disable JS | ✅ | ✅ | | -| Ability to disable all cookies | ✅ | ✅ | | -| Ability to disable third-party cookies | ✅ | ✅ | | -| Ability to inject custom JS code into web pages | ✅ | ❌ | Possible with plug-ins | -| Support for HTTP basic authentication mechanism | ✅ | ✅ | | -| Ability to inject custom CSS code into web pages | ✅ | ❌ | Possible with plug-ins | -| Limit websites to stay within specific domain(s) | ✅ | ❌ | | -| Simultaneous usage of multiple user accounts | ✅ | ❌ | Can be achieved using profiles and extensions in some browsers | -| Per-website proxy settings | ✅ | ❌ | Possible with plug-ins | -| Ability to hide scroll bars | ✅ | ❌ | | -| Window geometry lock | ✅ | ❌ | Possible with plug-ins | -| Ability to remove window frame | ✅ | ❌ | | -| Minimalistic tabless design | ✅ | ❌ | | -| Fine zoom | ✅ | ❌ | | -| Search within the page | ❌ | ✅ | | -| Permanently mute website | ✅ | ❌ | Browsers automatically unmute, Liquid remembers the state | -| Ability to go full-screen | ✅ | ✅ | | -| Full control over full-screen capabilities | ✅ | ❌ | Liquid acts more like a mobile device simulator when it comes to full-screen | -| Mandatory off-the-record capabilities | ✅ | ❌ | | - - -## Keyboard shortcuts - -| Action | Primary | Alternative | -|:------------------------------------------|:------------------:|:---------------------------------:| -| Zoom in | `Ctrl`+`=` | `Ctrl`+_mouse wheel up_ | -| Zoom out | `Ctrl`+`-` | `Ctrl`+_mouse wheel down_ | -| Fine zoom in | `Ctrl`+`Shift`+`=` | `Ctrl`+`Shift`+_mouse wheel up_ | -| Fine zoom out | `Ctrl`+`Shift`+`-` | `Ctrl`+`Shift`+_mouse wheel down_ | -| Reset zoom level | `Ctrl`+`0` | `Ctrl`+`Shift`+`0` | -| Toggle full-screen mode | `Ctrl`+`Shift`+`F` | `F11` | -| Stop loading / exit from full-screen mode | `Esc` | | -| Take snapshot | `Ctrl`+`T` | | -| Take full-page snapshot | `Ctrl`+`Shift`+`T` | | -| Toggle window size lock | `Ctrl`+`L` | | -| Toggle mute | `Ctrl`+`M` | | -| Refresh current page | `Ctrl`+`R` | | -| Reload app | `Ctrl`+`Shift`+`R` | | -| Close app | `Ctrl`+`Q` | `Ctrl`+`W` | -| Go back | `Ctrl`+`←` | `Backspace` | -| Go forward | `Ctrl`+`→` | | -| Open link using default web browser | `Ctrl`+_click_ | | - - -## Working with the codebase - -#### Build - -```console -qmake -make -j -``` - -#### Install - -```console -sudo make install -``` - -#### Uninstall - -```console -sudo make uninstall -``` - - -## Customize - -Placing a file named `liquid.qss` into `~/.config/liquid/` will serve as additional stylesheet for the program. -You can use [base.qss](res/styles/base.qss) as reference. +| Saving web page as single HTML file | | +|:-:|:-| +| [![Transparency snapshot](assets/images/transparency-square.png)](assets/images/transparency.png) | Alternatively to MHT and Webarchive formats found in some web browsers, Liquid is capable of saving web pages as monolithic HTML documents by utilizing data URLs, which makes it much easier to store, share, and edit those files. | diff --git a/assets/images/transparency-square.png b/assets/images/transparency-square.png new file mode 100644 index 0000000..b58fd87 Binary files /dev/null and b/assets/images/transparency-square.png differ diff --git a/assets/images/transparency.png b/assets/images/transparency.png new file mode 100644 index 0000000..1f09b16 Binary files /dev/null and b/assets/images/transparency.png differ diff --git a/docs/Codebase.md b/docs/Codebase.md new file mode 100644 index 0000000..516fde2 --- /dev/null +++ b/docs/Codebase.md @@ -0,0 +1,20 @@ +# Codebase + +## Build + +```console +qmake +make -j +``` + +## Install + +```console +sudo make install +``` + +## Uninstall + +```console +sudo make uninstall +``` diff --git a/docs/Customization.md b/docs/Customization.md new file mode 100644 index 0000000..bb29c1d --- /dev/null +++ b/docs/Customization.md @@ -0,0 +1,4 @@ +# Customization + +Placing a file named `liquid.qss` into `~/.config/liquid/` will serve as additional stylesheet for the program. +You can use [base.qss](res/styles/base.qss) as reference. diff --git a/docs/Keyboard Shortcuts.md b/docs/Keyboard Shortcuts.md new file mode 100644 index 0000000..04a45c0 --- /dev/null +++ b/docs/Keyboard Shortcuts.md @@ -0,0 +1,21 @@ +# Keyboard shortcuts + +| Action | Primary | Alternative | +|:------------------------------------------|:------------------:|:---------------------------------:| +| Zoom in | `Ctrl`+`=` | `Ctrl`+_mouse wheel up_ | +| Zoom out | `Ctrl`+`-` | `Ctrl`+_mouse wheel down_ | +| Fine zoom in | `Ctrl`+`Shift`+`=` | `Ctrl`+`Shift`+_mouse wheel up_ | +| Fine zoom out | `Ctrl`+`Shift`+`-` | `Ctrl`+`Shift`+_mouse wheel down_ | +| Reset zoom level | `Ctrl`+`0` | `Ctrl`+`Shift`+`0` | +| Toggle full-screen mode | `Ctrl`+`Shift`+`F` | `F11` | +| Stop loading / exit from full-screen mode | `Esc` | | +| Take snapshot | `Ctrl`+`T` | | +| Take full-page snapshot | `Ctrl`+`Shift`+`T` | | +| Toggle window size lock | `Ctrl`+`L` | | +| Toggle mute | `Ctrl`+`M` | | +| Refresh current page | `Ctrl`+`R` | | +| Reload app | `Ctrl`+`Shift`+`R` | | +| Close app | `Ctrl`+`Q` | `Ctrl`+`W` | +| Go back | `Ctrl`+`←` | `Backspace` | +| Go forward | `Ctrl`+`→` | | +| Open link using default web browser | `Ctrl`+_click_ | |