[go: up one dir, main page]

Menu

[r112]: / trunk / conf / scanbd.conf  Maximize  Restore  History

Download this file

342 lines (293 with data), 12.5 kB

/*
 * $Id$
 *
 *  scanbd - KMUX scanner button daemon
 *
 *  Copyright (C) 2008 - 2012  Wilhelm Meier (wilhelm.meier@fh-kl.de)
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */


# global settings
global {
        # turn on debugging
        
        # log to console
        debug   = true 

        # debug logging
        # 1=error, 2=warn, 3=info, 4-7=debug
        debug-level = 7
        
        # drop priviliges to this user
        #=============================
        # Linux: 
        # user    = saned # root
        # *BSD
        # user    = root
        user    = saned

        # Group to be used
        #=================
        # Linux (most distributions use the lp group to access scanners)
        # group   = lp
        # ArchLinux (ArchLinux uses the scanner group)
        # group = scanner
        #
        # *BSD (no group lp here, use daemon instead)
        # group   = daemon # root
        #
        group   = lp

        # the saned executable for manager-mode
        saned   = "/usr/sbin/saned"
        saned_opt  = {} # string-list
        saned_env  = { "SANE_CONFIG_DIR=/usr/local/etc/scanbd" } # list of environment vars for saned

        # script options will normally be defined relative to the scriptdir
        # The scriptdir is normally relative to the configuations (<path>/etc/scanbd) directory
        # scriptdir = scripts 
        # sets scriptdir to <path>/etc/scripts.
        # Scriptdir can be set to an absolute path /some/path
        # Default scriptdir is <path>/etc/scanbd
        scriptdir = ""
        
        scanbuttond_backends_dir = "/usr/local/etc/scanbd/scanbuttond/backends"

        # poll timeout in [ms]
        # (for polling the devices)
        timeout = 500 
        
        pidfile = "/var/run/scanbd.pid"
        
        # env-vars for the scripts
        environment {
                # pass the device label as below in this env-var
                device = "SCANBD_DEVICE"
                # pass the action label as below in this env-var
                action = "SCANBD_ACTION"
        }

        # function definitions
        # values of the options are simply passed via env-vars

        function function_knob {
                filter = "^message.*"
                desc   = "The value of the function knob / wheel / selector"
                env    = "SCANBD_FUNCTION" 
        }
        function function_mode {
                filter = "^mode.*"
                desc   = "Color mode"
                env    = "SCANBD_FUNCTION_MODE" 
        }

        multiple_actions = true # allow multiple actions per option (up to the total amount of options)

        # action definitions
        # if the filter matches and the value changes 
        # from from-value to to-value,
        # <script> is executed
        # <script> is the full pathname (do not include any parameters)
        # if parameters are needed, write a script
        
        # since we can have only a most one action for each option, the action-script 
        # can use the function definition (see above) to distinguish different tasks 
        # (e.g. use the env-var SCANBD_FUNCTION defined above)
        
        action scan {
                filter = "^scan.*"
                numerical-trigger {
                        from-value = 1
                        to-value   = 0
                }
                desc   = "Scan to file"
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "scanadf.script"
        }
        action email {
                filter = "^email$"
                string-trigger {
                        from-value  = ""        
                        to-value    = "^email.*"
                }
                desc   = "Scan to email"
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "test.script"
        }
        action copy {
                filter = "^copy$"
                string-trigger {
                        from-value  = ""
                        to-value    = "^copy.*"
                }
                desc   = "Copy to printer"
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "test.script"
        }
        action preview {
                filter = "^preview$"
                numerical-trigger {
                        from-value = 1
                        to-value   = 0
                }
                desc   = "Preview"
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "example.script"
        }
        action globaltest {
                filter = "^message.*"
                desc   = "Test (print all env vars)"
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "test.script"
        }
}

# include
# include another file at this point. This may only occur outside general and devices blocks
# an include statement may be relative (to the direcory where scanbd.conf is located or aboslute
# include("scanner.d/myscanner.conf")
# include("/my/long/path/myscanner.conf")

# devices 
# each device can have actions and functions

device fujitsu {
        # the device matching string
        filter = "^fujitsu.*" # regex

        # the device description
        desc = "Fujitsu: Test"

        function function_knob {
                filter = "^function.*"
                desc   = "The value of the function knob / wheel / selector"
                env    = "SCANBD_FUNCTION" 
        }

        action paperload {
                filter = "^page-loaded.*"
                desc   = "page loaded"
                numerical-trigger {
                   from-value = 0
                    to-value   = 1
                }
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = ""
        }

        action paperunload {
                filter = "^page-loaded.*"
                desc   = "page unloaded"
                numerical-trigger {
                    from-value = 1
                    to-value   = 0
                }
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = ""
        }

        action coveropen {
                filter = "^cover-open.*"
                desc   = "cover open"
                numerical-trigger {
                    from-value = 0
                    to-value   = 1
                }
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = ""
        }

        action powersave {
                filter = "^power-save.*"
                desc   = "power save"
                numerical-trigger {
                    from-value = 0
                    to-value   = 1
                }
                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = ""
        }
}

device snapscan {
        
        # the device matching string
        filter = "(.*snapscan.*|.*Perfection.*)" # regex

        # the device description
        desc = "Epson"

        action test {
                filter = "^message.*"
                desc   = "Test"

                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "example.script"
        }

        action web {
                filter = "^web.*"
                desc   = "Web"

                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "example.script"
        }

        action send {
              filter = "^send.*"
              desc   = "Send"

                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "example.script"
        }
}

device hp {
        # the device matching string
        filter = "^hpaio.*" # regex

        # the device description
        desc = "HP"

        action test {
              filter = ".*scan.*"
              desc   = "Test"

                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "example.script"
        }
}

device avision {
        # the device matching string
        filter = "^avision.*"

        # the device description
        desc = "Avision Scanner"

        # device specific actions (as above)
        # (if this matches a previous defined action, it overrides) 
       
        action duplex-test {
                
                filter = "^message.*"
                desc   = "Avision: Duplex Test"

                # script must be an relative path starting from scriptdir (see above), 
                # or an absolute pathname. 
                # It must contain the path to the action script without arguments
                # Absolute path example: script = "/some/path/foo.script 
                script = "test.script"

                string-trigger {
                             from-value  = ""
                             to-value    = "^.:duplex"
                }
        }
}