ConType banner

ConType

8 devlogs
25h 13m 30s

A virtual keyboard made for controllers. Built for Mac, with Swift.
Allows you to type and move your cursor with a controller.

This project uses AI

Used GitHub Copilot for base code, certain feature implementation and debugging,

Demo Repository

Loading README...

Somebud

Shipped this project!

So this idea started when I was playing a game on my computer with my controller. It’s a chill game so I decided to do something else for a moment and when I got back to my computer, it locked itself after idling. I really thought “What if I could just type my password with my controller?

Thus ConType was born.

Being a mac app, I never really targeted this platform specifically with Swift (I always did it via Mac Catalyst) , but this time around I had to make an app made for macOS. While I had assistance from AI, learning the intricacies of macOS and the accessibility permissions was something.

Overall I’m happy with what I made and while it’s still a work in progress, I believe the app is in a good state already.

Somebud

A lot of polish this time around!
Settings has been further improved, new quality of life improvements and more.

  • Settings finally persist! (Yeah idk what took me so long to notice)
  • Keyboard Layouts! Right now there are 2 layouts, the familiar QWERTY and a modified QWERTY with aligned keys!
  • Better organized settings! Keyboard and mouse settings are now in their own respective tabs.

The current state of the app should be good for shipping a v1, I’ll just work out a few more things and making the app presentable for shipping!

0
Somebud

Finally fixed the issue with the view model! Settings now works properly. (I didn’t get around to re-recording the video, but I fixed the controller configuration of the sticks and d-pad within this devlog. Their role now updates properly)

  • Refactored the code of SettingsView and SettingsViewModel further. The view now works as intended!
  • Added a light background to the action picker in the hotkeys section to make selecting the button easier.
  • Changed the level of the onboarding view, no longer stays on top.
  • Made the joystick in the deadzone visualizer limited to within the circle.
0
Somebud

A lot of the changes here are not that visible from the interface, with most being in the code along with bug fixes.

  • Reworked the settings backend, moved non-ui code to a separate view model
  • Moved the action hotkeys into a submenu, splitting overlay hotkeys from mouse hotkeys as well

The restructure is quite time consuming, along with the bugs that arised. As of now there are still quite a few quirks to fix. But thats for the next devlog!

0
Somebud
  • Fixed the mouse emulation being vertically inverted
  • Added deadzone config to the settings, with a little preview (right now the stick movement area is a square, will fix)
  • Added mouse config to the settings
  • Re-organized the settings view, making it tabbed along with moving hotkeys and the new configs into a new tab.
  • A few tweaks here and there in the code and parts of the app.
0
Somebud

Added a few things in this devlog!

  • Cleaner settings, some stuff have been moved to left alignment, along with bigger icon glyphs.
  • Joystick movement filtering, basically less finnicky to select keys on the keyboard with your controller. This is the “Controller movement style” in the settings, 8-Directional isn’t working/implemented yet.
  • Mouse Emulation! Mouse movement and mouse clicks (left and right) work. Though mouse movement is currently inverted vertically, along with dragging not being responsive.
  • Mouse click hotkey, you can currently only set the mouse click hotkey. Mouse sensitivity and other various settings will be added later.

I plan on fixing buggy stuff and implementing missing features in the next devlog.

0
Somebud
  • The keyboard resizing feels more natural now, growing and shrinking from the center.
  • The glyphs in the settings are larger, discarding the background box.
  • The glyphs in settings and in the keyboard overlay are now colored to the active theme. Now appearing black in light mode and white in dark mode!
0
Somebud

I fixed a bug where the app wouldn’t trigger the accessibility prompt due to app entitlements. (So much back and forth fixing this 😭)

Along with this I added a hotkey to resize the keyboard, by default it is using the shoulder buttons. It’s a bit messy in the recording but I’ll try making sure it stays in its place by the next devlog.
(Unbeknownst to me, WakaTime was closed when I was coding most of this :sad: )

0
Somebud

Made the base feature of the app!
Initially didn’t plan to make this for Flavortown so I don’t have a devlog for a lot of the work. But these should be the main parts of the app in a roughly chronological order.

  • Created a virtual keyboard (Initially only contained the alphabet)
  • Added additional keys such as numbers, punctuation, and the other functions of the keyboard
  • Implemented the actual keyboard emulation functionality.
  • Implemented the ability to summon the keyboard using a keyboard shortcut
  • Implemented the ability to summon the keyboard using a controller shortcut (This took awhile to debug)
  • Fixed a bug where the controller wouldn’t focus on the keyboard.
  • Added Kenney’s input prompts for the controller glyphs.
  • Added code to change the glyphs based on the controller’s vendor (Nintendo, PS, etc.)
  • Added controller hotkeys to the keyboard (Those are the little glyphs you can see on some of the keys of the keyboard like the Shift key)

The keyboard part itself works pretty well, aside from the stick control being a bit erratic. Using the D-pad feels a lot better. Planning to fix this and add mouse emulation next.

Attachment
Attachment
1

Comments

muhizijoseph777

looks good