Hi all, I’m working on setting my terminal to display different tasks and information when I login. I have problems with attention and I frequently forget to do important things, so I really need to do this to help myself. I’m aware some of this will cause my terminal to be more slow when I first login. That’s fine even if it takes an additional second to login. I have a rough mockup attached in the picture. The mockup uses the pr -Tm
command to display my calendar side-by-side with my schedule and todo list, but here’s where I’m at:
- Calendar is automated by
ncal -C
- Weather is automated using
curl wttr.in/New%20York?0
- Schedule is just a text file at the moment
- Todo is just a text file at the moment
I’m looking to also automate my schedule and todo from the command line, but I don’t want to use Google-based tools or tools that connect to an external server in general. I’m looking for terminal-based tools where I can add events to my schedule with descriptions, times, and dates (support for recurring events is a bonus, but maybe not required), and then fetch my daily schedule and print it. Does anybody know a good way to handle this part? I could setup a simple database to store and interact with my schedule, but I feel like there has to already be a good tool like that available. However, my searches keeps pulling up things that aren’t quite what I want…
Thanks for reading this! I appreciate any advice you have for the Linux side of things.
Looked at this it the past but never ended up using it myself. https://taskwarrior.org/
Wow that’s really useful! I’m testing it out now.
Sounds like Emacs’ orgmode could be useful.
Is this orgmode that has to run within Emacs, or can it display things to the terminal on login?
Within emacs. The display things on login it cannot do.
Check out CalCurse, I use it for exactly this purpose. It’s primarily a curses tui application but it can also print itineraries and todos to the console.
I really love the interface. That’s like exactly what I want, minus the TUI aspect
Can I add reminders/todo from the command line, or do I have to enter the TUI to do so?
Not sure if you’ve looked at remind (this is an older article, but still relevant). It may take a little to get into, but it does a fantastic job of organize calendar stuff. As far as teminal init, I have something like
remind -cl+1 -w`expr $(tput cols) - 10` /home/user/.reminders
So I have the current weeks events printed across the top of the terminal. Remind can also schedules pop-up reminders for upcoming events. The only awful thing about
remind
is it’s a pain in the ass searching for it. It does have an active mailing list where you can get quick answers to just about any question, no matter how complicated or simple.For todos, I’ve tried both todo.txt and taskwarrior. And a few others if I’m being honest. I’ve never been able to stick with a todo app, so I can’t offer much advice.
Weather, I use the same as you. I have family all over the world, so I set up aliases based on their names that show me the time as well as the weather. For example:
[\ #1] Bob tokyo: ⛅️ +82°F Sunday 05:24 AM [user@home\ :6|~] [\ #2] type Bob Bob is aliased to `curl wttr.in/tokyo?format=3;TZ=Asia/Tokyo date "+%A %I:%M %p" '
I’m not much help putting it all together, but I think you are on the right track for you. There are tricks to getting multi-line outputs to be side by side, I can give you some help there if you want, but you’re really like 95% there.
Okay sweet thanks for also suggesting taskwarrior. It seems easy enough to navigate. I’m also going through the man for remind now to see what format it’s expecting for the
.remind
file. I appreciate it!Dude, can’t help you with your question, but you need to know that your gratitude in your replies to everyone made my day. Thank you.
You’re welcome homie ❤️ I just want to make sure I let everybody know how much I appreciate the awesome community
scientiist/todo is pretty good. https://github.com/scientiist/todo
I’ll check it out! Thanks!
For calendar, I use khal, which offers a TUI (
ikhal
command) and a non-captive UI that can print a simple list like you might want (khal
command). It supports multiple calendars, ical, recurring events, etc. Since it support ical, you can add locations, times, dates, alarms, pretty much anything you want. No database required, each event is saved into a seperate ical file (easy to import into another program, if you wanna switch someday).I also use todoman for to-do lists, which is pretty similar to khal in terms of interface — having both a captive TUI and a non-captive UI.
I realize this doesn’t interest you, but as a side-note: Both of these use portable file-formats that can be synced with any pretty much any calendar-syncing service using vdirsyncer, which I use to sync my events and todo-lists and address book using Posteo.
Thanks for suggesting khal! I actually just stumbled across it while trying to find something that does exactly what I want. My only complaint with khal is that I want a todo list with khal as well. I have a tendency to forget important things, and it would be great if I could throw things onto a list that doesn’t have times or dates, but gets displayed regardless. Do you know if that’s possible with khal? For example, either above or below my schedule on the right column I’d have a todo list.
The best I can think of would be tmux/screen with khal running in a pane beside todoman; sorry. :o
no problem! I appreciate it!
I would mainly suggest orgmode as it will continue to stay “just a file”. It is made to be pretty interpretable by its own right, dont need to be in emacs to understand it. Emacs can run from terminal with emacs -nw. Emacs also has a vimlike complete overhaul called spacemacs.
I think there are not strictly emacs based ways to use org. Probably in vim.
Thanks for the suggestion! I use emacs, although only from the terminal via
emacs-nox
oremacs-snapshot-nox
packages. I haven’t used orgmode other than some testing related to other comments, but it’s not exactly what I’m looking for. My main criterion is I want everything right in front of me when I open the terminal and start working, not in a separate program or interface.Oh, yeah I understand. Im sure you could do that. In its current form it is pretty straightforward how you do it, I wouldnt necessarily dispense with it. It is Unixlike to use multiple software.