Skip to content

Instantly share code, notes, and snippets.

View rougier's full-sized avatar
:octocat:

Nicolas P. Rougier rougier

:octocat:
View GitHub Profile
@rougier
rougier / org-calendar.el
Created January 6, 2023 18:11
Emacs / Generate a month view
(defun org-calendar-face (date)
'default)
(defun org-calendar-generate-month (year month)
(let* ((first (calendar-day-of-week (list month 1 year)))
(first (+ (mod (+ (- first 1) 7) 7) 1)) ;; Week starts on Monday
(last (+ first (calendar-last-day-of-month month year)))
(days ""))
(dotimes (row 6)
(dotimes (col 7)
@rougier
rougier / mastodon-tl-alternative.el
Last active July 24, 2023 16:13
A different timeline layout for the Emacs mastond client
;;; init-mastodon.el --- Mastodon layout mockup -*- lexical-binding: t -*-
;; Copyright (C) 2022 Nicolas P. Rougier
;; This file is not part of GNU Emacs.
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
@rougier
rougier / gist:de8643f43d05fd8514912198d21a212e
Created November 18, 2022 12:03
Emacs Mastodon client mockup
;;; init-mastodon.el --- Mastodon layout mockup -*- lexical-binding: t -*-
;; Copyright (C) 2022 Nicolas P. Rougier
;; This file is not part of GNU Emacs.
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
@rougier
rougier / quick-command.el
Last active September 19, 2022 11:26
Emacs proof of concept: emulating minibuffer in the mode line
(defface quick-command-face
`((t :foreground ,(face-foreground 'default)
:background ,(face-background 'highlight nil t)
:height ,(face-attribute 'default :height)
:box '(:line-width (1 . 1)
:color ,(face-foreground 'default)
:style none)))
"Face for quick command")
@rougier
rougier / imenu-filter.org
Created May 7, 2022 18:06
Filter for imenu-list

Section 1

Section 1.1

Section 1.1.1

Section 1.1.2

Section 1.2

Section 1.2.1

Section 1.2.2

@rougier
rougier / emacs-dnd-protocol.el
Created April 30, 2022 12:57
GNU Emacs DND protocol
;; Open scratch buffer, evalute code below and drag and drop some files onto the scratch buffer.
;; Code by Ivan Tadeu Ferreira Antunes Filho
;; https://ivanaf.com/emacs_drag-drop_pdfs_paste_html_custom_templates.html
(defun scratch--file-insert (uri)
(message "%s" uri))
(defun scratch--file-dnd-fallback (uri action)
(let ((dnd-protocol-alist
(rassq-delete-all 'scratch--file-dnd-protocol
@rougier
rougier / drop-shadows.el
Last active December 2, 2021 06:23
Emacs drop shadows
(require 'xml)
(require 'svg)
(let* ((text "Hello world!")
(font (query-font (font-at (point-min))))
(font-size (elt font 2))
(family (face-attribute 'default :family))
(descent (elt font 4))
(ascent (elt font 5))
(svg-height (+ ascent descent))
@rougier
rougier / init-agenda.el
Created November 28, 2021 17:38
Org agenda with dynamics icons
(require 'svg-lib)
(defun org-agenda-custom-date ()
(interactive)
(let* ((timestamp (org-entry-get nil "TIMESTAMP"))
(timestamp (or timestamp (org-entry-get nil "DEADLINE"))))
(if timestamp
(let* ((timestamp (ts-parse-org timestamp))
(delta (/ (ts-diff timestamp (ts-now)) (* 24 60 60)))
(delta (/ (+ 1 delta) 30))
@rougier
rougier / mu4e-mockup.el
Created September 26, 2021 09:37
Emacs / Mu4e configuration for threaded view (with folding)
;; mu4e setup -*- lexical-binding: t; -*-
;; This file is not part of GNU Emacs.
;;
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful, but
@rougier
rougier / mu4e-fast-folding.el
Last active October 10, 2022 18:23
Blazing fast mu4e thread folding
;; mu4e thread fast folding -*- lexical-binding: t; -*-
;; This file is not part of GNU Emacs.
;;
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful, but