A hexagonal application launcher which has vim like navigation for linux users.
hex.mp4
Check requirements section first
- git clone this repo!
- make
- sudo make install
- copy config file from res/config to ~/.config/Hex/ with same name i.e. config
- type Hex in terminal
- cd to your cloned repo
- sudo make purge
You can exit program any time by pressing escape
The program has two modes which can be switched using tab:
Insert mode ( blue one in screenshots )
Visual mode ( orange one in screenshots )
- Insert mode: It allows you to write a string in the centeral hexagon, the program will try to find the application you are looking for and present you the top six matching results in the outer hexagons (6 hexagons surrounding the central hexagons)
- Visual mode: Main navigation takes place here. In your mind split outer hexagons in two halves, top 3 and bottom 3, then:
2.1. The keys k and j are used to switch between upper and lower halves
2.2. The key h will shift the selected hexagon to the left hexagon in the half and key l will shift selected hexagon to right hexagon in the half.
2.3. Press enter to execute the selected program (works only in visual mode). For example in the 3rd screenshot, pressing enter will launch firefox web browser. Beware it does not executes cli programs like nmtui (poweroff and reboot works though).
2.4. You can also use arrow keys for navigation.
Copy config file in res folder of git repo to $HOME/.config/Hex/config (name should remain config).
The config enables you to customize colors in Hex. The pattern is as follows:
variableName = r g b
where spaces are neccessary and r g b are color values of red green and blue respectively ranging between 0 and 255
The following variables can be edited:
- visualColor: It is the color of the outer rings in visual mode.
- insertColor: It is the color of inner ring in insert mode.
- disabledColor: It is color of disabled rings (ie outer rings in insert mode and inner ring in visual mode).
- textColor: It is the color of text while you are typing and of suggestions being displayed in outer ring.
- selectedTextColor: It is the color of text which is selected in visual mode.
- icon: It can only have one of three values:
none: It's the default, setting it will show no icons.
color: Original icons are displayed with their original colors.
neon: Changes icons to look like neon signs. The color of the neon icon is the value textColor when not selected and selectedTextColor when selected.
- This program uses glfw, so make sure you have it in your linux machine. Either download from your package manager or build it from source (visit their official webpage).
- You will need a compositor for transparency, for example picom.
- Disable shadows for Hex(this program) on your compositor
- If you are using i3, it applies ugly border to the window, to remove that you will have to add following line in the end of i3config: for_window [class="Hex"] border pixel 0
Follow these steps in your cloned repo to install your own fonts.
- edit source/Engine.cpp
- inside the function void Engine::init() find the line: fontAtlas.setAtlas("circuitFontAtlas") comment int out
- in place of this line add the line: fontAtlas.setAtlas("your_fonts") : where your_fonts is a png file of your font atlas kept in res/textures/ folder of your cloned repo, note: donot write .png in the arguements
- To create your own fontAtlas, just use gimp or photoshop and make sure you draw letters exactly on top of circuitFontAtlas.png in res/textures/, that is letters should have same width and height and spacing between them. Put it in res/textures/your_fonts.png then change line: fontAtlas.setAtlas("your_fonts") note donot write .png
- redo the instructions for Install above and you are done