67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
# Timer overlay
|
|
This is a project to display a timer overlayed on top of the rest of your desktop that is controlled with keyboard shortcuts so you can quickly
|
|
start a timer any time you need with only a couple key presses
|
|
|
|
This relies on the [GlobalShortcuts XDG desktop portal](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.GlobalShortcuts.html),
|
|
which is currently only implemented on KDE Plasma. I am considering reworking it to not rely on the portal, but we'll see if I get around to that
|
|
|
|
|
|
|
|
# Dependencies
|
|
This project relies on [glew](https://github.com/nigels-com/glew) [glfw3](https://www.glfw.org/) [freetype2](https://freetype.org/) and [sdbus-cpp](https://github.com/Kistler-Group/sdbus-cpp).
|
|
You will need to install these libraries to be able to build/run this project
|
|
|
|
For example, on Arch Linux:
|
|
```
|
|
sudo pacman -S glew glfw freetype2 sdbus-cpp
|
|
```
|
|
|
|
You will also need to have make and a c++ compiler to build the project
|
|
For example, on Arch Linux: (you probably already have these if you are using Arch as they are dependencies of base-devel)
|
|
```
|
|
sudo pacman -S make gcc
|
|
```
|
|
|
|
|
|
# Building
|
|
Once the dependencies have been installed, you can compile the project simply with:
|
|
```
|
|
make
|
|
```
|
|
|
|
|
|
|
|
# Installing
|
|
Installation is likewise very simple, simply run:
|
|
```
|
|
sudo make install
|
|
```
|
|
|
|
There is also a desktop file provided that you may want to install to /usr/share/applications/, ~/.local/share/applications/, or ~/.config/autostart,
|
|
but that is left up to you
|
|
|
|
|
|
|
|
# Configuring
|
|
You can configure the position the window requests and the font that is used using a config file at $XDG_CONFIG_HOME/timer_overlay/config.txt or
|
|
~/.config/timer_overlay/config.txt. The syntax looks like:
|
|
```
|
|
POSX=300
|
|
POSY=30
|
|
FONT=/usr/share/fonts/noto/NotoSans-Bold.ttf
|
|
FONT_SIZE=48
|
|
```
|
|
However, when running under Wayland, the requested position of the window will not be respected, so to set the position, as well
|
|
as removing window decorations, and preventing the window from stealing focus when it is opened, you will need to set window rules.
|
|
You can see the rules I use below:
|
|
![window rules](https://cam123.dev/files/hidden/images/window_rules.png)
|
|
|
|
|
|
|
|
# Licensing
|
|
The MIT license attached to this project applies to most of the repo, with the exception of one file, ```src/character_utils.cpp```.
|
|
This file's core logic was copied from [https://learnopengl.com/In-Practice/Text-Rendering](https://learnopengl.com/In-Practice/Text-Rendering),
|
|
and is therefore licensed and copyrighted by its creator, [Joey de Vries](https://twitter.com/JoeyDeVriez) under the CC BY 4.0 license
|
|
which you can read about [here](https://creativecommons.org/licenses/by/4.0/) or [here](https://creativecommons.org/licenses/by/4.0/legalcode)
|
|
|