$XDG_CONFIG_HOME
This commit is contained in:
parent
bf0d040300
commit
67168cd1db
3 changed files with 65 additions and 60 deletions
14
README.md
14
README.md
|
@ -20,15 +20,15 @@ This is my fork of x48-0.6.4 where I deviate from the original code and do my ow
|
|||
|
||||
## Usage
|
||||
|
||||
`./dist/x48ng --help`
|
||||
`x48ng --help`
|
||||
|
||||
You can use the script `./dist/setup-x48ng-home.sh` or simply run `./dist/x48ng --rom=<romfilename>`
|
||||
You can use the script `setup-x48ng-home.sh` or simply run `x48ng --rom=<romfilename>`
|
||||
|
||||
### manual setup
|
||||
|
||||
1. Create `~/.config/x48ng/`
|
||||
2. Copy `/usr/share/x48ng/ROMs/gxrom-r` (or any other rom) to `~/.config/x48ng/rom`
|
||||
3. Run `x48ng --print-config > ~/.config/x48ng/config.lua`
|
||||
1. Create `$XDG_CONFIG_HOME/x48ng` (usually `~/.config/x48ng/`)
|
||||
2. Copy `/usr/share/x48ng/ROMs/gxrom-r` (or any other rom) to `$XDG_CONFIG_HOME/x48ng/rom`
|
||||
3. Run `x48ng --print-config > $XDG_CONFIG_HOME/x48ng/config.lua`
|
||||
4. Run `x48ng`
|
||||
|
||||
### Ncurses UI (`--tui`)
|
||||
|
@ -50,10 +50,12 @@ _To quit `x48ng --tui` use `F10` or `Shift+End` or `|`_
|
|||
3. removed the autotools-based build system and wrote a simple Makefile instead
|
||||
4. added a x48ng.desktop file and an icon
|
||||
5. refactoring as a way to explore/understand the codebase
|
||||
6. drop Xresources
|
||||
7. link to lua to use it as a config file reader
|
||||
|
||||
## Bugs to fix
|
||||
|
||||
See https://github.com/gwenhael-le-moine/x48ng/issues
|
||||
See and report at https://github.com/gwenhael-le-moine/x48ng/issues
|
||||
|
||||
## What more I would like to do:
|
||||
|
||||
|
|
26
dist/config.lua
vendored
26
dist/config.lua
vendored
|
@ -1,7 +1,8 @@
|
|||
--------------------------------------------------------------------------------
|
||||
-- Configuration file for x48ng
|
||||
|
||||
-- `config_dir` is relative to $HOME or absolute
|
||||
config_dir = ".config/x48ng"
|
||||
-- This is a comment
|
||||
-- `config_dir` is relative to $XDG_CONFIG_HOME/, or $HOME/.config/ or absolute
|
||||
config_dir = "x48ng"
|
||||
|
||||
-- Pathes are either relative to `config_dir` or absolute
|
||||
rom = "rom"
|
||||
|
@ -11,39 +12,26 @@ port1 = "port1"
|
|||
port2 = "port2"
|
||||
|
||||
pseudo_terminal = false
|
||||
|
||||
serial = false
|
||||
|
||||
serial_line = "/dev/ttyS0"
|
||||
|
||||
verbose = false
|
||||
|
||||
debugger = false
|
||||
|
||||
throttle = false
|
||||
|
||||
|
||||
--------------------
|
||||
-- User Interface --
|
||||
--------------------
|
||||
|
||||
frontend = "tui" -- possible values: "x11", "sdl", "tui"
|
||||
frontend = "x11" -- possible values: "x11", "sdl", "tui"
|
||||
hide_chrome = false
|
||||
|
||||
fullscreen = false
|
||||
|
||||
|
||||
netbook = false
|
||||
|
||||
|
||||
mono = false
|
||||
|
||||
gray = false
|
||||
|
||||
|
||||
x11_visual = "default"
|
||||
|
||||
netbook = false
|
||||
font_small = "-*-fixed-bold-r-normal-*-14-*-*-*-*-*-iso8859-1"
|
||||
font_medium = "-*-fixed-bold-r-normal-*-15-*-*-*-*-*-iso8859-1"
|
||||
font_large = "-*-fixed-medium-r-normal-*-20-*-*-*-*-*-iso8859-1"
|
||||
font_devices = "-*-fixed-medium-r-normal-*-12-*-*-*-*-*-iso8859-1"
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
@ -27,7 +27,7 @@ bool resetOnStartup = false;
|
|||
|
||||
char* serialLine;
|
||||
|
||||
char* configDir = ".config/x48ng";
|
||||
char* configDir = "x48ng";
|
||||
char* config_file = "config.lua";
|
||||
char* romFileName = NULL;
|
||||
char* ramFileName = NULL;
|
||||
|
@ -127,28 +127,46 @@ static inline bool config_read( const char* filename )
|
|||
|
||||
static inline void get_absolute_config_dir( char* source, char* dest )
|
||||
{
|
||||
char* home;
|
||||
struct passwd* pwd;
|
||||
|
||||
if ( source[ 0 ] != '/' ) {
|
||||
home = getenv( "HOME" );
|
||||
if ( home ) {
|
||||
strcpy( dest, home );
|
||||
char* xdg_config_home = getenv( "XDG_CONFIG_HOME" );
|
||||
|
||||
if ( xdg_config_home ) {
|
||||
if ( verbose )
|
||||
fprintf( stderr, "XDG_CONFIG_HOME is %s\n", xdg_config_home );
|
||||
|
||||
strcpy( dest, xdg_config_home );
|
||||
strcat( dest, "/" );
|
||||
} else {
|
||||
pwd = getpwuid( getuid() );
|
||||
if ( pwd ) {
|
||||
strcpy( dest, pwd->pw_dir );
|
||||
strcat( dest, "/" );
|
||||
} else {
|
||||
char* home = getenv( "HOME" );
|
||||
|
||||
if ( home ) {
|
||||
if ( verbose )
|
||||
fprintf( stderr, "can\'t figure out your home directory, "
|
||||
"trying /tmp\n" );
|
||||
strcpy( dest, "/tmp" );
|
||||
fprintf( stderr, "HOME is %s\n", home );
|
||||
|
||||
strcpy( dest, home );
|
||||
strcat( dest, "/.config/" );
|
||||
} else {
|
||||
struct passwd* pwd = getpwuid( getuid() );
|
||||
|
||||
if ( pwd ) {
|
||||
if ( verbose )
|
||||
fprintf( stderr, "pwd->pw_dir is %s\n", pwd->pw_dir );
|
||||
|
||||
strcpy( dest, pwd->pw_dir );
|
||||
strcat( dest, "/" );
|
||||
} else {
|
||||
if ( verbose )
|
||||
fprintf( stderr, "can\'t figure out your home directory, "
|
||||
"trying /tmp\n" );
|
||||
|
||||
strcpy( dest, "/tmp" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
strcat( dest, source );
|
||||
|
||||
if ( dest[ strlen( dest ) ] != '/' )
|
||||
strcat( dest, "/" );
|
||||
}
|
||||
|
@ -549,9 +567,10 @@ int parse_args( int argc, char* argv[] )
|
|||
|
||||
print_config |= verbose;
|
||||
if ( print_config ) {
|
||||
fprintf( stdout, "--------------------------------------------------------------------------------\n" );
|
||||
fprintf( stdout, "-- Configuration file for x48ng\n" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "-- `config_dir` is relative to $HOME or absolute\n" );
|
||||
fprintf( stdout, "-- This is a comment\n" );
|
||||
fprintf( stdout, "-- `config_dir` is relative to $XDG_CONFIG_HOME/, or $HOME/.config/ or absolute\n" );
|
||||
fprintf( stdout, "config_dir = \"%s\"\n", configDir );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "-- Pathes are either relative to `config_dir` or absolute\n" );
|
||||
|
@ -561,18 +580,17 @@ int parse_args( int argc, char* argv[] )
|
|||
fprintf( stdout, "port1 = \"%s\"\n", port1FileName );
|
||||
fprintf( stdout, "port2 = \"%s\"\n", port2FileName );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "pseudo_terminal = %s\n", useTerminal ? "true" : "false\n" );
|
||||
fprintf( stdout, "serial = %s\n", useSerial ? "true" : "false\n" );
|
||||
fprintf( stdout, "pseudo_terminal = %s\n", useTerminal ? "true" : "false" );
|
||||
fprintf( stdout, "serial = %s\n", useSerial ? "true" : "false" );
|
||||
fprintf( stdout, "serial_line = \"%s\"\n", serialLine );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "verbose = %s\n", verbose ? "true" : "false\n" );
|
||||
fprintf( stdout, "debugger = %s\n", useDebugger ? "true" : "false\n" );
|
||||
fprintf( stdout, "throttle = %s\n", throttle ? "true" : "false\n" );
|
||||
fprintf( stdout, "verbose = %s\n", verbose ? "true" : "false" );
|
||||
fprintf( stdout, "debugger = %s\n", useDebugger ? "true" : "false" );
|
||||
fprintf( stdout, "throttle = %s\n", throttle ? "true" : "false" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "--------------------\n" );
|
||||
fprintf( stdout, "-- User Interface --\n" );
|
||||
fprintf( stdout, "--------------------\n" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "frontend = \"" );
|
||||
switch ( frontend_type ) {
|
||||
case FRONTEND_X11:
|
||||
|
@ -585,25 +603,22 @@ int parse_args( int argc, char* argv[] )
|
|||
fprintf( stdout, "tui" );
|
||||
break;
|
||||
}
|
||||
fprintf( stdout, "\" -- possible values: \"x11\", \"sdl\", \"tui\"" );
|
||||
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "hide_chrome = %s\n", hide_chrome ? "true" : "false\n" );
|
||||
fprintf( stdout, "fullscreen = %s\n", show_ui_fullscreen ? "true" : "false\n" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "netbook = %s\n", netbook ? "true" : "false\n" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "mono = %s\n", mono ? "true" : "false\n" );
|
||||
fprintf( stdout, "gray = %s\n", gray ? "true" : "false\n" );
|
||||
fprintf( stdout, "\" -- possible values: \"x11\", \"sdl\", \"tui\"\n" );
|
||||
fprintf( stdout, "hide_chrome = %s\n", hide_chrome ? "true" : "false" );
|
||||
fprintf( stdout, "fullscreen = %s\n", show_ui_fullscreen ? "true" : "false" );
|
||||
fprintf( stdout, "mono = %s\n", mono ? "true" : "false" );
|
||||
fprintf( stdout, "gray = %s\n", gray ? "true" : "false" );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "x11_visual = \"%s\"\n", x11_visual );
|
||||
fprintf( stdout, "\n" );
|
||||
fprintf( stdout, "netbook = %s\n", netbook ? "true" : "false" );
|
||||
fprintf( stdout, "font_small = \"%s\"\n", smallFont );
|
||||
fprintf( stdout, "font_medium = \"%s\"\n", mediumFont );
|
||||
fprintf( stdout, "font_large = \"%s\"\n", largeFont );
|
||||
fprintf( stdout, "font_devices = \"%s\"\n", connFont );
|
||||
fprintf( stdout, "--------------------------------------------------------------------------------\n" );
|
||||
|
||||
exit( 0 );
|
||||
if ( !verbose )
|
||||
exit( 0 );
|
||||
}
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "normalized_config_path = %s\n", normalized_config_path );
|
||||
|
|
Loading…
Reference in a new issue