Giter Site home page Giter Site logo

org-timeblock's Introduction

org-timeblock

Schedule your day visually, using timeblocking technique inside Emacs.

Contents

Screenshots

org-timeblock-mode buffer:

screenshots/org-timeblock-mode.png

You can press [t] to toggle the display of org-timeblock-list-mode buffer. Foreground colors for timeblocks are generated randomly, but you can assign specific background and foreground colors in customizable variable org-timeblock-tag-colors:

screenshots/org-timeblock-with-list-mode.png

Screencast

https://youtu.be/lVV9gVp5nxU

Description

The builtin orgmode package for viewing tasks or events for a particular day, org-agenda, does not help you to quickly understand, where, for example, you have free time in your day or where you have overlapping tasks. Just a list of tasks is not sufficient. This package is created to fix this problem and provide some of the functionality that modern calendars provide.

There are two major modes provided by the package:

  • org-timeblock-mode. Displays visual schedule (timeblocks) of org tasks that are scheduled or have an active timestamp in their body (orgmode events) for selected day (Currently, only day view is available). Available commands:
    • org-timeblock-day-earlier/later [C-<down>/<up>]
    • org-timeblock-set-duration [d]
    • org-timeblock-reschedule [s]
    • org-timeblock-new-task [+]
    • org-timeblock-toggle-timeblock-list [t]
    • org-timeblock-todo [1]
    • org-timeblock-done [5]
    • org-timeblock-switch-view [v]
    • org-timeblock-jump-to-day [j]
  • org-timeblock-list-mode. Displays a list of org tasks that are scheduled or orgmode events for selected day. It’s sort of like a light org-agenda. The tasks can be sorted via SCHEDULED org property or manually placed by user via commands org-timeblock-list-drag-line-forward/backward [M-<up>/<down>]. The order can be saved in a cache file via org-timeblock-list-save [C-s] command. The sorting algorithm can be changed via org-timeblock-list-toggle-sort-function [S] command.
    • org-timeblock-list-schedule [s]
    • org-timeblock-list-set-duration [d]
    • org-timeblock-todo [1]
    • org-timeblock-done [5]
    • org-timeblock-list-drag-line-forward/backward [M-<down>/<up>]
    • org-timeblock-list-toggle-sort-function [S]
    • org-timeblock-list-toggle-timeblock [t]

Installation

Requirements:

  • Emacs 28.1 (or higher)
  • SVG support in your Emacs build

package-vc-install (Emacs 29)

If you use Emacs 29, you can install the package via

M-x package-vc-install RET https://github.com/ichernyshovvv/org-timeblock/ RET

Guix

If you use Guix, you can install the package from this channel.

  1. To add the channel, add this to the list of channels in channels.scm:
(channel
 (name 'sklv)
 (url "https://git.sr.ht/~sokolov/channel"))
  1. Then, run guix pull.
  2. Now you can install the package.

Quelpa

  1. Install quelpa-use-package (which can be installed directly from MELPA).
  2. Add this form to your init file:
(use-package org-timeblock
  :quelpa (org-timeblock :fetcher github :repo "ichernyshovvv/org-timeblock"))

Straight

Add this form to your init file:

(use-package org-timeblock
  :straight (org-timeblock :type git
              :host github
              :repo "ichernyshovvv/org-timeblock"))

Usage

To enter org-timeblock-list-mode, run M-x org-timeblock-list. To enter org-timeblock-mode, run M-x org-timeblock

For both modes, the default date is today. All the tasks and events are searched in (org-agenda-files). You can change the displayed date via the following commands:

  • org-timeblock-day-later [C-<down>]
  • org-timeblock-day-earlier [C-<up>]
  • org-timeblock-jump-to-day [j]

To navigate between tasks/blocks, use these commands:

  • org-timeblock-list-mode
    • org-timeblock-list-previous-line [<up>]
    • org-timeblock-list-next-line [<down>]
  • org-timeblock-mode
    • org-timeblock-forward-block [<down>]
    • org-timeblock-bacward-block [<up>]

In both modes, you can navigate via mouse clicks to select an entry or a block.

To reschedule or change the duration of a task at point, use these commands:

  • org-timeblock-list-mode
    • org-timeblock-list-schedule [s]
    • org-timeblock-list-set-duration [d]
  • org-timeblock-mode
    • org-timeblock-schedule [s]
    • org-timeblock-set-duration [d]

Customization

M-x customize-group org-timeblock to see available customizable variables.

org-timeblock's People

Contributors

flinner avatar ichernyshovvv avatar progfolio avatar sirikid avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.