Code Monkey home page Code Monkey logo

webgui's Introduction

WebGui

  • Web Technologies based Crossplatform GUI.

Install

$ nimble install webgui

WebGUI also requires that your OS have the GTK+ 3.0 and webkit2gtk 4.0 packages installed (Nimble should ask for these system dependencies on Ubuntu).

Generic instructions can be found at:

In Ubuntu (or Ubuntu-based distributions), these packages can be installed as follows:

$ sudo apt-get install gtk+-3.0 webkit2gtk-4.0 build-essential

Documentation

Buit-in Dark Mode

Dark mode

Buit-in Light Mode

Light mode

Apple Mac OS

Real Life Apps

Ballena Itcher GUI

SMNAR GUI

Nimble GUI

example code

Choosenim GUI

Uninstall

$ nimble uninstall webgui

Hello World

import webgui
let app = newWebView()
app.run()
app.exit()

FAQ

  • Does it works on Hackintosh or Cracked Windows?.

It may or may not work on Cracked operating systems, because the core OS libraries are modified on those.

Please try your code on legit operating system before reporting bugs.

  • On Windows it says it can not find the URL?.

Windows is more annoying about URL format, check your URL is correct, try with raw string literal.

Please check that your URL is correct before reporting bugs.

  • Whats the oldest compatibility?.

If you need to target Windows, then your software needs to support Internet Explorer 11.

See also

💰➡️🍕

Bitcoin BTC

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

BTC Bitcoin Network

1Pnf45MgGgY32X4KDNJbutnpx96E4FxqVi

Lightning Network

Ethereum ETH Dai DAI Uniswap UNI Axie Infinity AXS Smooth Love Potion SLP Uniswap UNI USDC

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e
Tether USDT

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e

TRC20 Tron Network

TWGft53WgWvH2mnqR8ZUXq1GD8M4gZ4Yfu
Solana SOL

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

SOL Solana Network

FKaPSd8kTUpH7Q76d77toy1jjPGpZSxR4xbhQHyCMSGq
Cardano ADA

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ADA Cardano Network

DdzFFzCqrht9Y1r4Yx7ouqG9yJNWeXFt69xavLdaeXdu4cQi2yXgNWagzh52o9k9YRh3ussHnBnDrg7v7W2hSXWXfBhbo2ooUKRFMieM
Sandbox SAND Decentraland MANA

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e
Algorand ALGO

ALGO Algorand Network

WM54DHVZQIQDVTHMPOH6FEZ4U2AU3OBPGAFTHSCYWMFE7ETKCUUOYAW24Q
Polkadot DOT

DOT Network

13GdxHQbQA1K6i7Ctf781nQkhQhoVhGgUnrjn9EvcJnYWCEd

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e
Binance

https://pay.binance.com/en/checkout/e92e536210fd4f62b426ea7ee65b49c3

Stars

@juancarlospaco@egeoz@kklam47@sinocxg@codehangen@Zireael07@jgdevop@linwaytin@0x454d505459@Sindou-dedv@depperm@KlausEverWalkingDev@fadzikri@Nyarmith@themorya@drighty@yaroslav-gwit@ArikRahman@tondrejk@nodrygo@transmutrix@laoshaw@DeanHnter@konsumer@Kaput-EMEX@whitebm2024@georgelemon@exitcas@gpicron@meet-ai@ViktorSvertoka@CardealRusso@insolitum@eantho@waryu-YND@inter1965@shirk33y@kylarf@aphkyle@Lucifer25x@overtube@Angluca@PunchCakee@cypherwytch@degaur@catsuns@KolyaRS@woidzero@michaelnew@primatekid@majj@gnusec@lzw-723@nichdemos@ToniCron@enaaab460@all-an@rubigc@PattMayne@demosthenez@wjl12@FI-Mihej

webgui's People

Contributors

0x454d505459 avatar all-an avatar angluca avatar aphkyle avatar arikrahman avatar bung87 avatar cardealrusso avatar cypherwytch avatar deanhnter avatar demosthenez avatar depperm avatar drighty avatar egeoz avatar enaaab460 avatar exitcas avatar fi-mihej avatar georgelemon avatar gnusec avatar johnad avatar juancarlospaco avatar klauseverwalkingdev avatar kolyars avatar lucifer25x avatar nyarmith avatar pattmayne avatar thomastjdev avatar tonicron avatar viktorsvertoka avatar zireael07 avatar zoomrmc 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  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  avatar  avatar

Watchers

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

webgui's Issues

Can't import on MacOS Catalina

Hi! I was trying to run the examples made by ThomasTJdev, and after not being able to run any of the examples, I narrowed the problem to the first line.

import webgui

It seems this makes clang show a lot of errors that I can't even begin to debug. (Nim beginner here!).

I made this gist with the build log on my machine.

I'm using the latest WebGUI from Nimble (0.4.0), and I'm running Nim 1.2.0 installed by Homebrew in MacOS Catalina 10.15.3. Can try any suggestions if needed.

bindProcs issue: CONSOLE JS ERROR ReferenceError: Can't find variable: api

Hello again. Could you please help me out with this error message?
It shows up in the Nim console:

index.html#loaded:53:4: CONSOLE JS ERROR ReferenceError: Can't find variable: api

Code snippets I used:
app.nim

import webgui
import os
import strutils
import osproc

let app = newWebView(currentHtmlPath(), "Window Title", 650, 610)

app.bindProcs("api"):
  proc callback() = echo execCmd("echo 'Nim is awesome'")

app.run()
app.exit()

index.html button

<button onclick="api.callback()" type="button" class="btn btn-warning m-1" style="min-width: 170px;">Remind me later</button>

Bootstrap/Tailwind support

Your project looks really interesting.
I haven't tried to use anything advanced with it yet, but would it be possible to integrate Bootstrap or Tailwind into the app?

Bare/GTK html styles don't look as good as Tailwind or Bootstrap, hence why I am asking.

[Linux] TypeError: undefined is not an object (evaluating 'window.external.invoke')

Hi Juan,

I started working on a package manager GUI sometime last year and settled on webgui. I got pretty far into it but had to stop working on it due to other things taking higher priority. I have some time now and wanted to continue development but I'm getting stumped by this error I was not getting before.

I'm using Thomas's nim_nimble_gui example GUI app to showcase the problem. But basically, clicking any of the 'Nimble commands' buttons does not run their respective Nim backend function/logic. Instead, the console logs the following error: TypeError: undefined is not an object (evaluating 'window.external.invoke').

This used to work, as I remember playing with the example GUI apps. Trying the example app on macOS Big Sur works fine. I also installed Ubuntu 20.04 on a spare machine and got the same error.

Would you happen to have any insight as to what could be causing this error?

example_gui_app__70

Please use release tags to help with versioning

I just installed a project that is using webgui and got compiler errors. The .nimble file for that project required webgui version 0.1.0. I was able to figure out that the version 0.1.0 in my computer is on an older commit than the current version 0.1.0. So, I upgraded to the new 0.1.0. I'm still getting errors, but they are different ones now.

I recommend adding using the release function of GitHub so that the official version 0.1.0 is pointing to a specific commit.

Or, roll the release number in webgui.nimble to 0.1.1 and create a 0.1.1 release pointing to the current commit number.

Maximized wins

Hello world ! It seems impossible to maximize windows at startup. Please, is it possible to add that feature ? Or is it me that ignore how to do it ?

import html from a variable

hey, if i try to put the html in a variable and use it on newWebView i get the following error:
first type mismatch at position: 1
required type for path: static[string]
but expression 'dataUriHtmlHeader' is of type: string

Question: Can you use relative filepaths for HTML files? If not, how could you ship an application using webgui?

I recently started playing around with webgui and must say I like it quite a bit.
From what I gather, basically just write an SPA, throw it together with webgui and ship it, you can use the OS' JS/HTML/CSS engines and your own webserver, which should cut down application size by like 1 entire Browser and a second JS engine compared to electron.

My thoughts soon turned towards how I would ship an application with webgui though if I were to make one.
Something that caused issues there was the fact that file-paths are determined at compile-time instead of at runtime, combined with the fact that they appear to be absolute (?).
I'm actually not that certain about the "absolute" part, but I couldn't manage getting relative filepaths to work and the docs appear to support my assumption ( path is the URL **or Full Path** to 1 HTML file, index of the Web GUI App.).
Anyway, my worry is, that if my application uses absolute filepath X that gets hard-coded at compiletime, then I can't just package the binary + HTML file into a folder (e.g. /home/karl/potatofolder) and chuck it somewhere on another user's drive (e.g. home/klaus/potato), the path to that folder might be different on that user's machine, even though the relative filepaths of the index.html to the binary stayed the same!
If I could instruct the binary basically to just say "do not care about the path, the HTML file is in the same folder as you" that would alleviate my worries there.

Otherwise the only thing I could think of to ship a webgui application would be to ship it in a docker container or somesuch which come with their own file-system that I can do with whatever I want. Feels somewhat odd though.

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.