/usr/share/kivy-examples/demo/multistroke/multistroke.kv is in python-kivy-examples 1.9.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101  | <MainMenu>:
    rows: 1
    size_hint: (1, None)
    height: 50
    spacing: 5
    padding: 5
    ToggleButton:
        group: 'mainmenu'
        state: 'down'
        text: 'Gesture Surface'
        on_press:
            app.manager.current = 'surface'
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'History'
        on_press:
            app.manager.current = 'history'
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'Database'
        on_press:
            app.goto_database_screen()
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'Settings'
        on_press:
            app.manager.current = 'settings'
            if self.state == 'normal': self.state = 'down'
<MultistrokeAppSettings>:
    pos_hint: {'top': 1}
    MultistrokeSettingTitle:
        title: 'GestureSurface behavior'
        desc: 'Affects how gestures are detected and cleaned up'
    MultistrokeSettingSlider:
        id: max_strokes
        title: 'Max strokes'
        type: 'int'
        desc: 
            ('Max number of strokes for a single gesture. If 0, the ' +
            'gesture will only be analyzed once the temporal window has ' +
            'expired since the last strokes touch up event')
        value: 4
        min: 0
        max: 15
    MultistrokeSettingSlider:
        id: temporal_win
        title: 'Temporal Window'
        type: 'float'
        desc: 
            ('Time to wait from last touch up in a gesture before analyzing ' +
            'the input. If 0, only analyzed once Max Strokes is reached')
        value: 2.
        min: 0
        max: 60.
    MultistrokeSettingTitle:
        title: 'Drawing'
        desc: 'Affects how gestures are visualized on the GestureSurface'
    MultistrokeSettingSlider:
        id: timeout
        title: 'Draw Timeout'
        type: 'float'
        desc: 
            ('How long to display the gesture (and result label) on the ' +
            'gesture surface once analysis has completed')
        value: 2.
        min: 0
        max: 60.
    MultistrokeSettingSlider:
        id: line_width
        title: 'Line width'
        type: 'int'
        desc: 
            ('Width of lines on the gesture surface; 0 does not draw ' +
            'anything; 1 uses OpenGL line, >1 uses custom drawing method.')
        value: 2
        min: 0
        max: 10
    MultistrokeSettingBoolean:
        id: use_random_color
        title: 'Use random color?'
        desc: 'Use random color for each gesture? If disabled, white is used.'
        button_text: 'Random color?'
        value: True
    MultistrokeSettingBoolean:
        id: draw_bbox
        title: 'Draw gesture bounding box?'
        desc: 'Enable to draw a bounding box around the gesture'
        button_text: 'Draw bbox?'
        value: True
 |