~xigoi/vier

6baa96148fef80241021fbc7ba7ec3928de17b24 — Adam Blažek 8 months ago 2c36619
More documentation
M README.md => README.md +1 -1
@@ 2,4 2,4 @@

_Vier_ is a keyboard-focused pixel art editor heavily inspired by Vim.

**[Documentation](https://xigoi.srht.site/vier)**
**[Documentation](https://xigoi.srht.site/vier/)**

M src/palettes.nim => src/palettes.nim +7 -7
@@ 24,9 24,9 @@ let
      [
        color"#FF0055",
        color"#00000000",
        color"#00000066",
        color"#000000AA",
        color"#000000FF",
        color"#00000000",
        color"#00000000",
        color"#00000000",
        color"#00FF00"
      ],
      [


@@ 39,10 39,10 @@ let
      ],
      [
        color"#FF00FF",
        color"#00000000",
        color"#00000000",
        color"#00000000",
        color"#00000000",
        color"#000000AA",
        color"#00000055",
        color"#FFFFFF55",
        color"#FFFFFFAA",
        color"#00FFAA"
      ],
      [

M website/index.html => website/index.html +3 -1
@@ 6,6 6,8 @@
</style></head><body>
<h1>Vier</h1>
<p><dfn>Vier</dfn> is a keyboard-focused pixel art editor heavily inspired by Vim.</p>
<figure><img src="./screenshot.png" alt="A screenshot of Vier" /></figure>
<section><h2 class="xd-section-heading">Features</h2><ul><li>Can be fully used without a mouse, though drawing with a mouse is also supported</li><li>Modal editing</li><li>Edit multiple images</li><li>Uncluttered, minimalistic UI</li><li>Uncompromised performance: everything happens instantly, including startup</li><li>Works directly with images, no need to bother with project files</li></ul></section>
<section><h2 class="xd-section-heading">Source code</h2><p>The source code is available <a href="https://git.sr.ht/~xigoi/vier/">on SourceHut</a> or <a href="https://gitlab.fjfi.cvut.cz/blazead5/vier/">on my faculty’s GitLab instance</a>.</p></section>
<section><h2 class="xd-section-heading">Installation</h2><p>Vier is written in <a href="https://nim-lang.org/">Nim</a>, so the language and its tooling must be installed.</p>
<p>For GNU/Linux, just use the command</p>


@@ 63,6 65,6 @@ Note that the mouse can also be used to draw and select colors. The right mouse 
<section><h2 class="xd-section-heading">Commands</h2><dl><dt><code>e image.png</code></dt><dd>open a file for editing (the filename is a symbol)</dd><dt><code>edit &quot;image.png&quot;</code></dt><dd>open a file for editing (the filename is a string)</dd><dt><code>flip-x</code></dt><dd>flip the current picture horizontally</dd><dt><code>flip-y</code></dt><dd>flip the current picture vertically</dd><dt><code>new</code></dt><dd>create a new picture with a transparent background and the default size</dd><dt><code>resize 16 8</code></dt><dd>resize the current picture, anchoring at the northwest corner</dd><dt><code>resize-nn 16 8</code></dt><dd>resize the current picture using the nearest-neighbor algorithm</dd><dt><code>w image.png</code></dt><dd>save the current picture under the specified filename (the filename is a symbol)</dd><dt><code>write &quot;image.png&quot;</code></dt><dd>save the current picture under the specified filename (the filename is a string)</dd></dl>
<p>Note that currently, edits done via commands are not added to undo history and break it.</p></section>
<section><h2 class="xd-section-heading">Planned features</h2><p>Roughly in order of priority.</p>
<ul><li>ellipse tool</li><li>upscaling (various algorithms)</li><li>better editing support and tab completion for the command line</li><li>mirrored drawing</li><li>color picker, palette editing</li><li>programmable configuration</li><li>gradients</li><li>animated sprite editing</li></ul></section>
<ul><li>ellipse tool</li><li>upscaling (various algorithms)</li><li>better editing support and tab completion for the command line</li><li>mirrored drawing</li><li>color picker, palette editing</li><li>variations of tools (wide brush, fill with tolerance)</li><li>programmable configuration</li><li>gradients</li><li>animated sprite editing</li></ul></section>
<section><h2 class="xd-section-heading">Name</h2><p>I partially created Vier as a semestral project for a Computer Graphics course at my university. The name of the lecturer can be loosely translated as “fear”, so I decided to name the project after a German word which is pronounced the same way. The word means “four”, which hints at the editor treating images as a square grid (with squares having four sides, obviously). I also came up with the backronym “Vim-Inspired Editor of Rasters”.</p></section>
</body></html>
\ No newline at end of file

M website/index.xd => website/index.xd +12 -0
@@ 10,6 10,17 @@
[title Vier]
[link-stylesheet xi.css]
[p [term Vier] is a keyboard-focused pixel art editor heavily inspired by Vim.]
[figure [link-image A screenshot of Vier; ./screenshot.png]]
[section Features;
  [list
    ; Can be fully used without a mouse, though drawing with a mouse is also supported
    ; Modal editing
    ; Edit multiple images
    ; Uncluttered, minimalistic UI
    ; Uncompromised performance: everything happens instantly, including startup
    ; Works directly with images, no need to bother with project files
  ]
]
[section Source code;
  [p The source code is available [link on SourceHut; https://git.sr.ht/~xigoi/vier/] or [link on my faculty’s GitLab instance; https://gitlab.fjfi.cvut.cz/blazead5/vier/].]
]


@@ 121,6 132,7 @@
    ; better editing support and tab completion for the command line
    ; mirrored drawing
    ; color picker, palette editing
    ; variations of tools (wide brush, fill with tolerance)
    ; programmable configuration
    ; gradients
    ; animated sprite editing

A website/pgr.html => website/pgr.html +13 -0
@@ 0,0 1,13 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="generator" content="xidoc"><meta name="viewport" content="width=device-width,initial-scale=1"><!--
  © 2023 Adam Blažek <blazead5@cvut.cz>
  SPDX-License-Identifier: GPL-3.0-or-later
--><title>PGR | Vier</title><link rel="stylesheet" href="xi.css" /><style>:root{--fg-accent:#4ea;}
:root{--bg-accent:#275;}</style></head><body>
<h1>PGR | Vier</h1>
<section><h2 class="xd-section-heading">Osobní údaje</h2><dl><dt>Jméno autora</dt><dd>Adam Blažek</dd><dt>Akademický rok</dt><dd>2023–2024</dd><dt>Studijní zaměření</dt><dd>Matematické inženýrství / Matematická informatika</dd></dl></section>
<section><h2 class="xd-section-heading">Zadání</h2><p>(Nápad na projekt je můj, tudíž tohle není formální zadání.)</p>
<p>Naprogramovat nástroj na kreslení a úpravu rastrové grafiky na úrovni jednotlivých pixelů (pixel-art editor).</p></section>
<section><h2 class="xd-section-heading">Použité nástroje</h2><p>Editor je naprogramován v jazyce <a href="https://nim-lang.org/">Nim</a>.</p>
<p>K některým funkcionalitám, které přímo nesouvisí s úpravou grafiky, používám externí knihovny:</p>
<dl><dt><a href="https://www.raylib.com/">raylib</a></dt><dd>použita k vytvoření grafického prostředí a čtení/zápis souborů s grafikou</dd><dt><a href="https://github.com/planetis-m/naylib">naylib</a></dt><dd>použita pro snadnější interakci s knihovnou raylib z jazyka Nim</dd><dt><a href="https://github.com/gokr/spryvm">spryvm</a></dt><dd>použita k zabudování jednoduchého programovacího jazyka do editoru</dd></dl></section>
</body></html>
\ No newline at end of file

A website/pgr.xd => website/pgr.xd +31 -0
@@ 0,0 1,31 @@
[add-to-head [pass-raw <!--
  © 2023 Adam Blažek <blazead5@cvut.cz>
  SPDX-License-Identifier: GPL-3.0-or-later
-->]]
[set syntax-highlighting-theme; funky-x]
[style
  [var fg-accent; #4ea]
  [var bg-accent; #275]
]
[title PGR | Vier]
[link-stylesheet xi.css]
[section Osobní údaje;
  [description-list
    ; Jméno autora; Adam Blažek
    ; Akademický rok; 2023[--]2024
    ; Studijní zaměření; Matematické inženýrství / Matematická informatika
  ]
]
[section Zadání;
  [p (Nápad na projekt je můj, tudíž tohle není formální zadání.)]
  [p Naprogramovat nástroj na kreslení a úpravu rastrové grafiky na úrovni jednotlivých pixelů (pixel-art editor).]
]
[section Použité nástroje;
  [p Editor je naprogramován v jazyce [link Nim; https://nim-lang.org/].]
  [p K některým funkcionalitám, které přímo nesouvisí s úpravou grafiky, používám externí knihovny:]
  [description-list
    ; [link raylib; https://www.raylib.com/]; použita k vytvoření grafického prostředí a čtení/zápis souborů s grafikou
    ; [link naylib; https://github.com/planetis-m/naylib]; použita pro snadnější interakci s knihovnou raylib z jazyka Nim
    ; [link spryvm; https://github.com/gokr/spryvm]; použita k zabudování jednoduchého programovacího jazyka do editoru
  ]
]

A website/screenshot.png => website/screenshot.png +0 -0