Giter Site home page Giter Site logo

dmenu's Introduction

This fork is based on Dmenu 0.7(test release) and adapted to work on the PAP KIII Plus (K3P) and the RS-97  





									   Dmenu 
                               =======================

Dmenu is a simple menu system for Dingux (Linux on K3P and other). It is optimized to work with the 480x272
resoltion of the K3P and the 320x480 of the RS-97. You need an sd-card for this menu that plugs into the external slot of the device



Installation
------------


1. Extract the content of the lates release(e.g. dmenu_0.7_k3_0.5.zip or dmenu_0.7_RS97_0.5.zip ) onto your new external card. You need the dmenu folder in the root of your sd-card
2. Advice: Make a backup of your internal sd-card! You can use the backup.dge in sd-card/dmenu/installer to do this. It will take some time and has only a black screen. 
You need at least 4gb space on the sd-card. This step is not required, but the installation of this dmenu will alter internal partitions and having a backup is a good idea!
3. If you want to use the alternative emulators as well (you do!), extract the emulators.zip (or emulators_RS97.zip) and apps.zip (or apps_RS97.zip) to the root folder as well.
4. Use the build-in file browser and navigate to sd-card/dmenu/installer
5. Run the install.dge file

-> The new dmenu should open and is now the default menu.

To uninstall the dmenu, just remove the external sd-card or delete/rename the dmenu folder on the external card. If the folder is not found,
the old (default) menu is loaded.

SwitchMenu.dge in the dmenu folder allows to switch between the old and this dmenu. 


Keys
----
In main menu,

left, right key - select menu
left, B key - close SubMenu if you opened
up, down key - select menu item
A key - run the selected menu item / open SubMenu
Select + Start key - exit dmenu
R key - SoundVolume +5% (or volume key)
L key - SoundVolume -5% (or volume key)
X key - Brightness level up
Y key - Brightness level down

In file selector menu,

up, down key - select file
left  - change to the parent directory
right - go to the selected directory
A key - run the selected file or go to the selected directory
B key - exit file selector menu
C key - toggle preview (default enabled)
L, R key - page up/down
Start - Save current directory as the future value of
        SelectorDir for the menuitem that called it

In color selector menu,

up, down key - select R/G/B
left  - reduce selected color value broadly
right - increase selected color value broadly
L key - reduce selected color value finely
R key - increase selected color value finely
A key - set color and exit color selector menu
B key - exit color selector menu

Theme support
-------------
Dmenu on startup reads /usr/local/dmenu/dmenu.ini, which contains a line to 
specify the theme in the form of "Theme = <theme name>".

Dmenu reads /usr/local/dmenu/themes/<theme name>/theme.cfg to load the theme.


Theme config file includes
--------------------------
Theme config file can include other config files. See theme.cfg in the sample 
theme called 'include_sample'.


In the individual dmenu.cfg files, if the icon file path is relative (i.e. the 
first char is not '/'), Dmenu will treat this as relative to the directory where
this dmenu.cfg is in.


SubMenu
-------
To add a submenu, just add a menuitem without executable and workpath, but with
SubMenuItems. For example,

    MenuItem SubMenuTest
    {
        Icon = "res/game1.png"
        Name = "SubMenuTest"

        SubMenuItem SubTest1
        {
            Icon = "res/game2.png"
            Name = "SubTest1"
            Executable = "./duh"
            WorkDir = "/usr/local/duh"
        }
        SubMenuItem SubTest2
        {
            Icon = "res/game2.png"
            Name = "SubTest2"
            Executable = "./duh"
            WorkDir = "/usr/local/duh"
        }
    }

Once the submenu is selected, press A to open it, and press B to close. Use 
up/down to select the submenu items and press A to launch.

One caveat though, dmenu.cfg included from SearchPath does not support submenu.
dmenu will print a warning and ignore the menuitem if it's a submenu.

Selector and SelectorDir
------------------------
In MenuItem and SubMenuItem, you can use Selector and SelectorDir to get into
the filelist. For example,

    MenuItem foo
    {
        Icon = "res/emu1.png"
        Name = "SomeEmulator"
        Executable = "./emu"
        WorkDir = "/usr/local/emulator/emu"
        Selector = "true"
        SelectorDir = "/usr/local/data/roms"	
    }

The filelist current folder is set to "SelectorDir". If the user has set
SelectorDir manually for a MenuItem (by pressing Start in the fileselector),
that value will override the MenuItem value.

Other options
------------------------
	  MenuItem foo
    {
        Icon = "res/emu1.png"
        Name = "SomeEmulator"
        Executable = "./emu"
        WorkDir = "/usr/local/emulator/emu"
        Selector = "true"
        SelectorDir = "/usr/local/data/roms"
		Previews = "/usr/local/data/previews/"
        Extensions = "gba zip"
		Center = true
		VolumeControl = true
    }

Previews(Optional) - Previews defines a folder where preview images can be found. Only png files are supported, named exactly 
		   like the rome without extension (rom.zip mapps to rom.png). The images have a fixed postion, use max 200px wide 
		   images for the best results.

Extensions(Optional) - Extensions defines a list of extension which files should be listed in the selector dir. Files
			 with extensions not in this list will not be visible. (Gets rid of the savestate files in rom folders)

Center/Zomm(Optional) - The Center or Zoom parameters are used to provide a fallback for older dingux software that is not patched 
			  to use the larger resolution. If parameter Center = true, the 320x240 window of the executed software is centered on the screen. If Zoom = true, the 320x240 are stretched to fullscreen. Zoom comes with some performace issues. 

VolumeControl(Optional) - VolumeControl is a legacy option for software not directly written for the K3P, but supporting the resolution.
				The K3P hardware buttons are unique for this device and not supported by most applications. By enabling this option, a helper is 
				started that enables these buttons to work for all applications. 

 


Theme Selector with thumbnail
-----------------------------
In the menu, you can utilize the builtin Theme Selector menuitem.
For example,

    MenuItem ThemeSelect
    {
        Icon = "res/star1.png"
        Name = "Select Theme"
        Executable = "!themeselect"
    }

The code will automatically scan the themes folder and determine
the theme preview from an image file in the theme folder.  
<dmenu_root>/themes/<theme_name>/theme.png is the file that will
be used to determine the theme preview.  If the preview.png is not
found then resources/notfound.png is used.

Wallpaper Selector with thumbnail
---------------------------------
In Menu, you can make "built in Wallpaper Selector" menuitem.
For example,

    MenuItem BackgroundSelect
    {
        Icon = "res/star1.png"
        Name = "Select Wallpaper"
        Executable = "!backgroundselect"
    }

You can add your favorite wall paper to "/usr/local/dmenu/wallpapers".
WallpaperSelecter pick up all png file automatically from that folder.



FontColor Selector
------------------
In Menu, you can make "FontColor Selector" menuitem.
For example,

    MenuItem FontColor
    {
        Icon = "res/tri4.png"
        Name = "FontColor"
        Executable = "!colorselect"
    }



UTF-8
-----
To display UTF8 characters, font file specified in theme.cfg should contain the 
necessary characters. UTF8 chars in theme.cfg name strings, and filenames in 
file selector will be displayed accordingly.



Building dmenu
--------------
There are 2 makefiles in dmenu source distribution, Makefile.host and
Makefile.dingoo.

Makefile.host will build dmenu to run on host pc running linux. This is a 
standard SDL application. You will need the SDL development libraries and
libconfuse to build.

Makefile.dingoo is the makefile for building dmenu to run in Dingux. You need a
toolchain (https://sience.schattenkind.net/dingoo/Dingux_Toolchain_for_Windows.htm#Libraries) to build this.
All the required libraries are already included in the toolchain.

To make building more easy, two simple scripts (clean_release.sh and build_release.sh) are included

dmenu's People

Contributors

jackd83 avatar

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.