github.com/mipmip/gnome-hotkeys.cr

WIP gnome hotkeys app, now implemented in crystal

1 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  myhotkeys:
    github: mipmip/gnome-hotkeys.cr
    version: ~> 0.2.7

Then run:

shards install

shard.yml

Crystal
1.4.1
License
MIT
Author
Pim Snel <
Target
  • myhotkeys from src/myhotkeys.cr

Dependencies

Runtime Dependencies

  • gtk4*github: hugopl/gtk4.cr, branch: main
  • libadwaita*github: GeopJr/libadwaita.cr, branch: main

README

NOTE WIP

This project is in active development. Everything can change.

Reading material

https://ultimate-gtk4-crystal-guide.geopjr.dev/en/first-app/ui-design.html

Develop

git clone https://github.com/mipmip/gnome-hotkeys.cr
cd gnome-hotkeys.cr
nix develop
shards
make

Usage

./bin/myhotkeys -c ./test.json

TODO v1.0

  • [x] compile UI at runtime

  • [x] input file argument

  • [x] solution for displaying command words (custom widget)

  • [x] forward slash (slash)

  • [x] backtick (grave)

  • [x] play in builder to find all possibilities

  • [x] change YAML to JSON class

  • [x] setup cli options

  • [x] nix derivation

  • [x] default shortcut_file

  • [x] default config file

  • [x] name: myhotkeys

  • [x] libadwaita

  • [x] icon wip

  • [ ] dark mode

  • [ ] improve alignment commands

  • [ ] add gnome extensions and desktop shortcuts

    • [x] read settings from GIO
    • [ ] implement hide settings from conf or argument
  • [ ] subclass shortcutsshortcut.c

    • [ ] accel-size-group
    • [ ] title-size-group
    • [ ] new type: command
    • [ ] search match group titles for single shortcuts
  • [ ] documentation

  • [ ] add buttons to menubar

    • [ ] about
    • [ ] configure
  • [ ] control ordering

  • [ ] more sections...?

ROADMAP 2.0

  • current application aware
  • plugin system

Contributing

  1. Fork it (https://github.com/mipmip/gnome-hotkeys.cr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request