Giter Club home page Giter Club logo

unofficial-watchfaces's Introduction

This repository tries to keep track of AsteroidOS unofficial watchfaces. Watchface creation in QtQuick is really easy! You can learn how to make your own by following the Watchface Creation Guide. The creators of the below listed watchfaces are happy to answer your questions and you are free to use their contributions as base for your own work. Feel free to pull request your work here and if it suits the graphic guidelines of AsteroidOS, it can eventually be merged into the default set of watchfaces shipped with asteroid-launcher.

Install selected or all watchfaces

  • Open a terminal and clone this unofficial-watchfaces repo to a new subfolder from your current location.
    git clone https://github.com/AsteroidOS/unofficial-watchfaces
  • Cd into unofficial-watchfaces folder.
    cd unofficial-watchfaces/
  • Connect your AsteroidOS Watch, configured to either ADB Mode (ADB transfer) or Developer Mode (SCP transfer) in Settings -> USB.
  • Start ./watchface to use SCP commands or ./watchface -a for ADB commands.
  • You can also use ./watchface --help to get a list of available options.
  • Select a single watchface to deploy to the watch with its given number or copy multiple watchfaces at once
  • The first selected watchface (if more than one is selected) will be activated

Note that restarting the ceres session might be necessary when new fonts were installed along with the new watchfaces, so the script automatically restarts the ceres session after deploying one or more watchfaces. Restarting the ceres session might break things like Always On Mode or the battery display for the remaining uptime. Reboot the watch in that case. You may reboot the watch manually, or you may use the --boot option of watchface.

watchface summary

If invoked without arguments, the watchface command will start a text menu (using dialog if available, otherwise using whiptail). A GUI based menu (using zenity is also available using the -g option.

watchface [option] [command...]
Utility functions for AsteroidOS watchfaces.  By default, uses "Developer Mode"
over ssh, but can also use "ADB Mode" using ADB.

Available options:
-h or --help    prints this help screen and quits
-a or --adb     uses ADB command to communicate with watch
-b or --boot    reboot watch after deploying multiple watchfaces
-g or --gui     use the GTK+ gui
-p or --port    specifies a port to use for ssh and scp commands
-r or --remote  specifies the remote (watch)  name or address for ssh and scp commands
-q or --qemu    communicates with QEMU emulated watch (same as -r localhost -p 2222 )
-w or --wall WP sets the wallpaper for deploy or test to the named file

Available commands:
version         displays the version of this program and exits
deploy WF       pushes the named watchface to the watch and activates it
clone WF NEWWF  clones the named watchface WF to new watchface NEWWF
test WF         sets the active watchface to the named watchface

Cloning a watchface

Cloning a watchface can be done either via either of the two gui options mentioned above or by the command line argument listed above.

Example:

./watchface clone decimal-time mister-snerd

This will clone the decimal-time watchface into a new watchface named mister-snerd and make the appropriate substitutions within paths and qml files. You can now make changes to your new mister-snerd and make it your own.

See the Watchface Creation Guide for more details.

Testing a watchface

Testing a watchface can be done either via either of the two gui options mentioned above or by the command line argument listed above.

Example:

./watchface test decimal-time

This will start up a qmlscene tester for the named watch (decimal-time in this case) and allow you to see it operating or observe the effects of changes you make. There are some limitations to the existing test script. See the Watchface Creation section on using the test script for details.

Following great community contributions are available

Round Display Square Display Watchface Title Creator
thumbnail thumbnail analog-asteroid-logo eLtMosen
thumbnail thumbnail analog-boombox eLtMosen
thumbnail thumbnail analog-classy-roman eLtMosen
thumbnail thumbnail analog-commander IvoHulsman
thumbnail thumbnail analog-goldie eLtMosen
thumbnail thumbnail analog-duppy-vintage eLtMosen
thumbnail thumbnail analog-halloween beroset
thumbnail thumbnail analog-modern-steel CosmosDev
thumbnail thumbnail analog-moega-sushimaster eLtMosen
thumbnail thumbnail analog-neon-diver eLtMosen
thumbnail thumbnail analog-nort eLtMosen
thumbnail thumbnail analog-precision Mario Kicherer
thumbnail thumbnail analog-railway eLtMosen
thumbnail thumbnail analog-red-handed eLtMosen
thumbnail thumbnail analog-rings eLtMosen
thumbnail thumbnail analog-scientific eLtMosen
thumbnail thumbnail analog-silly-walks eLtMosen
thumbnail thumbnail analog-silver-swerver eLtMosen
thumbnail thumbnail analog-tactical eLtMosen
thumbnail thumbnail analog-weather-glow eLtMosen
thumbnail thumbnail analog-words-80s eLtMosen
thumbnail thumbnail arc (multiple) jgibbon
thumbnail thumbnail binary-digital eLtMosen
thumbnail thumbnail binary-lcd eLtMosen
thumbnail thumbnail bold-hour-bebas-v2 eLtMosen
thumbnail thumbnail clean-bars eLtMosen
thumbnail thumbnail day-clock-24h eLtMosen
thumbnail thumbnail decimal-time beroset
thumbnail thumbnail digital-alternative-default-mosen eLtMosen
thumbnail thumbnail digital-alternative-mosen eLtMosen
thumbnail thumbnail digital-charge-state beroset
thumbnail thumbnail digital-fat-bwoy-slim eLtMosen
thumbnail thumbnail digital-koiyu dodoradio
thumbnail thumbnail digital-namazu-no-henka eLtMosen
thumbnail thumbnail digital-night-stand-outfit eLtMosen
thumbnail thumbnail digital-noto-seconds Commenter25
thumbnail thumbnail digital-numeral-unity eLtMosen
thumbnail thumbnail digital-pop-space eLtMosen
thumbnail thumbnail digital-random-color-pop eLtMosen
thumbnail thumbnail digital-shifted eLtMosen
thumbnail thumbnail digital-thoreau-simplify beroset
thumbnail thumbnail greenium eLtMosen
thumbnail thumbnail humongous eLtMosen
thumbnail thumbnail karlos-matrix eLtMosen
thumbnail thumbnail kitt jgibbon
thumbnail thumbnail logo-45degree eLtMosen
thumbnail thumbnail motivational-quotes eLtMosen
thumbnail thumbnail nixie-delight beroset
thumbnail thumbnail numerals-duo-neon-green MagneFire
thumbnail thumbnail orbiting-asteroids eLtMosen
thumbnail thumbnail prominent-seconds eLtMosen
thumbnail thumbnail pulsedot eLtMosen
thumbnail thumbnail rainbow-uprising eLtMosen
thumbnail thumbnail resistance-is-futile beroset
thumbnail thumbnail retro-lcd Huntereb, eLtMosen
thumbnail thumbnail sporty-round eLtMosen
thumbnail thumbnail sporty-round-v2 eLtMosen
thumbnail thumbnail words-worte-palabras-mots-opensans Aleksi Suomalainen, Florent Revest, Sylvia van Os, Timo Könnecke, Oliver Geneser

Licenses

Watchface - File License
analog-boombox - Dangrek The font "Dangrek" is licensed under SIL Open Font License and was created by The Dangrek Project Authors. license
digital-pop-space - Baloo Tammudu 2 The font "Baloo Tammudu 2" is licensed under SIL Open Font License and was created by Ek type. license
digital-pop-space - Outrun future The font "Outrun future" is licensed under a custom license that allows "Anyone may use these fonts for non-profit projects". It was created by Press Gang Studios. license
analog-duppy-vintage - Kumar One Kumar One Outline The font "Kumar One" is licensed under SIL Open Font License and was created by Indian Type Foundry. license
analog-duppy-vintage - Varieté - Regular The font "Varieté" is licensed under SIL Open Font License and was created by Peter Wiegel. license
digital-fat-bwoy-slim - NASDAQER The font "NASDAQER" is licensed under CC BY 3.0 License and was created by Gustavo Paz L. license
analog-neon-diver - Bebas Neue The font "Bebas Neue" is licensed under SIL Open Font License and was created by Dharma Type. license
analog-classy-roman - Roboto Condensed - Bold The font "Roboto Condensed" is licensed under Apache License, Version 2.0 and was created by Christian Robertson. license
analog-commander - Michroma - Regular The font "Michroma - Regular" is licensed under SIL Open Font License and was created by Vernon Adams. license
analog-commander - Teko The font "Teko" is licensed under SIL Open Font License and was created by Indian Type Foundry. license
analog-modern-steel - Michroma - Regular The font "Michroma" is licensed under SIL Open Font License and was created by Vernon Adams. license
analog-silly-walks - Varieté - Regular The font "Varieté" is licensed under SIL Open Font License and was created by Peter Wiegel. license
analog-red-handed - PTSans - Bold The font "PTSans" is licensed under SIL Open Font License and was created by Alexandra Korolkova, Olga Umpeleva and Vladimir Yefimov and released by ParaType. license
analog-red-handed - Russo One - Regular The font "Russo One" is licensed under SIL Open Font License and was created by Jovanny Lemonad. license
pulsedot - Source Sans Pro - Semibold Source Sans Pro - Regular The font "Source Sans Pro" is licensed under SIL Open Font License and was created by Paul D Hunt. license
retro-lcd - Digital-7 (Mono) The font "Digital-7" is freeware for home use and was created by Sizenko Alexander.
binary-lcd - Digital-7 (Mono) The font "Digital-7" is freeware for home use and was created by Sizenko Alexander.
analog-rings SlimSans The font "SlimSans" was created by Manfred Klein. Manfred’s fonts are free for private and charity use. They are even free for commercial use – but if there’s any profit, pls make a donation to organizations like Doctors Without Borders
day-clock-24h - Vollkorn-Regular The font "Vollkorn" is licensed under SIL Open Font License and was created by Friedrich Althausen. license
digital-charge-state - Titillium-Bold, Titillium-Light The font "Titillium" is licensed under SIL Open Font License and was created at the Accademia di Belle Arti di Urbino. license
sporty-round, sporty-round-v2 SlimSans The font "SlimSans" was created by Manfred Klein. Manfred’s fonts are free for private and charity use. They are even free for commercial use – but if there’s any profit, pls make a donation to organizations like Doctors Without Borders
numerals-duo-neon-green - Assets Assets are originally adapted from mo_sandhu
orbiting-asteroids - Blue Marble The image "Blue Marble", Eastern Hemisphere March 2014, Photo from NASA Goddard Space Flight Center is available under creative commons license
binary-digital - Simpleness The font "Simpleness" is licensed under SIL Open Font License and was created by Valentin Francois. license
humongous - Item-Black The font "Item" is Public Domain and was created by Bojmic Interpro.
logo-45degree - Sinner The font "Sinner" is freeware for personal, non-commercial use only and was created by Helge Barske. license-info
motivational-quotes - Lobster The font "Lobster" is licensed under SIL Open Font License and was created by Impallari Type. license
nixie-delight - Feronia The font "Feronia" is licensed under GPL with font exception and SIL Open Font License and was created by Peter Wiegel. license
clean-bars, decimal-time - CPMono_v07 The font "CPMono_v07" is licensed under CC-BY-3.0 and was created by Tino Meinert, Liquitype. license
analog-scientific - Reglo The font "Reglo" is licensed under SIL Open Font License and was created by sebsan, Sebastien Sanfilippo. license
karlos-matrix - Elektra SH According to fonts4free.net, the font "Elektra SH" is free for both personel and commercial usages and was created by Samy Halim. license
alternative-digital-mosen - GeneraleMono The font "GeneraleMono" is licensed under SIL Open Font License and was created by ARIEL MARTÍN PÉREZ. license

unofficial-watchfaces's People

Contributors

anyc avatar beroset avatar commenter25 avatar cosmosdev avatar dodoradio avatar eltmosen avatar florentrevest avatar hachiman-su avatar huntereb2 avatar jgibbon avatar magnefire avatar ncaat avatar robthebold avatar sebastianappler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

unofficial-watchfaces's Issues

Tooltips for the buttons in loader.qml

While trying to integrate tooltips into the buttons so we could use a shorter description or even symbols for those, while still informing the user what the button does when the mouse hovers above the button and "short name".

Currently QtQuick.Controls 1.4 is imported to support the toolbar.
However, this version does not support tooltips. Those must have been added after QtQuick.Controls >2.0. But when i import QtQuick.Controls <2.0 the current toolBar:syntax breaks.

toolBar: ToolBar {

Are tooltips and a shorter description to save space and avoid multiple rows of buttons even desirable?
If yes, how to then adapt the current implementation to play along with recent QtQuick.Controls?

Time picker and static time mode for loader.qml

The loader.qml concept is most useful while creating and prototyping watchfaces.
To further help with that, it would be nice to be able to stop the use of the dynamic date() via a button and thus freeze the clock.
This would

  • make it possible to use the new "reload" feature to see saved code changes on a constant clock/watchface position.
    solved here 8f5a5a8
  • be helpful to test watchfaces quickly in all possible "positions" and help prevent oversights like happened in the stock-words watchface.
  • complement the screenshot feature, manually setting the time or hands position for a good looking screenshot would be cool.

Ideally the hour and minute picker would be separate items so one can either forward the hours our minutes to influence those parameters individually. The seconds(/hands) could just restart at 12-o-clock every time a new time is set.
In asteroid settings we use tumblers to set the time. Imo it would be great to have a similar time picker in the loader.qml which could be operated by using the mouse wheel. I tried to integrate tumblers into the toolbar but failed as of yet. If tumblers are not possible, a mouse area where the current value changes in place when the mouse wheel is turned would also do the job.
Least effort, but also least convenient for dynamic testing where time ideally changes in rather quick succession using e.g. the mouse wheel, would be fixed text input boxes to set a static time one by one.

[Feature Request] Deploy all or multiple watchfaces at once

Its kind of a regression comparing the watchface scriot to the old deploy.sh

At least the "deploy all" option should be made available again in some fashion.

Easiest i could think of is to reintroduce a dedicated deploy_all.sh for that single use case.
Since frankly, looking into the code, i found no imidiate way how to implement this.

How are watchfaces ported to AsteroidOS? Are Watchmaker watchfaces compatible?

Hello,

Forgive me for this question as I am not too familiar with the world of wearables, but this project looks like a fantastic one as I am an enthusiastic supporter of FOSS projects.

My main question is how are watchfaces designed and ported to AsteroidOS? Can some of the watchfaces from the Watchmaker app (such as this one, for example https://getwatchmaker.com/watchface/timex-expedition-model-t43371) be ported to AsteroidOS?

Thank you.

Make settings done in the testing script persist.

Beroset noted on matrix it would be cool if the checkmarks in the script settings would be "sticky".
I figure this would need some config file read and written by the script and ignored by git.

provide a simple means of cloning a watchface

In discussion on matrix, @eLtMosen suggested the idea of being able to easily clone a watchface as a starting point for creating a new variant. Ideally this should be done in a shell script without adding too many new requirements to be able to run, as contrasted with, for example, writing such a utility in Perl or Python.

Error while deploying

When I run ./watchface -a, I get the following error message:

Error: "analog-asteroid-logo" does not appear to be a watchface

Seems to be an issue with the double quotes in array getting included in the file paths.

Watchfaces not fiting on round display (bass)

"humongous" and "karlos-matrix" do not fully fit in the round display of "bass".

"retro-lcd" Font is too small too.

For "karlos-matrix" - Sliding a bit to the side shows the day/seconds.

Pushing watchfaces no longer works

With the latest change in 79c3688, pushing watchfaces no longer works. Here's an illustration using ADB mode.

$ ./deploy.sh -a
Communicating via ADB
 1) DEPLOY-ALL                          13) analog-nort/                        25) arc/                                37) digital-night-stand-outfit/         49) logo-45degree/
 2) analog-asteroid-logo/               14) analog-precision/                   26) binary-digital/                     38) digital-noto-seconds/               50) motivational-quotes/
 3) analog-aviator/                     15) analog-railway/                     27) binary-lcd/                         39) digital-numeral-unity/              51) nixie-delight/
 4) analog-boombox/                     16) analog-red-handed/                  28) bold-hour-bebas-v2/                 40) digital-outfit/                     52) numerals-duo-neon-green/
 5) analog-circle-shades/               17) analog-rings/                       29) clean-bars/                         41) digital-pop-space/                  53) numerals-duo-synth-neon-green/
 6) analog-classy-roman/                18) analog-scientific/                  30) day-clock-24h/                      42) digital-random-color-pop/           54) orbiting-asteroids/
 7) analog-duppy-vintage/               19) analog-scientific-v2/               31) decimal-time/                       43) digital-shifted/                    55) prominent-seconds/
 8) analog-goldie/                      20) analog-silly-walks/                 32) digital-alternative-default-mosen/  44) digital-thoreau-simplify/           56) pulsedot/
 9) analog-halloween/                   21) analog-tactical/                    33) digital-alternative-mosen/          45) greenium/                           57) rainbow-uprising/
10) analog-modern-steel/                22) analog-weather-glow/                34) digital-charge-state/               46) humongous/                          58) retro-lcd/
11) analog-moega-sushimaster/           23) analog-words/                       35) digital-fat-bwoy-slim/              47) karlos-matrix/                      59) sporty-round/
12) analog-neon-diver/                  24) analog-words-80s/                   36) digital-namazu-no-henka/            48) kitt/                               60) sporty-round-v2/
- Deploy watchface by entering its number - 
- Refresh list with the enter key -
- Quit with any other input -1
adb: error: cannot stat 'analog-asteroid-logo//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-aviator//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-boombox//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-circle-shades//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-classy-roman//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-duppy-vintage//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-goldie//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-halloween//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-modern-steel//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-moega-sushimaster//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-neon-diver//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-nort//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-precision//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-railway//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-red-handed//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-rings//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-scientific//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-scientific-v2//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-silly-walks//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-tactical//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-weather-glow//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-words//usr/share/*': No such file or directory
adb: error: cannot stat 'analog-words-80s//usr/share/*': No such file or directory
adb: error: cannot stat 'arc//usr/share/*': No such file or directory
adb: error: cannot stat 'binary-digital//usr/share/*': No such file or directory
adb: error: cannot stat 'binary-lcd//usr/share/*': No such file or directory
adb: error: cannot stat 'bold-hour-bebas-v2//usr/share/*': No such file or directory
adb: error: cannot stat 'clean-bars//usr/share/*': No such file or directory
adb: error: cannot stat 'day-clock-24h//usr/share/*': No such file or directory
adb: error: cannot stat 'decimal-time//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-alternative-default-mosen//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-alternative-mosen//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-charge-state//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-fat-bwoy-slim//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-namazu-no-henka//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-night-stand-outfit//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-noto-seconds//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-numeral-unity//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-outfit//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-pop-space//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-random-color-pop//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-shifted//usr/share/*': No such file or directory
adb: error: cannot stat 'digital-thoreau-simplify//usr/share/*': No such file or directory
adb: error: cannot stat 'greenium//usr/share/*': No such file or directory
adb: error: cannot stat 'humongous//usr/share/*': No such file or directory
adb: error: cannot stat 'karlos-matrix//usr/share/*': No such file or directory
adb: error: cannot stat 'kitt//usr/share/*': No such file or directory
adb: error: cannot stat 'logo-45degree//usr/share/*': No such file or directory
adb: error: cannot stat 'motivational-quotes//usr/share/*': No such file or directory
adb: error: cannot stat 'nixie-delight//usr/share/*': No such file or directory
adb: error: cannot stat 'numerals-duo-neon-green//usr/share/*': No such file or directory
adb: error: cannot stat 'numerals-duo-synth-neon-green//usr/share/*': No such file or directory
adb: error: cannot stat 'orbiting-asteroids//usr/share/*': No such file or directory
adb: error: cannot stat 'prominent-seconds//usr/share/*': No such file or directory
adb: error: cannot stat 'pulsedot//usr/share/*': No such file or directory
adb: error: cannot stat 'rainbow-uprising//usr/share/*': No such file or directory
adb: error: cannot stat 'retro-lcd//usr/share/*': No such file or directory
adb: error: cannot stat 'sporty-round//usr/share/*': No such file or directory
adb: error: cannot stat 'sporty-round-v2//usr/share/*': No such file or directory
 
Press 'y' to restart the ceres session on the watch.
Or get back to watchface selection with any other key press.

Watchface housekeeping and preparation for some kind of store

As frequently discussed on matrix now, it would be desirable to have some kind of store for the watchfaces (and apps).
The whole store idea is not only unofficial-watchface related and will sure be discussed in a dedicated place.
In preparation to get the watchface related content in order i would like to start off with cleaning the current list in README.md by:

  • Sort all WF alphabetically

  • Update/correct those thumbnails in the square-column that have not been taken on Flatmesh background

  • Make sure all watchfaces display correctly on square watches since most are developed on and for round screens.

  • Discuss here wether to add few more columns to the list to display certain WF features

  • Discuss which features to list at all.

  • update all watchface image path and references to ../watchface-img/<wf-shortname>imagename.suffix

  • change all asteroid_logo.png to asteroid-logo.svg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.