Black Lives Matter. Support the Equal Justice Initiative and read our statement here.
LeafView

LeafView

Secure image viewer for minimalists.

LeafView

An image viewer for minimalists.

2020-04-13 15 07 43

GitHub CI GitHub license GitHub stars GitHub package.json dynamic

👍 Features

  • Pan & WheelZoom
  • Fast
  • Secure
  • Memory-Friendly
  • Auto Update (macOS)

📗 Usage

⌨️ Keyboard Shortcuts

Key Function Platform
J Next Image -
K Previous Image -
+ Zoom In -
- Zoom Out -
0 Reset Zoom -
pan -
Command+Control+F Toggle Fullscreen macOS
Command+Option+I Toggle Developer Tools macOS
Ctrl+T Show/Hide Menu Bar Windows
F11 Toggle Fullscreen Windows
Ctrl+Shift+I Toggle Developer Tools Windows

🖱️ Mouse Operations

Mouse Function
drag pan
double click reset zoom
wheel zoom in/out

🔒 Security

API Value
default-src (CSP) self
nodeIntegration false
enableRemoteModule false
worldSafeExecuteJavaScript true
contextIsolation true
safeDialogs true
sandbox true

🌈 Supported Image Formats

  • bmp (com.microsoft.bmp)
  • ico (com.microsoft.ico)
  • gif (com.compuserve.gif)
  • jpg (public.jpeg)
  • png (public.png)
  • svg (public.svg-image)
  • webp (com.google.webp)

🛠️ Build and Install

$ git clone git@github.com:sprout2000/leafview.git
$ cd leafview
$ npm install && npm run package

Note that you will need to have Node.js and Git installed.

And you might also need to have some build tools (ex. Microsoft Build Tools, Xcode) installed.

Download

💻 macOS (x64, arm64)

You can download the latest version of LeafView from the releases page here:
https://github.com/sprout2000/leafview/releases

🖥️ Windows10

You can download the latest version of LeafView from Microsoft Store.

🍻 Contribution

I need more locale files.
When you translate the menu into your language, please send me the locale file as a pull request.

  • Create {your_LANG}.json in src/locales.
  • And then add your locale to src/setLocales.ts like:
  import en from './locales/en.json';
  import ja from './locales/ja.json';
+ import cs from './locales/cs.json';

 export const setLocales = (locale: string): void => {
   i18next.init({
     lng: locale,
     fallbackLng: 'en',
     resources: {
       en: { translation: en },
       ja: { translation: ja },
+      cs: { translation: cs },
     },
   });
 };

🏛️ License

MIT

not_used
Screenshot
Screenshot

Something missing? Edit this app.

Keyboard Shortcuts

Key Action
/ Focus the search bar
Esc Focus the search bar and cleans it
Select the next search result
Select the previous search result
Enter Open the selected search result
cmdEnter Ctrl+Enter Open the selected search result in a new tab