/awesome_dotfiles

in pursuit of the perfect rice

Primary LanguageLua

awesome

Hi! This is my AwesomeWM config. Thanks for checking it out!

The primary goal of this setup is to create an environment that:

  1. can be used easily on both my laptop and my touchscreen tablet
  2. integrates all the cli tools I use to manage my life into a nice dashboard
  3. looks awesome!

NOTE: This setup is incomplete, somewhat buggy, and under constant development. Because of that, I don't recommend daily driving it quite yet.

Installation (Arch/Arch-based)

Clone

cd ~/.config/ && git clone --recurse-submodules https://github.com/garado/awesome_dotfiles.git awesome

Update configuration/apps.lua with your default terminal/file manager/browser applications.

Install dependencies

yay -S awesome-git gcalcli nerd-fonts-roboto-mono ttf-roboto picom-pijulius-git

pacman -S playerctl rofi scrot pamixer brightnessctl upower task timew ledger

Configuration

Google Calendar events

  • Follow instructions to set up gcalcli
  • The calendar widget checks ~/.cache/awesome/calendar/agenda for data (in tsv format). It will automatically fetch data if it detects that there is no data in the file.
  • To keep your widget updated, periodically update the cache by putting gcalcli agenda --tsv > ~/.cache/awesome/calendar/agenda in a cron job.

Pixela habit tracker

  • Read these instructions to create a Pixela account and create your habits
  • Install pi (command line Pixela tool)
    • The install instructions on pi's Github page don't work, follow this:
    • go install github.com/a-know/pi/cmd/pi@latest
    • Put pi (located in $HOME/go/bin) in your path
  • Set the PIXELA_USER_NAME and PIXELA_USER_TOKEN environment variables
  • Update user_variables.lua with the habits you want to display
  • The utils/dash/habits/cache_habits script caches data from Pixela. Run it periodically with a cron job to keep your widget updated.

Finances tracker

  • Update user_variables.lua with the ledger file to read from

Other stuff

Name Source
Cursors Nordzy cursors
GTK theme Nordic
Firefox theme Nordic
Icon theme Papirus-Nord
Vim theme nord-vim
Rofi custom version of adi1090x theme

Dashboard

Features

  • Fancy music player (thank you rxhyn)
  • Events widget (with Google Calendar)
  • Tasks widget (with Taskwarrior)
  • Pomodoro timer (with Timewarrior)
  • Habit tracker (with Pixela)
  • Fancy finances (with Ledger)
    • Monthly spending tracker
    • Current account balances

Dashboard tabs

I couldn't fit enough information onto the main dashboard page, so I'm adding tabs!

Dashboard tab progress

  • Finances
    • Recent transactions
    • Monthly spending
    • Budget tracking
    • Arc chart animations :)
    • Yearly account balance trends
    • Redesign UI
  • Habits/goals
    • Goals tracker
    • Habit tracker
  • Tasks/calendar
    • Fancier task displays
      • Support subtasks + progress bar
    • Calendar

Known bugs

  • Pomodoro gets a little wonky if you restart awesome too many times
    • reason: stuff stored in xrdb to preserve pomodoro state across awesome restarts doesn't always get cleared properly
  • Monthly spending arc chart animation doesn't always work
    • reason: i have no idea
  • Overdue tasks don't show the correct due date
    • reason: my implementation was lazy lol i know how to fix it. i'll get around to it

In progress/planned

  • Dash (other)
    • Indicator for current dash tab
  • Control center
    • Quick actions
    • Power menu
    • Volume/brightness control
  • Bar
    • Volume/brightness control
    • Variable bar orientation!
    • Systray
    • Better app launcher
  • Other
    • Theme switcher
    • Custom rofi launcher
  • Notifications
    • Add icons

Credits

  • rxhyn for code reference