Compare commits
8
Commits
78acace2d3
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca0939edf5 | ||
|
|
190b220391 | ||
|
|
d14436bb38 | ||
|
|
dc1803b0fb | ||
|
|
ce3504816d | ||
|
|
ee45d4a171 | ||
|
|
4b564bdbcb | ||
|
|
1d904afe4b |
@@ -1,11 +1,11 @@
|
||||
CC = cc
|
||||
CFLAGS = -g -Wall -Iinclude -I/opt/homebrew/include
|
||||
SOURCES = src/main.c src/window_state.c
|
||||
OBJECTS = src/main.o src/window_state.o
|
||||
SOURCES = src/main.c src/state.c
|
||||
OBJECTS = src/main.o src/state.o
|
||||
LDFLAGS = -L/opt/homebrew/lib
|
||||
LDLIBS = -lraylib -lm -lsqlite3
|
||||
HEADERS = \
|
||||
include/raygui.h include/common.h include/window_state.h
|
||||
include/raygui.h include/common.h include/state.h
|
||||
|
||||
PREFIX ?= /usr/local
|
||||
BINDIR := $(PREFIX)/bin
|
||||
@@ -16,14 +16,14 @@ BINDIR := $(PREFIX)/bin
|
||||
# %.o: %.c $(HEADERS)
|
||||
# $(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
adhd: src/main.o src/window_state.o
|
||||
$(CC) $(CFLAGS) src/main.o src/window_state.o -o $@ $(LDFLAGS) $(LDLIBS)
|
||||
adhd: src/main.o src/state.o
|
||||
$(CC) $(CFLAGS) src/main.o src/state.o -o $@ $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
src/main.o: src/main.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) src/main.c -o $@
|
||||
|
||||
src/window_state.o: src/window_state.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) src/window_state.c -o $@
|
||||
src/state.o: src/state.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) src/state.c -o $@
|
||||
clean:
|
||||
rm -rf $(OBJECTS) adhd
|
||||
|
||||
|
||||
@@ -1,14 +1,44 @@
|
||||
# Flowy.adhd
|
||||
|
||||
We live in a noisy digital world. Unless you turn off your WiFi, millions of companies bid for your attention as you try to perform even the simplest of tasks.
|
||||
We live in a noisy digital world. For anyone with adhd, doing one thing at a time is the key. NOT using fancy todo managers. Win one intention at a time instead of planning, prioritizing, and juggling 100s of things.
|
||||
|
||||
This tool is a free, open-source application to help you stay on track. You set an intention before you work, and an overlay will remind you of your intention every x minutes.
|
||||
This tool is a free, open-source application to help you stay on track. You set an intention before you work, and a big, fat overlay stays in your periphery to keep you on track.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Install
|
||||
At the moment, you must build and install the application yourself. There are minimum dependencies, so you essentially just need a C compiler.
|
||||
At the moment, you must build the application yourself.
|
||||
|
||||
Dependencies:
|
||||
- raylib
|
||||
- sqlite3
|
||||
|
||||
### macOS
|
||||
```sh
|
||||
brew install raylib
|
||||
git clone https://git.talksik.com/FlowyLabs/adhd
|
||||
cd adhd
|
||||
make
|
||||
./adhd
|
||||
|
||||
# Optional
|
||||
sudo make install
|
||||
```
|
||||
|
||||
### Linux
|
||||
```sh
|
||||
# Install raylib, sqlite3 according to your distro
|
||||
|
||||
git clone https://git.talksik.com/FlowyLabs/adhd
|
||||
cd adhd
|
||||
make
|
||||
./adhd
|
||||
|
||||
# Optional
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
@@ -16,14 +46,10 @@ At the moment, you must build and install the application yourself. There are mi
|
||||
2. A persistent overlay reminds you of your intention
|
||||
3. Set whether today was a win (focused) or loss (distracted), and view your daily activity in a nice graph
|
||||
|
||||
## Philosophy
|
||||
|
||||
In a world of fancy todo managers, for anyone with adhd, doing one thing at a time is the key. Win one intention at a time instead of planning, prioritizing, and juggling 100s of things.
|
||||
|
||||
## Features
|
||||
|
||||
- **No sign in required**
|
||||
- **Slick overlay to show current intention**
|
||||
- **Lightweight** - Written in C with few dependencies, nothing bloated like electron
|
||||
- **Lightweight** - Written in C with few dependencies
|
||||
- **Privacy first** - No telemetry, works offline
|
||||
- **Session history** - Review your past wins and losses
|
||||
- **Daily history** - Keep track of which days you won or lost
|
||||
|
||||
Vendored
BIN
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 356 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
@@ -1,5 +1,5 @@
|
||||
#ifndef WINDOWSTATE_H
|
||||
#define WINDOWSTATE_H
|
||||
#ifndef STATE_H
|
||||
#define STATE_H
|
||||
|
||||
#include "common.h"
|
||||
#include <stddef.h>
|
||||
@@ -11,8 +11,8 @@ enum mode_t {
|
||||
};
|
||||
typedef enum mode_t Mode;
|
||||
|
||||
void init_window_state();
|
||||
void cleanup_window_state();
|
||||
void init_state();
|
||||
void cleanup_state();
|
||||
|
||||
void set_intention(char *intention);
|
||||
char *get_intention();
|
||||
@@ -1,10 +0,0 @@
|
||||
#include <sqlite3.h>
|
||||
#include "common.h"
|
||||
|
||||
/* persist on disk with compact representation
|
||||
date representation -> value
|
||||
*/
|
||||
void store_result(U32 val, struct date d);
|
||||
void retrieve_result(U32 val, struct date d);
|
||||
void retrieve_results_before(int *vals, struct date before);
|
||||
|
||||
+4
-2
@@ -6,7 +6,7 @@
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include <raygui.h>
|
||||
#include <raylib.h>
|
||||
#include "window_state.h"
|
||||
#include "state.h"
|
||||
#include "common.h"
|
||||
|
||||
#define WINDOW_HEIGHT 700
|
||||
@@ -170,7 +170,7 @@ int main(int argc, char *argv[]) {
|
||||
localtime_r(&now, &local_time);
|
||||
mktime(&local_time);
|
||||
|
||||
init_window_state();
|
||||
init_state();
|
||||
|
||||
printf("Welcome to Flowy.adhd\n");
|
||||
|
||||
@@ -190,5 +190,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
CloseWindow();
|
||||
|
||||
cleanup_state();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "window_state.h"
|
||||
#include "state.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@@ -101,7 +101,7 @@ static void db_get_all_records() {
|
||||
assert(rc == SQLITE_OK);
|
||||
}
|
||||
|
||||
void init_window_state() {
|
||||
void init_state() {
|
||||
s = malloc(sizeof(struct state));
|
||||
s->mode = WINDOW;
|
||||
|
||||
@@ -170,7 +170,7 @@ static void generate_key(struct tm *time, char *buffer, size_t buffer_size) {
|
||||
snprintf(buffer, buffer_size, "%d", time->tm_yday);
|
||||
}
|
||||
|
||||
void cleanup_window_state() {
|
||||
void cleanup_state() {
|
||||
if (!s) {
|
||||
return;
|
||||
}
|
||||
Reference in New Issue
Block a user