qrterminal

package module
v3.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2023 License: MIT Imports: 7 Imported by: 141

README

QRCode Terminal

Build Status

A golang library for generating QR codes in the terminal.

Originally this was a port of the NodeJS version. Recently it's been updated to allow for smaller code generation using ASCII 'half blocks'

Example

Full size ASCII block QR Code:
alt text

Smaller 'half blocks' in the terminal:
alt text

Install

For command line usage see below, or grab the binary from the releases page

As a library in an application

go get github.com/mdp/qrterminal/v3

Usage

import (
    "github.com/mdp/qrterminal/v3"
    "os"
    )

func main() {
  // Generate a 'dense' qrcode with the 'Low' level error correction and write it to Stdout
  qrterminal.Generate("https://github.com/mdp/qrterminal", qrterminal.L, os.Stdout)
}
More complicated

Large Inverted barcode with medium redundancy and a 1 pixel border

import (
    "github.com/mdp/qrterminal/v3"
    "os"
    )

func main() {
  config := qrterminal.Config{
      Level: qrterminal.M,
      Writer: os.Stdout,
      BlackChar: qrterminal.WHITE,
      WhiteChar: qrterminal.BLACK,
      QuietZone: 1,
  }
  qrterminal.GenerateWithConfig("https://github.com/mdp/qrterminal", config)
}

HalfBlock barcode with medium redundancy

import (
    "github.com/mdp/qrterminal/v3"
    "os"
    )

func main() {
  config := qrterminal.Config{
      HalfBlocks: true,
      Level: qrterminal.M,
      Writer: os.Stdout,
  }
  qrterminal.GenerateWithConfig("https://github.com/mdp/qrterminal", config)
}

Command Line

Installation

OSX: brew install mdp/tap/qrterminal

Others: Download from the releases page

Source: go install github.com/mdp/qrterminal/v3/cmd/qrterminal@latest

Docker: docker pull ghcr.io/mdp/qrterminal:latest

Usage

Print out a basic QR code in your terminal:
qrterminal https://github.com/mdp/qrterminal

Using 'medium' error correction:
qrterminal https://github.com/mdp/qrterminal -l M

Or just use Docker: docker run --rm ghcr.io/mdp/qrterminal:latest 'https://github.com/mdp/qrterminal'

You can also pipe text via stdin

cat wireguard_peer.conf | qrterminal

or

cat wireguard_peer.conf | docker run --rm -i ghcr.io/mdp/qrterminal:latest

Contributors/Credits:

Documentation

Index

Constants

View Source
const BLACK = "\033[40m  \033[0m"
View Source
const BLACK_BLACK = " "
View Source
const BLACK_WHITE = "▄"

Use ascii blocks to form the QR Code

View Source
const H = qr.H

Level - the QR Code's redundancy level

View Source
const L = qr.L
View Source
const M = qr.M
View Source
const QUIET_ZONE = 4

default is 4-pixel-wide white quiet zone

View Source
const SIXEL_BEGIN = "\x1bPq\n#0;2;0;0;0#1;2;100;100;100\n"

Sixel Support Control Sequence Color 0: Black Color 1: White

View Source
const SIXEL_BLOCK_SIZE = 12

Sixel Block Size, should be always greater than 6.

View Source
const SIXEL_END = "\x1b\\"
View Source
const WHITE = "\033[47m  \033[0m"
View Source
const WHITE_BLACK = "▀"
View Source
const WHITE_WHITE = "█"

Variables

This section is empty.

Functions

func Generate

func Generate(text string, l qr.Level, w io.Writer)

Generate a QR Code and write it out to io.Writer

func GenerateHalfBlock

func GenerateHalfBlock(text string, l qr.Level, w io.Writer)

Generate a QR Code with half blocks and write it out to io.Writer

func GenerateWithConfig

func GenerateWithConfig(text string, config Config)

GenerateWithConfig expects a string to encode and a config

func IsSixelSupported added in v3.2.0

func IsSixelSupported(w io.Writer) bool

Types

type Config

type Config struct {
	Level          qr.Level
	Writer         io.Writer
	HalfBlocks     bool
	BlackChar      string
	BlackWhiteChar string
	WhiteChar      string
	WhiteBlackChar string
	QuietZone      int
	WithSixel      bool
}

Config for generating a barcode

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL