There are some hacks here in the form of an extra field "appears_locked_from", which can be used to hint that the user should see the button as locked. Without it, there's some confusion on user side regarding buttons that change states unprompted.
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
---
 | 
						||
outlines:
 | 
						||
    default: { width: 35.33, height: 52 }
 | 
						||
    altline: { width: 52.67, height: 52 }
 | 
						||
    wide: { width: 59, height: 52 }
 | 
						||
    spaceline: { width: 140, height: 52 }
 | 
						||
    special: { width: 44, height: 52 }
 | 
						||
 | 
						||
views:
 | 
						||
    base:
 | 
						||
        - "q w e r t y u i o p"
 | 
						||
        - "a s d f g h j k l"
 | 
						||
        - "Shift_L   z x c v b n m  BackSpace"
 | 
						||
        - "show_numbers preferences         space        show_accents Return"
 | 
						||
    upper:
 | 
						||
        - "Q W E R T Y U I O P"
 | 
						||
        - "A S D F G H J K L"
 | 
						||
        - "Shift_L   Z X C V B N M  BackSpace"
 | 
						||
        - "show_numbers preferences         space        show_upper_accents Return"
 | 
						||
    numbers:
 | 
						||
        - "1 2 3 4 5 6 7 8 9 0"
 | 
						||
        - "@ # $ % & - _ + ( )"
 | 
						||
        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
 | 
						||
        - "show_letters preferences         space        period Return"
 | 
						||
    symbols:
 | 
						||
        - "~ ` | · √ π τ ÷ × ¶"
 | 
						||
        - "© ® £ € ¥ ^ ° * { }"
 | 
						||
        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
 | 
						||
        - "show_letters preferences         space        period Return"
 | 
						||
    accents:
 | 
						||
        - "q w ę r t y u i ó p"
 | 
						||
        - "ą ś d f g h j k ł"
 | 
						||
        - "accents_show_upper   ż ź ć v b ń m  BackSpace"
 | 
						||
        - "show_numbers preferences         space        show_accents Return"
 | 
						||
    upper_accents:
 | 
						||
        - "Q W Ę R T Y U I Ó P"
 | 
						||
        - "Ą Ś D F G H J K Ł"
 | 
						||
        - "accents_show_upper   Ż Ź Ć V B Ń M  BackSpace"
 | 
						||
        - "show_numbers preferences         space        show_upper_accents Return"
 | 
						||
 | 
						||
 | 
						||
buttons:
 | 
						||
    Shift_L:
 | 
						||
        action:
 | 
						||
            locking:
 | 
						||
                lock_view: "upper"
 | 
						||
                unlock_view: "base"
 | 
						||
        outline: "altline"
 | 
						||
        icon: "key-shift"
 | 
						||
    accents_show_upper:
 | 
						||
        action:
 | 
						||
            locking:
 | 
						||
                lock_view: "upper_accents"
 | 
						||
                unlock_view: "accents"
 | 
						||
                looks_locked_from:
 | 
						||
                    - "upper"
 | 
						||
        outline: "altline"
 | 
						||
        icon: "key-shift"
 | 
						||
    BackSpace:
 | 
						||
        outline: "altline"
 | 
						||
        icon: "edit-clear-symbolic"
 | 
						||
        keysym: "BackSpace"
 | 
						||
    preferences:
 | 
						||
        action: "show_prefs"
 | 
						||
        outline: "special"
 | 
						||
        icon: "keyboard-mode-symbolic"
 | 
						||
    show_numbers:
 | 
						||
        action:
 | 
						||
            set_view: "numbers"
 | 
						||
        outline: "wide"
 | 
						||
        label: "123"
 | 
						||
    show_numbers_from_symbols:
 | 
						||
        action:
 | 
						||
            set_view: "numbers"
 | 
						||
        outline: "altline"
 | 
						||
        label: "123"
 | 
						||
    show_letters:
 | 
						||
        action:
 | 
						||
            set_view: "base"
 | 
						||
        outline: "wide"
 | 
						||
        label: "ABC"
 | 
						||
    show_symbols:
 | 
						||
        action:
 | 
						||
            set_view: "symbols"
 | 
						||
        outline: "altline"
 | 
						||
        label: "*/="
 | 
						||
    show_accents:
 | 
						||
        action:
 | 
						||
            locking:
 | 
						||
                lock_view: "accents"
 | 
						||
                unlock_view: "base"
 | 
						||
        outline: "altline"
 | 
						||
        label: "ąę"
 | 
						||
    show_upper_accents:
 | 
						||
        action:
 | 
						||
            locking:
 | 
						||
                lock_view: "upper_accents"
 | 
						||
                unlock_view: "upper"
 | 
						||
                looks_locked_from:
 | 
						||
                    - "accents"
 | 
						||
        outline: "altline"
 | 
						||
        label: "ĄĘ"
 | 
						||
    period:
 | 
						||
        outline: "altline"
 | 
						||
        text: "."
 | 
						||
    space:
 | 
						||
        outline: "spaceline"
 | 
						||
        text: " "
 | 
						||
    Return:
 | 
						||
        outline: "wide"
 | 
						||
        icon: "key-enter"
 | 
						||
        keysym: "Return"
 | 
						||
    colon:
 | 
						||
        text: ":"
 |