Skip to content

Commit

Permalink
Some bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
franciscolourenco committed Mar 30, 2017
1 parent 70d2ec1 commit 9db445d
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 29 deletions.
39 changes: 26 additions & 13 deletions octopus/AppDelegate.swift
Expand Up @@ -88,19 +88,32 @@ class AppDelegate: NSObject, NSApplicationDelegate {
}


self.tabMode = TabMode(name: "Tabmode", statusIndicator: tabmodeIndicator, trigger: KeyEvent(key: .tab, modifiers: []), bindings: [
KeyEvent(key: .l, modifiers: []): KeyEvent(key: .tab, modifiers: [.maskCommand]),
KeyEvent(key: .j, modifiers: []): KeyEvent(key: .tab, modifiers: [.maskCommand, .maskShift]),
KeyEvent(key: .o, modifiers: []): KeyEvent(key: .rightArrow, modifiers: [.maskCommand, .maskAlternate]),
KeyEvent(key: .u, modifiers: []): KeyEvent(key: .leftArrow, modifiers: [.maskCommand, .maskAlternate]),
KeyEvent(key: .i, modifiers: []): KeyEvent(key: .backtick, modifiers: [.maskCommand]),
KeyEvent(key: .k, modifiers: []): KeyEvent(key: .backtick, modifiers: [.maskCommand, .maskShift]),
KeyEvent(key: .y, modifiers: []): KeyEvent(key: .w, modifiers: [.maskCommand]),
KeyEvent(key: .w, modifiers: []): KeyEvent(key: .w, modifiers: [.maskCommand]),
KeyEvent(key: .q, modifiers: []): KeyEvent(key: .q, modifiers: [.maskCommand]),
KeyEvent(key: .semicolon, modifiers: []): KeyEvent(key: .o, modifiers: [.maskCommand, .maskAlternate, .maskShift, .maskControl]),
KeyEvent(key: .quote, modifiers: []): KeyEvent(key: .q, modifiers: [.maskCommand])
])
self.tabMode = TabMode(
name: "Tabmode",
statusIndicator: tabmodeIndicator,
trigger: KeyEvent(key: .tab, modifiers: []),
bindings: [
KeyEvent(key: .l, modifiers: []): KeyEvent(key: .tab, modifiers: [.maskCommand]),
KeyEvent(key: .j, modifiers: []): KeyEvent(key: .tab, modifiers: [.maskCommand, .maskShift]),
KeyEvent(key: .o, modifiers: []): KeyEvent(key: .rightArrow, modifiers: [.maskCommand, .maskAlternate]),
KeyEvent(key: .u, modifiers: []): KeyEvent(key: .leftArrow, modifiers: [.maskCommand, .maskAlternate]),
// KeyEvent(key: .i, modifiers: []): KeyEvent(key: .leftArrow, modifiers: [.maskCommand, .maskAlternate]),
// KeyEvent(key: .k, modifiers: []): KeyEvent(key: .rightArrow, modifiers: [.maskCommand, .maskAlternate]),
KeyEvent(key: .i, modifiers: []): KeyEvent(key: .backtick, modifiers: [.maskCommand]),
KeyEvent(key: .k, modifiers: []): KeyEvent(key: .backtick, modifiers: [.maskCommand, .maskShift]),
KeyEvent(key: .y, modifiers: []): KeyEvent(key: .w, modifiers: [.maskCommand]),
KeyEvent(key: .w, modifiers: []): KeyEvent(key: .w, modifiers: [.maskCommand]),
// KeyEvent(key: .h, modifiers: []): KeyEvent(key: .w, modifiers: [.maskCommand]),
KeyEvent(key: .n, modifiers: []): KeyEvent(key: .t, modifiers: [.maskCommand]),
KeyEvent(key: .q, modifiers: []): KeyEvent(key: .q, modifiers: [.maskCommand]),
KeyEvent(key: .semicolon, modifiers: []): KeyEvent(key: .t, modifiers: [.maskCommand]),
KeyEvent(key: .h, modifiers: []): KeyEvent(key: .o, modifiers: [.maskCommand, .maskAlternate, .maskShift, .maskControl]),
KeyEvent(key: .quote, modifiers: []): KeyEvent(key: .q, modifiers: [.maskCommand])
],
overlaidModifiers: [
KeyEvent(key: .f, modifiers: []): KeyOverlaidModifier(overlay: [.maskCommand], to: KeyEvent(key: .alpha1, modifiers: []))
]
)

self.homerowMode = Modal(
name: "HomerowMode",
Expand Down
35 changes: 19 additions & 16 deletions octopus/Modal.swift
@@ -1,3 +1,4 @@

//
// Modal.swift
// octopus
Expand Down Expand Up @@ -155,9 +156,6 @@ class Modal {
if type == .keyDown {
thisModal.keyDownCount += 1

if thisModal.keyDownCount == 1 {
thisModal.unusedKeyDown = keyEvent
}

if thisModal.keyDownCount > 1 || thisModal.name != "HomerowMode", let to = thisModal.bindings[keyEvent] {
if thisModal.unusedKeyDown != nil, let unusedTo = thisModal.bindings[thisModal.unusedKeyDown!] {
Expand All @@ -168,7 +166,10 @@ class Modal {
thisModal.wasUsed = true
thisModal.unusedOverlays = []
return nil
} else if thisModal.keyDownCount == 1 {
thisModal.unusedKeyDown = keyEvent
}

// if let to = thisModal.bindings[keyEvent] {
// return nil
// }
Expand All @@ -188,24 +189,26 @@ class Modal {
} else if type == .keyUp {
if thisModal.keyDownCount > 0 {
thisModal.keyUpCount += 1
}


if thisModal.name == "HomerowMode" && thisModal.keyUpCount == 1 && thisModal.keyDownCount == 1 && thisModal.unusedKeyDown != nil, let to = thisModal.bindings[keyEvent] {
Keyboard.keyStroke(key: to.key, modifiers: to.modifiers.union(thisModal.activeModifiers) )
thisModal.unusedKeyDown = nil
thisModal.wasUsed = true
thisModal.unusedOverlays = []
return nil
}

if let overlaidModifier = thisModal.overlaidModifiers[keyEvent]{
thisModal.releaseVirtualModifier(modifier: overlaidModifier.overlay)
if thisModal.unusedOverlays.contains(keyEvent) {
if thisModal.name == "HomerowMode" && thisModal.keyUpCount == 1 && thisModal.keyDownCount == 1 && thisModal.unusedKeyDown != nil, let to = thisModal.bindings[keyEvent] {
Keyboard.keyStroke(key: to.key, modifiers: to.modifiers.union(thisModal.activeModifiers) )
thisModal.unusedKeyDown = nil
thisModal.wasUsed = true
thisModal.unusedOverlays = []
Keyboard.keyStroke(key: overlaidModifier.to.key, modifiers: overlaidModifier.to.modifiers.union(thisModal.activeModifiers) )
return nil
}

if let overlaidModifier = thisModal.overlaidModifiers[keyEvent]{
thisModal.releaseVirtualModifier(modifier: overlaidModifier.overlay)
if thisModal.unusedOverlays.contains(keyEvent) {
thisModal.unusedOverlays = []
Keyboard.keyStroke(key: overlaidModifier.to.key, modifiers: overlaidModifier.to.modifiers.union(thisModal.activeModifiers) )
thisModal.wasUsed = true
}
return nil
}
return nil
}
}

Expand Down

0 comments on commit 9db445d

Please sign in to comment.