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 / nano-org-wip.el
Created April 27, 2024 13:45
GNU Emacs / N Λ N O org mode
;;; nano-org-wip.el --- N Λ N O org mode -*- lexical-binding: t -*-
;; Copyright (C) 2024 Nicolas P. Rougier
;; Maintainer: Nicolas P. Rougier <Nicolas.Rougier@inria.fr>
;; 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)
@rougier
rougier / imshow-3d.py
Last active August 27, 2023 08:22
Matplotlib 3D imshow
# Copyright 2023 Nicolas P. Rougier - BSD 2 Clauses licence
# This is an example of 3D projected images with matplotlib using imshow
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
from matplotlib.path import Path
from mpl_toolkits.mplot3d import proj3d
from matplotlib.patches import PathPatch
import matplotlib.transforms as mtransforms
@rougier
rougier / nano-agenda.el
Created July 17, 2023 17:33
NANO Agenda
;;; nano-agenda.el --- N Λ N O agenda -*- lexical-binding: t -*-
;; Copyright (C) 2021-2023 Nicolas P. Rougier <Nicolas.Rougier@inria.fr>
;; Maintainer: Nicolas P. Rougier <Nicolas.Rougier@inria.fr>
;; URL: https://github.com/rougier/nano-agenda
;; Version: 0.4.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: applications, org-mode, org-agenda
@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))