According to the Geany manual: 

The system path is the data subfolder of the installation path on Windows.

The user configuration directory might vary, but on Windows XP it's: C:\Documents and Settings\UserName\Application Data\geany


A Euphoria Programmer provided this information while commenting on program I wrote which
installs versions of several files which enable Geany to support the Euphoria Programming Language:


Some updated info for Windows installs:
 
In my version of Windows, the actual path to the directory created by geany is
C:\Users\Owner\AppData\Roaming\geany
That path doesn't exist until geany is run once. You should tell users to run geany once so it can write those default files/dirs. This way you can confirm that whatever path they provide for installing these forms is correct.
 
The path to geany config files needs to be gotten from getenv("APPDATA"), instead of getenv("HOME").
APPDATA can be used from Windows XP on up. On my Windows XP box, it returns
C:\Documents and Settings\user\Application Data
On Windows 7 it returns
C:\The system path is the data subfolder of the installation path on Windows.
The user configuration directory might vary, but on Windows XP it's: C:\Documents and Settings\UserName\Application Data\geanyUsers\Owner\AppData\Roaming\geany
The Windows file path code need only be this:
constant GEANY_DIR = getenv( "APPDATA" ) & SLASH & "geany"

This is my latest installation program, written in Euphoria.  The code is simple and intuitive, so
I think most programmers will be able to follow it without any problems:

--
--
--  EuGeany 1.3b
--  
--  usage eui EuGeany.ex
--
--  Installs Geany configuration files which
--  provide support for the Euphoria Programming Language
--  Existing files are backed up with an extension suffix
--  which may be defined by the user
--
--    For more information read comments in the respective files,
--  especially, filetypes.Euphoria.conf.
--
--

include std/console.e
include std/filesys.e
include std/graphics.e

constant BACKUP_SUFFIX = "~"
-- constant BACKUP_SUFFIX = ".BAK"

sequence GEANY_USER_CONFIG = getenv( "HOME") & SLASH & ".config" & SLASH & "geany"

ifdef WINDOWS then
	GEANY_USER_CONFIG =  getenv( "APPDATA" ) & SLASH & "geany"
end ifdef

-- create tags directory, if it does not already exist:
if  create_directory( GEANY_USER_CONFIG & SLASH & "tags" ) then end if

constant SCREEN = 1
constant DIR = 1
constant FILE = 2
sequence data = {       -- DIR = [1]                        -- FILE = [2]
			{ SLASH & "filedefs" & SLASH , "filetypes.Euphoria.conf"},
			{ SLASH & "tags"     & SLASH , "std.euphoria-4.1.e.tags" },
			{ SLASH                      , "filetype_extensions.conf" },
			{ SLASH                      , "snippets.conf"}
		    }

constant OVERWRITE_EXISTING_FILE = 1
sequence destination
sequence pwd = current_dir() & SLASH
bk_color(BLACK)
for i=1 to length( data ) do

    destination = GEANY_USER_CONFIG & data[i][DIR] & data[i][FILE]
    
    -- BACKUP OLD FILES
	text_color(BRIGHT_BLUE)
	display( "\n---- " & destination )
	if file_exists( destination ) then
	    
	    -- make a back up copy
	    text_color(YELLOW)
	    for x = 1 to length(GEANY_USER_CONFIG & data[i][DIR]) -11  do
		puts(SCREEN, " ")
	    end for
	    display( " backing up ... ", 0 )
	    
	    if copy_file(destination,destination & BACKUP_SUFFIX,OVERWRITE_EXISTING_FILE) then 
		    -- do nothing
	    else
		text_color(BRIGHT_RED)
		display( " !!! backup failed" )
	    end if
	
	else
	    
	    -- file does not exist, no need to back up
	    text_color(YELLOW)
	    display( "no backup file necessary ... ", 0 )
	
	end if
	
    -- UPDATE FILES
	if copy_file( pwd & data[i][FILE], destination, OVERWRITE_EXISTING_FILE) then
	    
	    -- file is successfully updated
	    text_color(BROWN)
	    display( data[i][FILE], 0)
	    text_color(BRIGHT_CYAN)
	    display ( " UPDATED!")
	
	else
	    -- update failed
	    text_color(BRIGHT_RED)
	    display( " !!!  update failed")
	
	end if
end for
Regards,

--
Kenneth Rhodes
Ubuntu 12.1
100% MicroSoft Free!