From 8b8ac4889ecb3aac2cf885351a01557c20e26a6d Mon Sep 17 00:00:00 2001 From: Henrik Bakken Date: Fri, 16 May 2025 18:39:33 +0200 Subject: [PATCH] calcurse -> khal + vdirsyncer --- .../applications/userapp-khalimport.desktop | 8 +++ calcurse/caldav/config | 14 ----- calcurse/conf | 33 ----------- khal/config | 35 ++++++++++++ manjaro.sh | 5 +- mimeapps.list | 2 +- sway/config | 2 +- vdirsyncer/config | 55 +++++++++++++++++++ waybar/config.jsonc | 2 +- 9 files changed, 105 insertions(+), 51 deletions(-) create mode 100644 HOME/.local/share/applications/userapp-khalimport.desktop delete mode 100644 calcurse/caldav/config delete mode 100644 calcurse/conf create mode 100644 khal/config create mode 100644 vdirsyncer/config diff --git a/HOME/.local/share/applications/userapp-khalimport.desktop b/HOME/.local/share/applications/userapp-khalimport.desktop new file mode 100644 index 0000000..ce4ce1e --- /dev/null +++ b/HOME/.local/share/applications/userapp-khalimport.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=khalimport +Exec=xterm -bg "#1E1E2e" -fg "#CDD6F4" -e "/usr/bin/khal import -a purelymail %s %f" +Categories=Other; +NoDisplay=true +MimeType=text/calendar +Terminal=false diff --git a/calcurse/caldav/config b/calcurse/caldav/config deleted file mode 100644 index 8223962..0000000 --- a/calcurse/caldav/config +++ /dev/null @@ -1,14 +0,0 @@ -[General] -Binary = calcurse -Hostname = purelymail.com -Path = /webdav/22216/caldav/A44F971C-BC2A-46F0-9992-4B490A8DB7FD/ -AuthMethod = basic -InsecureSSL = No -HTTPS = Yes -DryRun = No -Verbose = No -SyncFilter = event,apt,recur-event,recur-apt,todo,recur,cal - -[Auth] -Username = henrik@hjarl.com -PasswordCommand = pass show henrik@hjarl.com diff --git a/calcurse/conf b/calcurse/conf deleted file mode 100644 index 27d01aa..0000000 --- a/calcurse/conf +++ /dev/null @@ -1,33 +0,0 @@ -appearance.calendarview=monthly -appearance.compactpanels=no -appearance.defaultpanel=calendar -appearance.layout=1 -appearance.headerline=yes -appearance.eventseparator=yes -appearance.dayseparator=yes -appearance.emptyline=yes -appearance.emptyday=-- -appearance.notifybar=yes -appearance.sidebarwidth=29 -appearance.theme=default on default -appearance.todoview=hide-completed -appearance.headingpos=right-justified -daemon.enable=yes -daemon.log=no -format.inputdate=1 -format.notifydate=%a %F -format.notifytime=%T -format.appointmenttime=%H:%M -format.outputdate=%D -format.dayheading=%B %e, %Y -general.autogc=yes -general.autosave=yes -general.confirmdelete=yes -general.confirmquit=no -general.firstdayofweek=monday -general.multipledays=yes -general.periodicsave=0 -general.systemevents=yes -notification.command=printf '\a' -notification.notifyall=flagged-only -notification.warning=300 diff --git a/khal/config b/khal/config new file mode 100644 index 0000000..375ae41 --- /dev/null +++ b/khal/config @@ -0,0 +1,35 @@ +[default] + +default_calendar = purelymail +highlight_event_days = true + +[view] + +dynamic_days= true + +[locale] + +unicode_symbols = false +local_timezone = Europe/Oslo +default_timezone = Europe/Oslo +timeformat = %H:%M +dateformat = %d.%m +longdateformat = %d.%m.%Y + +[calendars] + +[[purelymail]] + path = ~/.config/vdirsyncer/calendars/purelymail/ + color = yellow + priority = 10 + +[[google]] + path = ~/.config/vdirsyncer/calendars/google/bakken.henrik@gmail.com + color = light magenta + priority = 5 + +[[holidays]] + path = ~/.config/vdirsyncer/calendars/holidays/ + color = dark cyan + readonly = True + priority = 0 diff --git a/manjaro.sh b/manjaro.sh index 63d8849..212b866 100755 --- a/manjaro.sh +++ b/manjaro.sh @@ -86,7 +86,7 @@ yay -S vlc protobuf yt-dlp yay -S castnow # div applications -yay -S calcurse python-httplib2 \ +yay -S khal vdirsyncer python-aiohttp-oauthlib \ discord \ discordo-git \ firefox \ @@ -108,3 +108,6 @@ yay -S calcurse python-httplib2 \ wget -P ~/.local/share/fonts/ https://raw.githubusercontent.com/SUNET/static_sunet_se/refs/heads/master/fonts/Akkurat-Mono.otf sudo mkdir -p /usr/share/backgrounds/ultrawide/ sudo wget -O rainbowsmoke.jpg -P /usr/share/backgrounds/ultrawide https://superultrawidewallpaper.com/wp-content/uploads/2022/02/rainbow-smoke-3840x1080-1860x523.jpg + +# set up vdirsyncer with google calendar using +# https://vdirsyncer.pimutils.org/en/stable/config.html#google diff --git a/mimeapps.list b/mimeapps.list index 0ad471d..8329ba4 100644 --- a/mimeapps.list +++ b/mimeapps.list @@ -27,6 +27,6 @@ application/pdf=org.pwmt.zathura.desktop; application/x-bittorrent=org.qbittorrent.qBittorrent.desktop; inode/directory=ranger.desktop; x-scheme-handler/msteams=teams.desktop; -text/calendar=firefox.desktop; +text/calendar=userapp-khalimport.desktop; [Added Associations] diff --git a/sway/config b/sway/config index 66f92f3..3d6f739 100644 --- a/sway/config +++ b/sway/config @@ -199,7 +199,7 @@ bindsym $mod+Shift+n exec makoctl dismiss -a bindsym $mod+p exec pcmanfm-qt bindsym $mod+Shift+p exec $term_float ranger bindsym $mod+u exec unipicker --command "rofi -dmenu | wl-copy" -bindsym $mod+period exec $term_float calcurse +bindsym $mod+period exec $term_float khal interactive # Special keys bindsym --locked XF86AudioMute exec $volume_mute diff --git a/vdirsyncer/config b/vdirsyncer/config new file mode 100644 index 0000000..9bfccab --- /dev/null +++ b/vdirsyncer/config @@ -0,0 +1,55 @@ +[general] +status_path = "~/.config/vdirsyncer/status/" + +[pair purelymail_calendar] +a = "purelymail_calendar_local" +b = "purelymail_calendar_remote" +collections = null +conflict_resolution = "b wins" +metadata = ["displayname", "color"] + +[storage purelymail_calendar_local] +type = "filesystem" +path = "~/.config/vdirsyncer/calendars/purelymail/" +fileext = ".ics" + +[storage purelymail_calendar_remote] +type = "caldav" +url = "https://purelymail.com/webdav/22216/caldav/A44F971C-BC2A-46F0-9992-4B490A8DB7FD/" +username = "henrik@hjarl.com" +password.fetch = ["command", "pass", "show", "henrik@hjarl.com"] + +[pair google_calendar] +a = "google_calendar_local" +b = "google_calendar_remote" +collections = ["from a", "from b"] +conflict_resolution = "b wins" +metadata = ["color"] + +[storage google_calendar_local] +type = "filesystem" +path = "~/.config/vdirsyncer/calendars/google/" +fileext = ".ics" + +[storage google_calendar_remote] +type = "google_calendar" +token_file = "~/.config/vdirsyncer/google_calendar_token" +client_id = "46299105873-2qbog08khdujcgvecbnjeql1r1rb0nir.apps.googleusercontent.com" +client_secret = "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" + +[pair holidays] +a = "holidays_local" +b = "holidays_remote" +collections = null +conflict_resolution = "b wins" +metadata = ["color"] + +[storage holidays_local] +type = "filesystem" +path = "~/.config/vdirsyncer/calendars/holidays/" +fileext = ".ics" + +[storage holidays_remote] +type = "http" +url = "https://calendar.google.com/calendar/ical/en.norwegian%23holiday%40group.v.calendar.google.com/public/basic.ics" +read_only = "true" diff --git a/waybar/config.jsonc b/waybar/config.jsonc index ce090b9..dded079 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -99,6 +99,6 @@ "interval": 1, "tooltip-format": "{calendar}", "format": " {:%Y-%m-%d %H:%M:%S}", - "on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 calcurse'" + "on-click": "swaymsg exec 'footclient --app-id floating_shell --window-size-chars 120x45 khal interactive'" } }