tijolo
tijolo copied to clipboard
Simple and fast keyboard focused IDE written in Crystal and GTK.
Tijolo
Lightweight, keyboard-oriented IDE for the masses.
Project status
Being rewrite using new GTK4 bindings and LibAdwaita, the re-write isn't done yet but if you want to check the old version check the v0.7.1 tag.
The TODO works like a roadmap and also list things I'm working on, it can give you a better idea of the project status.
Re-write progress
- [x] Draw grid (still unaligned).
- [x] Draw cursors.
- [x] Move cursors.
- [x] Implement Scrollable interface.
- [x] Study tree-sitter.
- [x] Handle text input (just really basic stuff to be able to test few things).
- [x] Create bindings for tree-sitter.
- [x] Fix gi-crystal structs, so Pango can be used..
- [ ] Fix gi-crystal for methods with multiple out params, so some other Pango functions can be used.
- [ ] Create a CodeLayout object to cache PangoLayout's per line.
- [ ] Render highlighted text with tree-sitter using pango attributes.
- [ ] Render tree-sitter errors.
- [ ] Implement
gtk_widget_class_add_binding_signal
on gtk4 shard, so shortcuts can be easily set. - [ ] Multiple cursors.
- [ ] Revisit what was done so far.
- [ ] Replace dummy text buffer by a piece table 🔥️
- [ ] Make cursors blink
- [ ] Hide mouse when typing
- [ ] Support auto-completion
How it looks like?

See more screenshots.
Project goals
- Run fast, something you don't see very often in new desktop applications.
- Have a simple distraction free UI.
- Keyboard focused user interface.
- Easy/fast code navigation.
- ♥️ Git.
- ♥️ Language Servers.
Installing
Archlinux
There's a AUR package for every release.
$ yay -S tijolo
There's also AUR package available for latest git version, named tijolo-git
.
Ubuntu
There should be a home made Ubuntu package for every release, check the github release page.
If you want to create a package from git, clone the repository then run ./packages/make-ubuntu-package
, this will generate
a docker image, build Tijolo inside that image, create a debian package then copy it back, out of the container. Not best
approach to build a deb package but works on non-deb machines.
Dependencies
You will need:
- Crystal compiler version >= 1.0.0.
- GTK3.
- GTKSourceView4.
- Vte.
- GIR packages for these GTK libraries.
- libGit2.
- editorconfig-core.
via apt
$ sudo apt-get install -y \
git make crystal libeditorconfig-dev \
libgirepository1.0-dev libgit2-dev \
libgtksourceview-4-dev libvte-2.91-dev libyaml-dev
Names and versions may differ depending on distro and version
via Homebrew/Linuxbrew
$ brew install crystal gtk+3 gobject-introspection gtksourceview4 vte3 \
libgit2 editorconfig
Other package managers
Check your distro's package managers for the equivalent package names. You will
need the install the -dev
or -devel
equivalent packages, in addition to the
runtime packages.
Compiling from Source
$ make
$ sudo make install
Tijolo use JetBrains Mono font, you can make install them if you don't already have them installed:
$ sudo make install-fonts
To uninstall:
$ sudo make uninstall uninstall-fonts
Usage
Pass a directory of a file under a git repository to open a project. Just call it without arguments to see a list of available projects.
Contributing
- Fork it (https://github.com/hugopl/tijolo/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Any ideas/suggestions, fill in an issue.
Contributors
- Hugo Parente Lima - creator and maintainer