Last active
July 14, 2025 19:09
-
-
Save smeech/5175ddb4790f3ee9e61752162155c086 to your computer and use it in GitHub Desktop.
[Popup date selector] #espanso #python #bash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Using zenity in Linux | |
| - trigger: :pickdate | |
| replace: "{{selected_date}}" | |
| vars: | |
| - name: selected_date | |
| type: shell | |
| params: | |
| cmd: zenity --calendar --date-format="%A %d/%m/%Y" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Espanso popup date selector | |
| - trigger: :ddate | |
| replace: '{{output}}' | |
| vars: | |
| - name: output | |
| type: script | |
| params: | |
| args: | |
| - python | |
| - -c | |
| - | | |
| from tkinter import Tk,Button | |
| from tkcalendar import DateEntry | |
| def get_date(): | |
| selected_date = cal.get() | |
| print(f"Selected date: {selected_date}") | |
| root.destroy() | |
| root = Tk() | |
| cal = DateEntry(root, date_pattern="yyyy-mm-dd") | |
| cal.pack() | |
| btn = Button(root, text="Click Here To Return a Date ", command=get_date) | |
| btn.pack() | |
| root.mainloop() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Modified to show calendar immediately and return date clicked. | |
| - trigger: :ddate | |
| replace: '{{output}}' | |
| vars: | |
| - name: output | |
| type: script | |
| params: | |
| args: | |
| - python | |
| - -c | |
| - | | |
| import sys | |
| from tkinter import Tk | |
| from tkcalendar import DateEntry | |
| def on_date_selected(event): | |
| print(cal.get()) | |
| sys.stdout.flush() | |
| root.after(1, root.destroy) | |
| root = Tk() | |
| cal = DateEntry(root, date_pattern="yyyy-mm-dd") | |
| cal.pack() | |
| cal.drop_down() | |
| cal.bind("<<DateEntrySelected>>", on_date_selected) | |
| root.mainloop() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # For Windows only | |
| - trigger: :pickdate | |
| replace: "{{date}}" | |
| vars: | |
| - name: date | |
| type: shell | |
| params: | |
| cmd: | | |
| Add-Type -AssemblyName System.Windows.Forms | |
| $form = New-Object Windows.Forms.Form | |
| $form.Text = "Select a date" | |
| $form.StartPosition = "CenterScreen" | |
| $form.Width = 250 | |
| $form.Height = 200 | |
| $cal = New-Object Windows.Forms.MonthCalendar | |
| $cal.MaxSelectionCount = 1 | |
| $cal.Dock = "Fill" | |
| # Event handler to close form on date select | |
| $cal.Add_DateSelected({ | |
| $form.DialogResult = [Windows.Forms.DialogResult]::OK | |
| $form.Close() | |
| }) | |
| $form.Controls.Add($cal) | |
| $null = $form.ShowDialog() | |
| $cal.SelectionStart.ToString("yyyy-MM-dd") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment