Skip to content

danisztls/eudaemon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eudaemon

Activity monitor that notifies user about computer usage in real time so it can be more aware about bad habits and take positive action.

Use case

We increasingly use computers to get things done and for many of us it's also a source of income, entertainment and a hobby. So we increasingly expend time on virtual space in detriment of real space possibly compromising our physical and mental well-being.

When immersed our sense of time, urgency and physical needs is distorted. Which can be good because we need this hyper focus to solve complex tasks. But it can also be bad because certain needs and duties might end unfulfilled. In real space we have feedback loops that evolved along a millennia that regulate our behavior. But suddenly we are living a completely different lifestyle to which we haven't properly adapted our instincts.

In general software does not take user needs and limitations into account or is adversarial and designed to grab it's attention so to maximize time spent and ads revenue.

Design

The premise is that lack of awareness is at blame and thoughtful notifications can anchor the user back to reality and improve it's capability for decision making and action. This program does not have reducing computer usage as a goal. This isn't a real issue or a target to maximize but a side effect of lack of consciousness when on virtual space. So the aim is to remind and provide clues to the user about its computer usage patterns.

Monitoring computer usage

We can log activeness in small time blocks. For example, if the user was not idle (any keyboard or mouse event) in the last minute, that block is logged as active. Doing that it can effectively monitor computer usage without getting into the trouble of dealing with a high-level of granularity like monitoring activity per-application. The later would require a more complex/intrusive daemon and active categorization by the user which in my experience is counter-productive and doomed to fail.

Remind to do periodic pauses

We can stay sitted for long periods when using a computer which is correlated with obesity and a cluster of health issues. Having a break and exercising from time to time is critical for blood flow and health. The issue is that when focused we can easily forget to do so.

Preventing distraction

Everything nowadays farms for our attention. We are easily distracted and we can spend way more time than we planned on certain activities. We can help prevent distraction through effective timers and periodic reminders.

An alternative outside the scope of this program is to create isolated contexts for each cluster of activities because that is easier to manager and better for awareness due to the doorway effect. For example, you can have dedicated rigs or users for entertainment and for work.

Also there are tools to block certain sites and programs while allowing usage on specified periods and conditions. e.g.:

Preventing delayed sleep

Blue light exposure outside of daytime messes with our circadian rhythm making us sleeper later than we should. Tools like f.lux and GNOME Night Light change the color temperature of the screen making colors warmer. Thought that is only half of the equation. Reducing screen brightness at night also helps and don't impair as much color perception and comfort.

Features

  • No GUI. Runs on the background.
  • It isn't a chore to use.
  • Empowers user by notifying instead of acting on its own.

Roadmap

  • Automatic Monitor Brightness Adjustment
    • Local sunrise/sunset times
  • Activity Monitor
    • Reminders to take a break
    • Improved data processing
    • Store/export time-series data
  • YAML configuration

Caveats

  • It's on an early stage of development.
  • It does not really know your true needs and state.
  • Efficacy is limited by your desire to change something.

Install

pipx eudaemon

or use the AUR package.

Usage

Start systemd service: systemctl --user start eudaemon

(if not using the AUR pkg you will have to manually copy the service file)

Or run:

# all
eudaemon

# only activity monitor
eudaemon-idleness

# only display brightness monitor
eudaemon-brightness

Configuration

...

About

Monitor and log activity, improve awareness and empower user to improve it's habits.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages