Compare commits

...

27 commits

Author SHA1 Message Date
39b495affd
nvim: Update lockfile 2023-03-21 18:58:51 +01:00
617872463b
qutebrowser: Add annas archive search engine 2023-03-21 18:58:35 +01:00
0a90be6155
newsboat: Add simple settings 2023-03-21 18:58:16 +01:00
e6d17ab632
wezterm: Yank to clipboard by default 2023-03-21 18:57:38 +01:00
395ae723b9
qutebrowser: Update redirects 2023-03-21 18:56:17 +01:00
a276251aa7
bootstrap: Update stable packages 2023-03-21 18:52:50 +01:00
b52ecda093
terminal: Change timg for viu 2023-03-21 18:26:32 +01:00
384ff59a3f
vifm: Move external file operations to localleader prefix 2023-03-19 14:55:58 +01:00
3795b20a59
vifm: Add new tab mapping 2023-03-19 14:55:07 +01:00
e464c5000a
vifm: Improve prefix suggestions display
If given <nop> as prefix mapping, the suggestions box shows *all*
mappings that exist in the program. By removing the <nop> we make the
key do its usual action but at the same time restrict the suggestions
being displayed to those actually following the prefix.
2023-03-19 14:53:47 +01:00
0612c74b91
vifm: Add ellipses ... to truncated filenames 2023-03-19 14:52:52 +01:00
5a04f34f97
vifm: Update library path to general library dir 2023-03-19 14:52:28 +01:00
dc20b23b0a
vifm: Set rg as program to grep with 2023-03-19 14:52:11 +01:00
98892fbc89
vifm: Change delay until map suggestions are shown 2023-03-19 14:51:01 +01:00
6a4f2e6ecc
papis: Change notes to markdown, add ee library 2023-03-19 14:50:25 +01:00
b3aa44f7a5
nvim: Update plugin lockfile 2023-03-19 14:49:38 +01:00
0189753b18
nvim: Update spell dict 2023-03-19 14:49:24 +01:00
917d80b7f2
nvim: Change spell fix shortcut to z mapping 2023-03-19 14:48:25 +01:00
7a6575f760
nvim: Add easyread speed reading plugin 2023-03-19 14:47:56 +01:00
0d5eeadef0
nvim: Remove wrapping notification, add toggle map 2023-03-19 14:47:26 +01:00
b8eb02ef6c
nvim: Add arduino language server wrapping 2023-03-19 14:46:26 +01:00
6dd08327d8
qutebrowser: Switch youtube search engine back to yewtube 2023-03-09 21:19:27 +01:00
c59b617da5
qutebrowser: Fix external textbox editor
Fixed text not flowing to the external (nvim) editor and saved text not
being brought back into qutebrowser.
Same issue as here https://github.com/qutebrowser/qutebrowser/issues/6707
it essentially amounts to the terminal not having its own running
process id which qutebrowser uses to know when the application closes.
Thus, it thinks it closes immediately and deletes the temporary file. No
changes are brought back and the file is empty for the editor.
With the fix, this does not happen anymore.
2023-03-09 21:17:24 +01:00
9d449af08b
flavours: Switch bg/fg color around for wezterm tab 2023-03-07 15:04:16 +01:00
46cdb519ea
flavours: Call bemenu selection from wrapper function
If we call the listing and applying function directly we either select a
random colorscheme on *no* selection or we have to make use of either
xargs GNU functionality or something like moreutils ifne to only select
color schemes on selection.

Can additionally set a random theme (if selection is 'random') or a
random light theme (if selection is 'light').
2023-03-07 12:20:41 +01:00
c31e441003
wezterm: Use default inactive pane styling 2023-03-07 12:08:09 +01:00
3e19a38b38
styler: Remove from repo 2023-03-07 12:07:46 +01:00
22 changed files with 336 additions and 438 deletions

View file

@ -1,6 +1,6 @@
# `~/🌹` # `~/🌹`
Note that the below screenshots still show the X configuration from [v0.1](https://gitlab.com/marty-oehme/dotfiles/-/tags/v0.1). Note that the below screenshots still show the X configuration from [v0.1](https://gitlab.com/marty-oehme/dotfiles/-/tags/v0.1) which is very old by now.
The current dotfiles are geared toward wayland for which the setup looks similar but not identical to the previews below. The current dotfiles are geared toward wayland for which the setup looks similar but not identical to the previews below.
## What's in these dotfiles ## What's in these dotfiles
@ -10,8 +10,8 @@ The current dotfiles are geared toward wayland for which the setup looks similar
* [x] simple, efficient waybar with package update notification, and spotify (mpris) integration * [x] simple, efficient waybar with package update notification, and spotify (mpris) integration
* [x] tmux session management through `tm` and `tl` tools * [x] tmux session management through `tm` and `tl` tools
* [x] tmux fuzzy-searching of terminal sessions to switch to with hot-key (`<C-A><C-s>`) in addition to normal session switching * [x] tmux fuzzy-searching of terminal sessions to switch to with hot-key (`<C-A><C-s>`) in addition to normal session switching
* [x] system-wide color management (terminals, vim, qutebrowser, polybar, xresources) through `styler` command using [base16](http://chriskempson.com/projects/base16/) themes * [x] system-wide color management (terminals, vim, qutebrowser, polybar, xresources) through [`flavours`](https://github.com/Misterio77/flavours) application using [base16](http://chriskempson.com/projects/base16/) themes
* [x] quick theme switching by activating `styler` and fuzzy-searching themes with hot-key (default `<Super>=<Shift>+S`) * [x] quick theme switching by activating `flavours` and fuzzy-searching themes with hot-key (default `<Super>=<Shift>+S`)
* [x] many vim color-schemes with quick light/dark switching (`F8`) and individual theme switch (`<Space>+F8`) * [x] many vim color-schemes with quick light/dark switching (`F8`) and individual theme switch (`<Space>+F8`)
* [x] quick directory jumping using `z`, with `fzf` integration * [x] quick directory jumping using `z`, with `fzf` integration
* [x] `fzf`-like integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more * [x] `fzf`-like integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more

View file

@ -4,7 +4,7 @@ acpid A daemon for delivering ACPI power management events with netlink support
afew Initial tagging script for notmuch mail R afew Initial tagging script for notmuch mail R
alias-tips-git An oh-my-zsh plugin to help remembering those aliases you defined once A alias-tips-git An oh-my-zsh plugin to help remembering those aliases you defined once A
alsa-utils Advanced Linux Sound Architecture - Utilities R alsa-utils Advanced Linux Sound Architecture - Utilities R
anki Helps you remember facts (like words/phrases in a foreign language) efficiently A anki-bin Helps you remember facts (like words/phrases in a foreign language) efficiently. Installed with wheel. A
ansible Official assortment of Ansible collections R ansible Official assortment of Ansible collections R
ansible-lint Checks playbooks for practices and behaviour that could potentially be improved. R ansible-lint Checks playbooks for practices and behaviour that could potentially be improved. R
arch-wiki-lite Arch Wiki without HTML. 1/9 as big, easily searched & viewable on console R arch-wiki-lite Arch Wiki without HTML. 1/9 as big, easily searched & viewable on console R
@ -19,6 +19,7 @@ atool A script for managing file archives of various types R
aubio A tool for extracting annotations from audio signals R aubio A tool for extracting annotations from audio signals R
barrier Open-source KVM software based on Synergy (GUI) R barrier Open-source KVM software based on Synergy (GUI) R
base Minimal package set to define a basic Arch Linux installation R base Minimal package set to define a basic Arch Linux installation R
base-devel Basic tools to build Arch Linux packages R
bash-bats Bash Automated Testing System R bash-bats Bash Automated Testing System R
bash-completion Programmable completion for the bash shell R bash-completion Programmable completion for the bash shell R
bash-language-server Bash language server implementation based on Tree Sitter and its grammar for Bash R bash-language-server Bash language server implementation based on Tree Sitter and its grammar for Bash R
@ -196,6 +197,7 @@ nzbget Download from Usenet using .nzb files R
offpunk-git Fork of the command-line Gemini client AV-98 with added offline capabilities A offpunk-git Fork of the command-line Gemini client AV-98 with added offline capabilities A
oh-my-zsh-git A community-driven framework for managing your zsh configuration. Includes 180+ optional plugins and over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community A oh-my-zsh-git A community-driven framework for managing your zsh configuration. Includes 180+ optional plugins and over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community A
os-prober Utility to detect other OSes on a set of drives R os-prober Utility to detect other OSes on a set of drives R
pacman-contrib Contributed scripts and tools for pacman systems R
parallel A shell tool for executing jobs in parallel R parallel A shell tool for executing jobs in parallel R
parsec-bin Remotely connect to a gaming pc for a low latency remote computing experience A parsec-bin Remotely connect to a gaming pc for a low latency remote computing experience A
paru-bin Feature packed AUR helper A paru-bin Feature packed AUR helper A
@ -255,6 +257,7 @@ reflector A Python 3 module and script to retrieve and filter the latest Pacman
remind A sophisticated calendar and alarm program. R remind A sophisticated calendar and alarm program. R
remmina remote desktop client written in GTK+ R remmina remote desktop client written in GTK+ R
restic Fast, secure, efficient backup program R restic Fast, secure, efficient backup program R
ripgrep-all rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc. R
river A dynamic tiling wayland compositor R river A dynamic tiling wayland compositor R
rivercarro A slightly modified version of rivertile layout generator for river. A rivercarro A slightly modified version of rivertile layout generator for river. A
rng-tools Random number generator related utilities R rng-tools Random number generator related utilities R
@ -286,7 +289,6 @@ texlab A cross-platform implementation of the Language Server Protocol for LaTeX
thermald The Linux Thermal Daemon program from 01.org R thermald The Linux Thermal Daemon program from 01.org R
tidy-viewer CLI csv pretty printer that uses column styling A tidy-viewer CLI csv pretty printer that uses column styling A
timew Timewarrior, A command line time tracking application R timew Timewarrior, A command line time tracking application R
timg Terminal Image and Video Viewer A
tlp Linux Advanced Power Management R tlp Linux Advanced Power Management R
tmux Terminal multiplexer R tmux Terminal multiplexer R
toilet free replacement for the FIGlet utility. A toilet free replacement for the FIGlet utility. A
@ -320,6 +322,7 @@ virt-manager Desktop user interface for managing virtual machines R
virtualbox Powerful x86 virtualization for enterprise as well as home use R virtualbox Powerful x86 virtualization for enterprise as well as home use R
virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R
visidata Terminal spreadsheet multitool for discovering and arranging data R visidata Terminal spreadsheet multitool for discovering and arranging data R
viu Simple terminal image viewer R
wallabag-client Command line client for the self hosted read-it-later app Wallabag A wallabag-client Command line client for the self hosted read-it-later app Wallabag A
wavemon Ncurses-based monitoring application for wireless network devices R wavemon Ncurses-based monitoring application for wireless network devices R
waybar Highly customizable Wayland bar for Sway and Wlroots based compositors R waybar Highly customizable Wayland bar for Sway and Wlroots based compositors R
@ -327,6 +330,7 @@ waylock A simple screenlocker for wayland compositors R
wdisplays GUI display configurator for wlroots compositors A wdisplays GUI display configurator for wlroots compositors A
wev tool for debugging wayland events, similar to xev A wev tool for debugging wayland events, similar to xev A
wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer R wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer R
wf-recorder Screen recorder for wlroots-based compositors such as sway R
wget Network utility to retrieve files from the Web R wget Network utility to retrieve files from the Web R
wireguard-tools next generation secure network tunnel - tools for configuration R wireguard-tools next generation secure network tunnel - tools for configuration R
wireless_tools Tools allowing to manipulate the Wireless Extensions R wireless_tools Tools allowing to manipulate the Wireless Extensions R
@ -344,6 +348,7 @@ ytfzf A POSIX script to find and watch youtube videos from the terminal R
zathura-cb Adds comic book support to zathura R zathura-cb Adds comic book support to zathura R
zathura-djvu DjVu support for Zathura R zathura-djvu DjVu support for Zathura R
zathura-pdf-mupdf PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS) R zathura-pdf-mupdf PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS) R
zk A command-line tool helping you to maintain a Zettelkasten or personal wiki R
zotero-bin Zotero Standalone. Is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources. A zotero-bin Zotero Standalone. Is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources. A
zq Tooling for super-structured data A zq Tooling for super-structured data A
zsh-autosuggestions Fish-like autosuggestions for zsh R zsh-autosuggestions Fish-like autosuggestions for zsh R

Can't render this file because it contains an unexpected character in line 301 and column 64.

View file

@ -34,11 +34,11 @@ brights = [
[colors.tab_bar] [colors.tab_bar]
background = "#{{base00-hex}}" background = "#{{base00-hex}}"
[colors.tab_bar.inactive_tab] [colors.tab_bar.inactive_tab]
bg_color = "#{{base05-hex}}"
fg_color = "#{{base00-hex}}"
[colors.tab_bar.active_tab]
bg_color = "#{{base00-hex}}" bg_color = "#{{base00-hex}}"
fg_color = "#{{base05-hex}}" fg_color = "#{{base05-hex}}"
[colors.tab_bar.active_tab]
bg_color = "#{{base05-hex}}"
fg_color = "#{{base00-hex}}"
[colors.tab_bar.new_tab] [colors.tab_bar.new_tab]
bg_color = "#{{base05-hex}}" bg_color = "#{{base05-hex}}"
fg_color = "#{{base00-hex}}" fg_color = "#{{base00-hex}}"

View file

@ -71,7 +71,7 @@ riverctl map normal $mod+Shift T spawn "bemenu-translate"
# Desktop theming # Desktop theming
# shellcheck disable=SC2016 # shellcheck disable=SC2016
riverctl map normal $mod+Shift S spawn 'flavours list -l | bemenu | xargs flavours apply' riverctl map normal $mod+Shift S spawn 'flavourchoose'
# Password dropdown frontend # Password dropdown frontend
riverctl map normal $mod+Shift P spawn "pass-pick" riverctl map normal $mod+Shift P spawn "pass-pick"

View file

@ -0,0 +1,26 @@
#!/usr/bin/env sh
picker=dmenu
if exist bemenu; then
picker=bemenu
elif exist wofi; then
picker=wofi
elif exist rofi; then
picker=rofi
fi
list=$(flavours list -l)
flavour=$(printf "%s\nrandom\nlight" "$list" | "$picker")
if [ -z "$flavour" ]; then
return
elif [ "$flavour" = "random" ]; then
flavours apply '*'
elif [ "$flavour" = "light" ]; then
flavours apply '*light'
else
flavours apply "$flavour"
fi
if [ "$1" = '-v' ]; then
notify-send "Theme set" "set to: $flavour"
fi

View file

@ -1,4 +1,5 @@
{ {
"Arduino.nvim": { "branch": "main", "commit": "63f71687c0f4bcebafbb7e480f0d47b6fe46bd82" },
"BetterLua.vim": { "branch": "master", "commit": "d2d6c115575d09258a794a6f20ac60233eee59d5" }, "BetterLua.vim": { "branch": "master", "commit": "d2d6c115575d09258a794a6f20ac60233eee59d5" },
"LuaSnip": { "branch": "master", "commit": "500981ff6cefc7343e3959ef0f939bd0bfd49ba9" }, "LuaSnip": { "branch": "master", "commit": "500981ff6cefc7343e3959ef0f939bd0bfd49ba9" },
"Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" }, "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
@ -17,41 +18,42 @@
"completion-vcard": { "branch": "master", "commit": "2220fd517a985ececed1adcf0e5be8f2815564c7" }, "completion-vcard": { "branch": "master", "commit": "2220fd517a985ececed1adcf0e5be8f2815564c7" },
"dial.nvim": { "branch": "master", "commit": "54b503f906bc9e5ab85288414840a1b86d40769f" }, "dial.nvim": { "branch": "master", "commit": "54b503f906bc9e5ab85288414840a1b86d40769f" },
"dressing.nvim": { "branch": "master", "commit": "5f44f829481640be0f96759c965ae22a3bcaf7ce" }, "dressing.nvim": { "branch": "master", "commit": "5f44f829481640be0f96759c965ae22a3bcaf7ce" },
"easyread.nvim": { "branch": "main", "commit": "73df5f4dc8fd38bef079b890b2a34412844c00b1" },
"formatter.nvim": { "branch": "master", "commit": "ed949c13e1a942db29ababa35e8c7864ced90eb6" }, "formatter.nvim": { "branch": "master", "commit": "ed949c13e1a942db29ababa35e8c7864ced90eb6" },
"friendly-snippets": { "branch": "main", "commit": "009887b76f15d16f69ae1341f86a7862f61cf2a1" }, "friendly-snippets": { "branch": "main", "commit": "25ddcd96540a2ce41d714bd7fea2e7f75fea8ead" },
"fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" }, "fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" },
"gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" }, "gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" },
"jupyter-kernel.nvim": { "branch": "main", "commit": "92eee2a9fcff65aedaba8f0544b87db44981673b" }, "jupyter-kernel.nvim": { "branch": "main", "commit": "997dd7303f1e9cb210e511364725cfc4b6c4aa36" },
"lazy.nvim": { "branch": "main", "commit": "14075657131b9a19883a8845c47f1ab65461cd6f" }, "lazy.nvim": { "branch": "main", "commit": "887eb75591520a01548134c4623617b639289d0b" },
"lightspeed.nvim": { "branch": "main", "commit": "299eefa6a9e2d881f1194587c573dad619fdb96f" }, "lightspeed.nvim": { "branch": "main", "commit": "299eefa6a9e2d881f1194587c573dad619fdb96f" },
"lsp-format.nvim": { "branch": "master", "commit": "ca0df5c8544e51517209ea7b86ecc522c98d4f0a" }, "lsp-format.nvim": { "branch": "master", "commit": "ca0df5c8544e51517209ea7b86ecc522c98d4f0a" },
"lsp-zero.nvim": { "branch": "main", "commit": "79d2091809a295aba94f9ea72cd622bca198d046" }, "lsp-zero.nvim": { "branch": "main", "commit": "5b68fbdc91102de41fb53da79f52752370d71a7e" },
"lsp_signature.nvim": { "branch": "master", "commit": "4665921ff8e30601c7c1328625b3abc1427a6143" }, "lsp_signature.nvim": { "branch": "master", "commit": "4665921ff8e30601c7c1328625b3abc1427a6143" },
"lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" }, "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" },
"magma-nvim-goose": { "branch": "main", "commit": "d54719dad7771061678a77dace5bef43b4462be8" }, "magma-nvim-goose": { "branch": "main", "commit": "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f" },
"markdown-preview.nvim": { "branch": "master", "commit": "9becceee5740b7db6914da87358a183ad11b2049" }, "markdown-preview.nvim": { "branch": "master", "commit": "9becceee5740b7db6914da87358a183ad11b2049" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "a31e011135a79d63c71254c250c9158e1056a1cb" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "a31e011135a79d63c71254c250c9158e1056a1cb" },
"mason.nvim": { "branch": "main", "commit": "3ee3174e30e33c9d58fa07b0a73a6e180474b59c" }, "mason.nvim": { "branch": "main", "commit": "3ee3174e30e33c9d58fa07b0a73a6e180474b59c" },
"mini.nvim": { "branch": "main", "commit": "427751024313e2270ca723eb16af7b218c83a7fc" }, "mini.nvim": { "branch": "main", "commit": "427751024313e2270ca723eb16af7b218c83a7fc" },
"neural": { "branch": "main", "commit": "155618730b87a67655bdde373ee27bfce8b07ac9" }, "neural": { "branch": "main", "commit": "155618730b87a67655bdde373ee27bfce8b07ac9" },
"nui.nvim": { "branch": "main", "commit": "0dc148c6ec06577fcf06cbab3b7dac96d48ba6be" }, "nui.nvim": { "branch": "main", "commit": "0dc148c6ec06577fcf06cbab3b7dac96d48ba6be" },
"nvim-base16": { "branch": "master", "commit": "0cab02bac9ca02a70db9e1d07e25fdb630b18a21" }, "nvim-base16": { "branch": "master", "commit": "22bad36cd64e85afb0c9d0e9b92106b5ea6dabc6" },
"nvim-cmp": { "branch": "main", "commit": "feed47fd1da7a1bad2c7dca456ea19c8a5a9823a" }, "nvim-cmp": { "branch": "main", "commit": "777450fd0ae289463a14481673e26246b5e38bf2" },
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" }, "nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
"nvim-lspconfig": { "branch": "master", "commit": "1a2d5f5224c65b0709bf5da0ccd9cad29272083a" }, "nvim-lspconfig": { "branch": "master", "commit": "0f94c5fded29c0024254259f3d8a0284bfb507ea" },
"nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" }, "nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" },
"nvim-surround": { "branch": "main", "commit": "a06dea11e7fdcf338776fa51fa5277163ffb048d" }, "nvim-surround": { "branch": "main", "commit": "b98862527c4727c171f8626e04d8ae88ef6cb736" },
"nvim-toggleterm.lua": { "branch": "main", "commit": "a5638b2206c3930a16a24e5c184dddd572f8cd34" }, "nvim-toggleterm.lua": { "branch": "main", "commit": "a5638b2206c3930a16a24e5c184dddd572f8cd34" },
"nvim-treesitter": { "branch": "master", "commit": "c38646edf2bdfac157ca619697ecad9ea87fd469" }, "nvim-treesitter": { "branch": "master", "commit": "c38646edf2bdfac157ca619697ecad9ea87fd469" },
"nvim-treesitter-context": { "branch": "master", "commit": "895ec44f5c89bc67ba5440aef3d1f2efa3d59a41" }, "nvim-treesitter-context": { "branch": "master", "commit": "895ec44f5c89bc67ba5440aef3d1f2efa3d59a41" },
"nvim-treesitter-textsubjects": { "branch": "master", "commit": "b913508f503527ff540f7fe2dcf1bf1d1f259887" }, "nvim-treesitter-textsubjects": { "branch": "master", "commit": "b913508f503527ff540f7fe2dcf1bf1d1f259887" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "729d83ecb990dc2b30272833c213cc6d49ed5214" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "729d83ecb990dc2b30272833c213cc6d49ed5214" },
"nvim-ts-rainbow2": { "branch": "master", "commit": "b2d1f4f51b1bd20de419ffb6f5d0876c4f20d9db" }, "nvim-ts-rainbow2": { "branch": "master", "commit": "cee4601ff8aac73dee4afa1074814343bb5a0b80" },
"otter.nvim": { "branch": "main", "commit": "8b46caf113918c26a9247031d6482709078ec907" }, "otter.nvim": { "branch": "main", "commit": "cfb548957aed403d9838febd7223595d47b32031" },
"playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" }, "playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" },
"plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" }, "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
"quarto-nvim": { "branch": "main", "commit": "b44f8772686241e563c7d0f200748fd71766b64e" }, "quarto-nvim": { "branch": "main", "commit": "91c82b96660d0b2d830c668365719b295272432d" },
"significant.nvim": { "branch": "main", "commit": "5450e9d5917dc6aa9afb0fcbe32355799b8303fb" }, "significant.nvim": { "branch": "main", "commit": "5450e9d5917dc6aa9afb0fcbe32355799b8303fb" },
"spellsitter.nvim": { "branch": "master", "commit": "4af8640d9d706447e78c13150ef7475ea2c16b30" }, "spellsitter.nvim": { "branch": "master", "commit": "4af8640d9d706447e78c13150ef7475ea2c16b30" },
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" }, "symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
@ -68,7 +70,7 @@
"vim-spellsync": { "branch": "master", "commit": "3d6dd50de9c4d953cc16638112a6ae196df41463" }, "vim-spellsync": { "branch": "master", "commit": "3d6dd50de9c4d953cc16638112a6ae196df41463" },
"which-key.nvim": { "branch": "main", "commit": "2a0c2d80c0a60f041afb1b789cfedbd510e2b2b6" }, "which-key.nvim": { "branch": "main", "commit": "2a0c2d80c0a60f041afb1b789cfedbd510e2b2b6" },
"wrapping.nvim": { "branch": "master", "commit": "a4013c377e2ffa3be00fb67791d3605ae3115acb" }, "wrapping.nvim": { "branch": "master", "commit": "a4013c377e2ffa3be00fb67791d3605ae3115acb" },
"zen-mode.nvim": { "branch": "main", "commit": "4bd28fb3a44317c6258cebc7d92243d4b11dfe2c" }, "zen-mode.nvim": { "branch": "main", "commit": "d907e638c879642d226d27469b53db6925f69d4c" },
"zettelkasten.nvim": { "branch": "main", "commit": "0e77624689b470410f5355b613d45219c9350264" }, "zettelkasten.nvim": { "branch": "main", "commit": "0e77624689b470410f5355b613d45219c9350264" },
"zk-nvim": { "branch": "main", "commit": "0413c52500cd0133b0cd8e7e7d43084855ac1760" } "zk-nvim": { "branch": "main", "commit": "0413c52500cd0133b0cd8e7e7d43084855ac1760" }
} }

View file

@ -136,7 +136,6 @@ map('n', '<leader>vm', ":Mason<cr>", { desc = 'Mason' })
-- Set vim to distraction free prose mode with F11 -- Set vim to distraction free prose mode with F11
map('n', '<leader>vz', ':ZenMode<cr>', { silent = true }) map('n', '<leader>vz', ':ZenMode<cr>', { silent = true })
-- PLUGIN: Telescope GLOBAL FUZZY FINDING -- PLUGIN: Telescope GLOBAL FUZZY FINDING
-- buffers and files in current workdir -- buffers and files in current workdir
prefix({ ['<leader>f'] = { name = '+find' } }) prefix({ ['<leader>f'] = { name = '+find' } })
@ -199,8 +198,8 @@ map('n', '<localleader>ZE', ':setlocal spell! spelllang=en_us<cr>',
map('n', '<localleader>ZG', ':setlocal spell! spelllang=de_de<cr>', map('n', '<localleader>ZG', ':setlocal spell! spelllang=de_de<cr>',
{ desc = 'Toggle DE spellcheck' }) { desc = 'Toggle DE spellcheck' })
-- undo last spelling mistake from insert and normal mode -- undo last spelling mistake from insert and normal mode
map('i', '<c-s>', '<C-G>u<Esc>[s1z=`]a<C-G>u') map('i', '<c-z>', '<C-G>u<Esc>[s1z=`]a<C-G>u')
map('n', '<localleader>s', 'ms[s1z=`s', { desc = 'Fix last spell error' }) map('n', '<localleader>z', 'ms[s1z=`s', { desc = 'Fix last spell error' })
-- PLUGIN: mini.nvim -- PLUGIN: mini.nvim
prefix({ ['<leader>s'] = { name = '+show' } }) prefix({ ['<leader>s'] = { name = '+show' } })
@ -240,3 +239,10 @@ map('n', '<leader>ww', [[:lua require 'zettelkasten'.index_open()<cr> ]],
-- PLUGIN: toggleterm.nvim -- PLUGIN: toggleterm.nvim
-- create a lazygit window, set up in toggleterm settings -- create a lazygit window, set up in toggleterm settings
map('n', '<leader>G', ':Lazygit<cr>') map('n', '<leader>G', ':Lazygit<cr>')
-- PLUGIN: wrapping.nvim
map('n', '<localleader>sw', [[:lua require('wrapping').toggle_wrap_mode()<cr> ]],
{ silent = true, desc = 'toggle wrap mode' })
-- PLUGIN: easyread.nvim
map('n', '<localleader>ss', ':EasyreadToggle<cr>', { silent = true, desc = 'toggle speedreading' })

View file

@ -61,6 +61,9 @@ lsp.configure("pyright", {
client.config.settings.python.pythonPath = python_path client.config.settings.python.pythonPath = python_path
end end
}) })
-- set up arduino with the help of arduino.nvim plugin
lsp.configure("arduino_language_server",
{ on_new_config = require('arduino').on_new_config })
lsp.setup_nvim_cmp({ lsp.setup_nvim_cmp({
sources = { sources = {
{ name = 'path' }, { name = 'nvim_lsp', keyword_length = 2 }, { name = 'path' }, { name = 'nvim_lsp', keyword_length = 2 },

View file

@ -13,9 +13,11 @@ return {
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter 'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
opts = { numhl = true, signcolumn = false }, opts = { numhl = true, signcolumn = false },
event = "BufRead" event = "BufRead"
}, }, {
{ 'RRethy/nvim-base16', event = "BufWinEnter", 'RRethy/nvim-base16',
dependencies = { 'rktjmp/fwatch.nvim' } }, { event = "BufWinEnter",
dependencies = { 'rktjmp/fwatch.nvim' }
}, {
'norcalli/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme 'norcalli/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme
config = true, config = true,
event = "VeryLazy" event = "VeryLazy"
@ -24,7 +26,7 @@ return {
config = function() require('plug._format') end, config = function() require('plug._format') end,
event = "VeryLazy" event = "VeryLazy"
}, -- editing }, -- editing
{ 'kylechui/nvim-surround', version = '*', config = true, event = "VeryLazy" }, -- surround things with other things using ys/cs/ds { 'kylechui/nvim-surround', version = '*', config = true, event = "VeryLazy" }, -- surround things with other things using ys/cs/ds
{ {
'monaqa/dial.nvim', -- extend the ^a / ^x possibilities to dates, hex, alphabets, markdown headers 'monaqa/dial.nvim', -- extend the ^a / ^x possibilities to dates, hex, alphabets, markdown headers
config = function() config = function()
@ -61,16 +63,24 @@ return {
}, { }, {
'junegunn/vim-easy-align', -- Align tables and other alignable things 'junegunn/vim-easy-align', -- Align tables and other alignable things
event = "VeryLazy" event = "VeryLazy"
}, -- statusline }, { 'edKotinsky/Arduino.nvim', ft = 'arduino', config = true }, -- statusline
{ {
'nvim-lualine/lualine.nvim', 'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true }, requires = { 'kyazdani42/nvim-web-devicons', opt = true },
config = function() require('plug._lualine') end config = function() require('plug._lualine') end
}, -- writing }, -- writing
{ 'vim-pandoc/vim-criticmarkup', ft = writing_ft }, { { 'vim-pandoc/vim-criticmarkup', ft = writing_ft }, {
'mickael-menu/zk-nvim', 'mickael-menu/zk-nvim',
config = function() require('zk').setup({ picker = "telescope" }) end config = function() require('zk').setup({ picker = "telescope" }) end
}, { 'andrewferrier/wrapping.nvim', config = true }, { }, {
'andrewferrier/wrapping.nvim',
config = function()
require('wrapping').setup({
create_keymappings = false,
notify_on_switch = false
})
end
}, {
'quarto-dev/quarto-nvim', 'quarto-dev/quarto-nvim',
dependencies = { dependencies = {
'jmbuhr/otter.nvim', 'neovim/nvim-lspconfig', 'jmbuhr/otter.nvim', 'neovim/nvim-lspconfig',
@ -102,6 +112,7 @@ return {
}, { 'micarmst/vim-spellsync', event = "VeryLazy" }, -- personal dict improvements for git sync }, { 'micarmst/vim-spellsync', event = "VeryLazy" }, -- personal dict improvements for git sync
{ 'folke/zen-mode.nvim', config = true, event = "VeryLazy" }, -- provide distraction free writing { 'folke/zen-mode.nvim', config = true, event = "VeryLazy" }, -- provide distraction free writing
{ 'folke/twilight.nvim', event = "VeryLazy" }, -- provide even distraction free-er writing (lowlight paragraphs) { 'folke/twilight.nvim', event = "VeryLazy" }, -- provide even distraction free-er writing (lowlight paragraphs)
{ 'JellyApple102/easyread.nvim', config = true, ft = writing_ft, cmd = 'EasyreadToggle' }, -- enable 'speed-reading' mode (bionic reading)
{ 'marty-oehme/zettelkasten.nvim', ft = writing_ft, event = "VeryLazy" }, -- simple static markdown linking { 'marty-oehme/zettelkasten.nvim', ft = writing_ft, event = "VeryLazy" }, -- simple static markdown linking
{ {
"iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files "iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files
@ -193,7 +204,7 @@ return {
"hrsh7th/cmp-nvim-lsp", "kdheepak/cmp-latex-symbols", "hrsh7th/cmp-nvim-lsp", "kdheepak/cmp-latex-symbols",
"ray-x/cmp-treesitter", "f3fora/cmp-spell", "ray-x/cmp-treesitter", "f3fora/cmp-spell",
"hrsh7th/cmp-cmdline", "cbarrete/completion-vcard", "hrsh7th/cmp-cmdline", "cbarrete/completion-vcard",
"jc-doyle/cmp-pandoc-references", "jc-doyle/cmp-pandoc-references"
} }
}, "L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets", }, "L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets",
{ "lukas-reineke/lsp-format.nvim", config = true } { "lukas-reineke/lsp-format.nvim", config = true }

View file

@ -178,3 +178,5 @@ exploitations
tradeable tradeable
reproducability reproducability
positivity positivity
dataset
endogeneity

View file

@ -18,6 +18,7 @@ c.hints.uppercase = True
c.editor.command = [ c.editor.command = [
term, term,
"start", "start",
"--always-new-process",
"nvim", "nvim",
"-f", "-f",
"{file}", "{file}",
@ -62,7 +63,6 @@ c.colors.webpage.bg = "#555555"
# Prevents *all* tabs from being loaded on restore, only loads on activating them # Prevents *all* tabs from being loaded on restore, only loads on activating them
c.session.lazy_restore = True c.session.lazy_restore = True
# for code_select.py userscript # for code_select.py userscript
# Allows copying code sections to clipboard easily # Allows copying code sections to clipboard easily
c.hints.selectors["code"] = [ c.hints.selectors["code"] = [

View file

@ -65,7 +65,6 @@ redirects = {
"target": [ "target": [
"nitter.net", "nitter.net",
"nitter.42l.fr", "nitter.42l.fr",
"nitter.pussthecat.org",
"nitter.fdn.fr", "nitter.fdn.fr",
"nitter.1d4.us", "nitter.1d4.us",
"nitter.kavin.rocks", "nitter.kavin.rocks",
@ -164,8 +163,8 @@ redirects = {
"whoogle.dcs0.hu", "whoogle.dcs0.hu",
], ],
}, },
"wikipedia": { "wiki-en": {
"source": ["wikipedia.org"], "source": ["en.wikipedia.org"],
"target": [ "target": [
"wiki.adminforge.de", "wiki.adminforge.de",
"wiki.froth.zone", "wiki.froth.zone",
@ -175,7 +174,12 @@ redirects = {
"wikiless.northboot.xyz", "wikiless.northboot.xyz",
"wikiless.org", "wikiless.org",
"wikiless.tiekoetter.com", "wikiless.tiekoetter.com",
"wl.vern.cc", ],
},
"wiki-de": {
"source": ["de.wikipedia.org"],
"target": [
"wiki.adminforge.de",
], ],
}, },
} }

View file

@ -1,5 +1,4 @@
c.url.searchengines = { c.url.searchengines = {
"sci": "https://sci-hub.ru/{}",
"DEFAULT": "https://search.martyoeh.me/?q={}", "DEFAULT": "https://search.martyoeh.me/?q={}",
"al": "https://wiki.archlinux.org/index.php/{}", "al": "https://wiki.archlinux.org/index.php/{}",
"alt": "https://alternativeto.net/software/{}/?license=opensource", "alt": "https://alternativeto.net/software/{}/?license=opensource",
@ -14,7 +13,6 @@ c.url.searchengines = {
"hn": "https://hn.algolia.com/?q={}", "hn": "https://hn.algolia.com/?q={}",
"kb": "https://soeg.kb.dk/discovery/search?query=any,contains,{}&lang=en", "kb": "https://soeg.kb.dk/discovery/search?query=any,contains,{}&lang=en",
"l": "https://links.martyoeh.me/?searchterm={}&searchtags=", "l": "https://links.martyoeh.me/?searchterm={}&searchtags=",
"lib": "http://libgen.fun/search.php?req={}",
"man": "https://manned.org/browse/search?q={}", "man": "https://manned.org/browse/search?q={}",
"maps": "https://www.qwant.com/maps/?q={}", "maps": "https://www.qwant.com/maps/?q={}",
"pcw": "https://www.pcgamingwiki.com/w/index.php?search={}", "pcw": "https://www.pcgamingwiki.com/w/index.php?search={}",
@ -22,7 +20,10 @@ c.url.searchengines = {
"r": "https://www.reddit.com/r/{}", "r": "https://www.reddit.com/r/{}",
"t": "https://www.thesaurus.com/browse/{}", "t": "https://www.thesaurus.com/browse/{}",
"w": "https://en.wikipedia.org/w/index.php?search={}", "w": "https://en.wikipedia.org/w/index.php?search={}",
"yt": "https://invidious.weblibre.org/search?q={}", "yt": "https://yewtu.be/search?q={}",
"lib": "http://libgen.fun/search.php?req={}",
"sci": "https://sci-hub.ru/{}",
"anna": "https://annas-archive.org/search?q={}",
} }
c.url.default_page = "https://start.duckduckgo.com" c.url.default_page = "https://start.duckduckgo.com"
c.url.start_pages = ["https://start.duckduckgo.com"] c.url.start_pages = ["https://start.duckduckgo.com"]

View file

@ -1,3 +1,99 @@
# source settings
urls-source "miniflux" urls-source "miniflux"
miniflux-url "https://rss.martyoeh.me/" miniflux-url "https://rss.martyoeh.me/"
miniflux-tokeneval "pass show personal/rss.martyoeh.me/Marty | grep newsboat | cut -f2 -d:" miniflux-tokeneval "pass show personal/rss.martyoeh.me/Marty | grep newsboat | cut -f2 -d:"
# feed settings
#auto-reload yes
reload-time 120
reload-threads 12
download-retries 4
download-timeout 10
prepopulate-query-feeds yes
# download but hide ignored
ignore-mode display
# display settings
text-width 120
show-read-feeds no
feed-sort-order unreadarticlecount-asc
color listnormal cyan default
color listfocus black default standout bold
color listnormal_unread blue default
color listfocus_unread yellow default bold
color info red black bold
color article white default bold
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
highlight article "(^Link:.*|^Date:.*)" default default
highlight article "https?://[^ ]+" green default
highlight article "^(Title):.*$" blue default
highlight article "\\[[0-9][0-9]*\\]" magenta default bold
highlight article "\\[image\\ [0-9]+\\]" green default bold
highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
highlight article ":.*\\(link\\)$" cyan default
highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default
feedlist-format "%?T?║%n %12u %t &╠ %t?"
highlight feedlist "[║│]" color3 color0
highlight feedlist "╠.*" color3 color0
# navigation
goto-next-feed no
bind-key j down feedlist
bind-key k up feedlist
bind-key j next articlelist
bind-key k prev articlelist
bind-key J next-feed articlelist
bind-key K prev-feed articlelist
bind-key j down article
bind-key k up article
bind-key j down searchresultslist
bind-key k up searchresultslist
bind-key l open
# move back everywhere with h, except for quitting app from feedview
bind-key h quit articlelist
bind-key h quit article
bind-key h quit dirbrowser
bind-key h quit filebrowser
bind-key h quit help
bind-key h quit tagselection
bind-key h quit filterselection
bind-key h quit urlview
bind-key h quit searchresultslist
bind-key g home
bind-key G end
bind-key ^F pagedown
bind-key ^B pageup
bind-key ^D pagedown
bind-key ^U pageup
bind-key n next-unread
bind-key N prev-unread
bind-key ^n next-unread-feed articlelist
bind-key ^p prev-unread-feed articlelist
bind-key s sort
bind-key S rev-sort
bind-key U show-urls
bind-key a toggle-article-read
bind-key f goto-url
bind-key z toggle-show-read-feeds
unbind-key C
unbind-key ^D
macro m set browser umpv ; open-in-browser ; set browser $BROWSER
macro M set browser umpv ; open-in-browser-and-mark-read ; set browser $BROWSER
macro d set browser vidl ; open-in-browser ; set browser $BROWSER
macro d set browser vidl ; open-in-browser-and-mark-read ; set browser $BROWSER

View file

@ -1,50 +0,0 @@
#compdef styler
# the above line should contain all commands to be completed using this file
# zsh autocompletions for styler script
local curcontext="$curcontext" state line ret=1
local cmdnames=(theme set download list help version)
_arguments -C \
'1: :->cmds' \
'2: :->args' \
'3: :->subrout' && ret=0
local -a initial_commands=(
'theme:Temporarily switch theme to specified argument'
'set:Permanently set theme to specified argument'
'download:Download a base16 compatible template'
'list:Display installed processors, templates, or themes'
'help:Display help text and exit'
'version:Display styler information and exit'
)
__themes() {
echo "$(styler list themes)"
}
case $state in
cmds)
_describe -t commands 'styler cmd' initial_commands && ret=0
;;
args)
case $words[2] in
theme | set)
_values 'themes' $(__themes) && ret=0
;;
list)
_values 'listopts' \
'processors[Display available application processors]' \
'templates[Display available base16 templates]' \
'themes[Display available base16 themes]' && ret=0
;;
*)
((ret)) && _message 'no more arguments'
;;
esac
;;
esac

View file

@ -1,314 +0,0 @@
#!/usr/bin/env bash
readonly BASE_PATH="${STYLER_DATA_PATH:-${XDG_DATA_HOME:-$HOME/.local/share}/styler}"
readonly CACHE_PATH="${STYLER_CACHE_PATH:-${XDG_CACHE_HOME:-$HOME/.cache}/styler}"
readonly PACKAGE_PATH="$BASE_PATH/packages"
readonly PROCESSOR_PATH="$BASE_PATH/processors"
readonly VERSION="0.4.1"
main() {
local cmd=""
local ret=0
case "$1" in
theme)
cmd="switch_theme"
;;
set)
cmd="set_theme"
;;
list)
cmd="list"
;;
download)
cmd="download"
;;
-v | --version | version)
printf "Program theming script.\n\n©Marty Oehme\n\nVersion: %s\n" "$VERSION"
exit 0
;;
-h | --help | help | *)
cmd="usage"
;;
esac
shift
$cmd "$@"
ret=$((ret + $?))
exit $ret
}
usage() {
printf "%s\n" \
"" \
" styler Quickly switch your linux style." \
" Uses base16 themes to quickly set them for a variety of applications." \
"" \
" Usage: styler [-hv][set|theme base16-themename]" \
"" \
" Arguments:" \
"" \
" theme [theme] Temporarily switch theme. Use any valid base16 theme name (without base16- prefix)." \
" Theme will be lost upon restart, or application restarts." \
"" \
" set [theme] Set the theme. Use any valid base16 theme name (without base16- prefix)." \
" Same as 'theme' option, but changes will be made permanent." \
"" \
" list [processors|packages|themes] Print out all currently installed processors, templates, or themes from selection. " \
" list themes Will print out themes which are available for all installed packages." \
" list themes all Will print out every single installed theme, regardless of its universal availability." \
"" \
" download [username/repository] Download a base16 template into the package directory or download a processor16" \
" into the processor directory. Use user/repo format to automatically pull from github." \
"" \
" help | -h | --help Print out this help." \
"" \
" version | -v | --version Print out program information." \
"" \
""
}
# base directory should always exist
base_dir_exists_or_create() {
[[ -d "$BASE_PATH" ]] || mkdir "$BASE_PATH"
[[ -d "$PACKAGE_PATH" ]] || mkdir "$PACKAGE_PATH"
[[ -d "$PROCESSOR_PATH" ]] || mkdir "$BASE_PATH"
}
# retrieves all relevant packages from BASE_PATH/packages
# 'relevant' here means they follow github pattern of author/repository
get_packages() {
for author in "$PACKAGE_PATH"/*; do
# TODO should eventually be used to either distinguish between author/pkg and pkg packages
# or to spit out a warning if they should not be used.
# if grep -q -e '^base16-' <<<"$(basename -- "$author")"; then
# echo ERROR
# fi
for package in "$author"/*; do
[[ -e "$author" ]] || break
[[ -d "$package" ]] || break
printf "%s/%s\n" "$(basename -- "$author")" "$(basename -- "$package")"
done
done
}
# retrieves all processors from BASE_PATH/processors
# 'relevant' here means they follow github pattern of author/repository
get_processors() {
for author in "$PROCESSOR_PATH"/*; do
for package in "$author"/*; do
for processor in "$package"/*; do
[[ -e "$processor" ]] || break
[[ -f "$processor" ]] || break
if grep -q -e '/theme_[[:alnum:]]\{1,\}$' <<<"$processor"; then
printf "%s\n" "$(basename -- "$processor")"
fi
done
done
done
}
# retrieves all installed themes available to all packages
# can be called with `all` argument to return themes which only exist for some packages
get_themes() {
local themes
themes=$(find "$PACKAGE_PATH" -type f -name 'base16-*')
local filtered
if [[ "$1" = "all" ]]; then
filtered="$(get_unique_themes "$themes")"
else
filtered="$(get_universal_themes "$themes")"
fi
echo "$filtered"
}
# filter down the list passed in to keep repeating base16 themes only once per name
# and remove surrounding path information (and file ending)
get_unique_themes() {
if _cache_invalid "$CACHED_UNIQUE_THEMES" "$PACKAGE_PATH"; then
notify-send "styler cache invalid" "rebuilding cache will take a moment..."
_cache_rebuild "$CACHED_UNIQUE_THEMES" _fetch_unique_themes "$@"
else
cat "$CACHED_UNIQUE_THEMES"
fi
}
readonly CACHED_UNIQUE_THEMES=${CACHE_PATH}/unique_themes
# returns themes which are available in all installed packages
# returns cached version or rebuilds cache
get_universal_themes() {
if _cache_invalid "$CACHED_UNIVERSAL_THEMES" "$PACKAGE_PATH"; then
notify-send "styler cache invalid" "rebuilding cache will take a moment..."
_cache_rebuild "$CACHED_UNIVERSAL_THEMES" _fetch_universal_themes "$@"
else
cat "$CACHED_UNIVERSAL_THEMES"
fi
}
readonly CACHED_UNIVERSAL_THEMES=${CACHE_PATH}/universal_themes
_fetch_unique_themes() {
echo "$1" | sed "s/.*\\/base16-//;s/\\..*//" | sort | uniq
}
# only keep themes which are available in every installed package
_fetch_universal_themes() {
local themes="$1"
local unique
unique="$(get_unique_themes "$themes")"
local packages
packages="$(get_packages)"
local filtered
for t in $unique; do
for p in $packages; do
if ! echo "$themes" | grep -qe "^.*$p.*$t.*$" -; then
themes="$(echo "$themes" | sed "/$t/d")"
unique="$(echo "$unique" | sed "/$t/d")"
break
fi
done
done
echo "$unique"
}
# returns true if changes to $2 are newer than $1
# used to pass in cache file for $1, what it is caching for $2
_cache_invalid() {
cache_upd="$(_last_update "$1")"
live_upd="$(_last_update "$2")"
if [ "${live_upd%.*}" -gt "${cache_upd%.*}" ]; then
true
else
false
fi
}
# recreates target cache with output of function
# arguments: "target_cache_file" "function_name" "arguments_for_function"
_cache_rebuild() {
local target="$1"
shift
local fct="$1"
shift
local new
new="$($fct "$@")"
mkdir -p "$CACHE_PATH"
echo "$new" | tee "$target"
}
# returns time of last update to argument passed in
# argument can be path to file or directory (searched recursively)
# if argument does not exist gives 0
_last_update() {
[[ ! -e "$1" ]] && echo 0 && return
find "$1" -type f -printf "%T@\n" | sort -n | tail -n 1
}
# temporarily switch theme, same thing as setting, only with permanence flag turned off for processors
switch_theme() {
set_theme "$1" "false"
}
# call processors for all installed packages
set_theme() {
local theme="$1"
if [[ -z $theme ]]; then
printf "Theme application requires an argument.\n"
exit 1
fi
local permanent="${2:-true}"
local packages
packages="$(get_packages)"
if [[ -z "$packages" ]]; then
printf "ERROR: No base16 packages installed. Please install at least 1 base16 package in %s/.\n" "$PACKAGE_PATH" >&2
exit 1
fi
local processors
processors="$(get_processors)"
if [[ -z "$processors" ]]; then
printf "ERROR: No application processors installed. Please install at least one processor in %s/.\n" "$PROCESSOR_PATH" >&2
exit 1
fi
for pkg in $packages; do
local appext
# filter the application a package targets, since base16 packages
# carry standard names this removes everything before base16-
# the result is the application it targets
# shellcheck disable=SC2001
appext=$(sed -e 's|^[A-Za-z0-9-]\{1,\}/base16-||' <<<"$pkg")
# Compares application extension with existing processors and runs the appropriate processor if found
processor=$(find "$PROCESSOR_PATH" -type f | grep -e "theme_$appext")
if [[ -f "$processor" ]]; then
"$processor" "$PACKAGE_PATH" "$pkg" "$theme" "$permanent"
else
printf "WARN: No processor found for application %s in %s. Make sure you install a processor for the application.\n" "$appext" "$PROCESSOR_PATH/" >&2
fi
done
}
list() {
local selected="$1"
shift
case "$selected" in
packages)
get_packages
;;
processors)
get_processors
;;
themes)
get_themes "$@"
;;
*)
echo "Please select one of packages | processors | themes to list."
;;
esac
}
download() {
local pkg="$1"
local page="https://github.com"
local repo="$page/$pkg"
[[ -z "$pkg" ]] && {
echo "No package to download passed in. Please provide a package to download in the form user/repository."
exit 1
}
type git >/dev/null 2>&1 || {
echo "git is required to clone base16 package. Please install git."
exit 1
}
base_dir_exists_or_create
if ! git ls-remote --exit-code -h "$repo" >/dev/null; then
echo "Repository $repo not found."
exit 1
fi
# if package has patter name/base16-program, put it in packages; if name/process16-program put it in processors
# if none of the above, assume it's a processor but warn the user
if grep -q -e '^[0-9A-Za-z-]\{1,\}/base16-[0-9A-Za-z-]\{1,\}$' <<<"$pkg"; then
git clone "$repo" "$PACKAGE_PATH/$pkg"
elif grep -q -e '^[0-9A-Za-z-]\{1,\}/process16-[0-9A-Za-z-]\{1,\}$' <<<"$pkg"; then
git clone "$repo" "$PROCESSOR_PATH/$pkg"
else
echo "Package does not fit default naming scheme of packages/processors. Assuming it is a processor but please check manually."
git clone "$repo" "$PROCESSOR_PATH/$pkg"
fi
}
main "$@"

View file

@ -72,7 +72,7 @@ set wildstyle=popup
" Display suggestions in normal, visual and view modes for keys, marks and " Display suggestions in normal, visual and view modes for keys, marks and
" registers (at most 5 files). In other view, when available. " registers (at most 5 files). In other view, when available.
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers set suggestoptions=normal,visual,view,otherpane,delay:1000,keys,marks,registers
" Ignore case in search patterns unless it contains at least one uppercase " Ignore case in search patterns unless it contains at least one uppercase
" letter " letter
@ -110,6 +110,9 @@ set timeoutlen=5000
" use fd instead of default find to make searching faster and more flexible " use fd instead of default find to make searching faster and more flexible
set findprg='fd %A --hidden --exclude .git --exclude node_modules' set findprg='fd %A --hidden --exclude .git --exclude node_modules'
" Use ag (the silver searcher) instead of grep
set grepprg='rg --line-number %i %a %s'
" }}} " }}}
" Marks {{{ " Marks {{{
" ------------------------------------------------------------------------------ " ------------------------------------------------------------------------------
@ -124,7 +127,7 @@ mark v ~/videos/
mark a ~/media/audio/ mark a ~/media/audio/
mark n ~/documents/notes/ mark n ~/documents/notes/
mark N ~/Nextcloud/ mark N ~/Nextcloud/
mark l ~/documents/library/academia/pdf/ mark l ~/documents/library/
mark t ~/.local/share/Trash/ mark t ~/.local/share/Trash/
mark M ~/media/ mark M ~/media/
mark M /run/media/ mark M /run/media/
@ -186,7 +189,7 @@ set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
" Customize view columns a bit (enable ellipsis for truncated file names) " Customize view columns a bit (enable ellipsis for truncated file names)
" "
" set viewcolumns=-{name}..,6{}. set viewcolumns=-{name}..,6{}.
" Filter-out build and temporary files " Filter-out build and temporary files
" "
@ -202,8 +205,8 @@ nmap Q :q<cr>
" Sample mappings " Sample mappings
" for now they use space for my leader key - so we can't switch panels with " for now they use space for my leader key - so we can't switch panels with
" space, use tab for that " space, use tab for that
nnoremap <space> <nop> "nnoremap <space> <nop>
nnoremap <space><space> t nnoremap <space><space> <space>
" quick find mirroring my vim filefinder " quick find mirroring my vim filefinder
nnoremap <space>f :FZFfind<cr> nnoremap <space>f :FZFfind<cr>
@ -224,16 +227,16 @@ nnoremap e :!nvim %f<cr>
" Open file in the background using its default program " Open file in the background using its default program
nnoremap gb :file &<cr>l nnoremap gb :file &<cr>l
" create a tab
nnoremap <space>t :tabnew<cr>
" yank current directory path into the clipboard " yank current directory path into the clipboard
" clip is universal clipper from `sh` module " clip is universal clipper from `sh` module
nnoremap yd :!echo -n %d | clip %i<cr> nnoremap yd :!echo -n %d | clip %i<cr>
" yank current file path into the clipboard " yank current file path into the clipboard
nnoremap yf :!echo -n %c:p | clip %i<cr> nnoremap yf :!echo -n %c:p | clip %i<cr>
" yank current filename without path into the clipboard " yank current filename without path into the clipboard
nnoremap yt :!echo -n %c | clip %i<cr> nnoremap yt :!echo -n %c | clip %i<cr>
" yank root of current file's name into the clipboard " yank root of current file's name into the clipboard
nnoremap yr :!echo -n %c:r | clip %i<cr> nnoremap yr :!echo -n %c:r | clip %i<cr>
@ -265,7 +268,6 @@ nnoremap tr :toggle relativenumber<cr>
nnoremap tN :windo toggle number<cr> nnoremap tN :windo toggle number<cr>
nnoremap tR :windo toggle relativenumber<cr> nnoremap tR :windo toggle relativenumber<cr>
nnoremap te :execute ':tree! | echo ":tree"'<cr> nnoremap te :execute ':tree! | echo ":tree"'<cr>
nnoremap t <nop>
nnoremap tt t nnoremap tt t
" zo shows hidden files, mimicking fold open in vim -- why does zc not close " zo shows hidden files, mimicking fold open in vim -- why does zc not close
@ -274,15 +276,15 @@ nnoremap zc zm
" external commands " external commands
" extract currently selected file(s) " extract currently selected file(s)
noremap xx :!atool -x %f<cr> noremap ,xx :!atool -x %f<cr>
" compress currently selected file(s) " compress currently selected file(s)
noremap xc :!atool -a %c:r.tar.gz %f<cr> noremap ,xc :!atool -a %c:r.tar.gz %f<cr>
" archive currently selected file(s) " archive currently selected file(s)
noremap xa :!atool -a %c:r.tar %f<cr> noremap ,xa :!atool -a %c:r.tar %f<cr>
" archive currently selected file(s) " zip currently selected file(s)
noremap xz :!atool -a %c:r.zip %f<cr> noremap ,xz :!atool -a %c:r.zip %f<cr>
" combine selected PDFs into single one (named output.pdf) " combine selected PDFs into single one (named output.pdf)
noremap gc :!pdftk %f cat output output.pdf noremap ,pc :!pdftk %f cat output output.pdf
" fzf movements " fzf movements
nnoremap <space>f :fzf<cr> nnoremap <space>f :fzf<cr>
@ -292,8 +294,8 @@ nnoremap <space>F :grep<space>
" preview thumbnails of current folder " preview thumbnails of current folder
" select thumbnails with m/M in nsxiv " select thumbnails with m/M in nsxiv
" to generate a filtered view on them " to generate a filtered view on them
nnoremap <space>t :!vifm-thumbnailer -t %u %c<cr> nnoremap ,t :!vifm-thumbnailer -t %u %c<cr>
nnoremap <space>T :!vifm-thumbnailer -r -t %u %c<cr> nnoremap ,T :!vifm-thumbnailer -r -t %u %c<cr>
" allows preview to work for normal view and single pane view " allows preview to work for normal view and single pane view
noremap <silent> w : if &quickview && !layoutis('only') noremap <silent> w : if &quickview && !layoutis('only')
@ -394,8 +396,8 @@ filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.as[fx] \*.as[fx]
\ {View using unique mplayer instance} \ {View using unique mplayer instance}
\ umpv %f &, \ umpv %f &,
\ {View in timg} \ {View in viu}
\ timg --title --center --clear %f; read -k 1 -s -r, \ viu --name %f; read -k 1 -s -r,
\ {View using ffplay} \ {View using ffplay}
\ ffplay -fs -autoexit %f, \ ffplay -fs -autoexit %f,
\ {View using Dragon} \ {View using Dragon}
@ -429,8 +431,8 @@ fileviewer *.[1-8] man ./%c | col -b
" Gif " Gif
filextype *.gif filextype *.gif
\ {View in timg} \ {View in viu}
\ timg --loops=2 --title --center --clear %f; read -k 1 -s -r, \ viu --once --name %f; read -k 1 -s -r,
\ {Loop} \ {Loop}
\ mpv --loop=inf %f %i &, \ mpv --loop=inf %f %i &,
fileviewer *.gif fileviewer *.gif
@ -440,8 +442,8 @@ fileviewer *.gif
" Images " Images
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ {View in timg} \ {View in viu}
\ timg --title --center --clear %f; read -k 1 -s -r, \ viu --name %f; read -k 1 -s -r,
\ {View in nsxiv directory viewer} \ {View in nsxiv directory viewer}
\ vifm-thumbnailer %c, \ vifm-thumbnailer %c,
\ {View in imv} \ {View in imv}
@ -457,7 +459,7 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ {View in gpicview} \ {View in gpicview}
\ gpicview %c, \ gpicview %c,
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ timg -g%pwx%ph -pq %c \ viu -b -w %pw -h %ph %c
" OpenRaster " OpenRaster
filextype *.ora filextype *.ora
@ -616,10 +618,6 @@ fileviewer * vifm-default-viewer %c
" Various customization examples " Various customization examples
" Use ag (the silver searcher) instead of grep
"
" set grepprg='ag --line-numbers %i %a %s'
" Add additional place to look for executables " Add additional place to look for executables
" "
" let $PATH = $HOME.'/bin/fuse:'.$PATH " let $PATH = $HOME.'/bin/fuse:'.$PATH

View file

@ -25,7 +25,7 @@ if file_exists(colorsfile) == true then
colors = wezterm.color.load_scheme(colorsfile) colors = wezterm.color.load_scheme(colorsfile)
end end
return { local settings = {
enable_wayland = true, enable_wayland = true,
hide_tab_bar_if_only_one_tab = true, hide_tab_bar_if_only_one_tab = true,
use_fancy_tab_bar = false, use_fancy_tab_bar = false,
@ -40,8 +40,13 @@ return {
leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1500 }, leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1500 },
keys = maps.keys, keys = maps.keys,
key_tables = maps.key_tables, key_tables = maps.key_tables,
inactive_pane_hsb = { mouse_bindings = {
saturation = 0.9, {
brightness = 0.9, event = { Up = { streak = 1, button = 'Left' } },
mods = 'NONE',
action = wezterm.action
.CompleteSelectionOrOpenLinkAtMouseCursor 'ClipboardAndPrimarySelection'
}
} }
} }
return settings

View file

@ -17,7 +17,7 @@ whoosh-schema-fields = ["doi", "ref", "author", "year", "title", "publisher", "t
# to make whoosh list everything by default # to make whoosh list everything by default
default-query-string = * default-query-string = *
notes-name = notes.qmd notes-name = notes.md
notes-template = {doc[author_list][0][family]}{doc[year]}--{doc[title]} notes-template = {doc[author_list][0][family]}{doc[year]}--{doc[title]}
mark-opener = zathura -P {mark[value]} mark-opener = zathura -P {mark[value]}
@ -36,3 +36,6 @@ dir = ~/documents/library/personal
[cs] [cs]
dir = ~/documents/library/cs dir = ~/documents/library/cs
[ee]
dir = ~/documents/library/ee

View file

@ -0,0 +1,44 @@
documentlist:
defaultstyle: multiline
marked-icon: '*'
multilinestyle:
rows:
- <red>{doc.html_escape["ref"]}</red>
- <bold>{doc.html_escape["title"]}<bold>
- <cyan>{doc.html_escape["author"]}</cyan>
tablestyle:
columns:
- content: '{doc.html_escape["ref"]}'
header: Ref
width: 15
- content: '{doc.html_escape["author"]}'
header: Author
width: 30
- content: '{doc.html_escape["year"]}'
header: Year
width: 4
- content: '{doc.html_escape["title"]}'
header: Titel
width: 400
cursorrowstyle: black_white
headerstyle: underline|bold
rowstyle: white_bg
separator: " \u2502 "
keymappings:
' ': mark_selected
/: search_mode
<key_down>: scroll_down
<key_up>: scroll_up
'?': help
G: jump_to_bottom
e: edit
gg: jump_to_top
j: scroll_down
k: scroll_up
o: open
q: quit
statusbar:
left:
default: <black_white> {info["mode_upper"]} <black_white>
right:
default: <black_white> {info["idx"]} < {info["marked"]} < {info["view"]} < {info["items"]} <black_white>

View file

@ -0,0 +1 @@
/home/marty/projects/python/papis/marvin/papis-marvin

View file

@ -0,0 +1,55 @@
ID,Type,Colour,Title,Author,Date,Created,Updated,Starred,Latitude,Longitude,Address,City,State,Country,HasPhoto,PhotoDate,PhotoLatitude,PhotoLongitude,EntryText,HighlightText
"48A3008B-7B60-4371-9FCB-EC79875E5255","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T05:48:33Z","2020-04-21T05:48:33Z","2020-04-21T05:48:33Z","0","51.33312987755212","12.40349975672389","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","In 2016, a zoo in the Gaza Strip had to be abandoned due to war and the Israeli blockade. As the animals died one by one, they mummified in the dry, hot air. Pictures from inside the ghost zoo show eerily preserved lions, tigers, hyenas, monkeys, and crocodiles."
"B0F64CB1-CE3F-4120-A71B-73A4B42342A9","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:04:00Z","2020-04-21T06:04:00Z","2020-04-21T06:04:00Z","0","51.33326651467173","12.40350059326559","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Livor mortis is the pooling of blood in lower areas of the corpse, usually a persons back. (Again, thanks, gravity.) The pools tend to be purple in color. In Latin, the phrase means “the bluish color of death.”"
"E7ED8055-408C-45D9-A337-EDF79FCDA1E4","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:05:33Z","2020-04-21T06:05:33Z","2020-04-21T06:05:33Z","0","51.33313899677364","12.40373946824236","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","If the livor mortis is bright cherry red, that might mean the person died in the cold, or by inhaling carbon monoxide (maybe smoke from a fire). If the livor mortis is deep purple or pink, that might mean the person suffocated, or died of heart failure. Finally, if a person has lost a lot of blood, you might not find any livor mortis at all."
"4C32D32A-26D9-4A6B-B09D-10A6AF05373F","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:07:06Z","2020-04-21T06:07:06Z","2020-04-21T06:07:06Z","0","51.33336017226236","12.40364873927894","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","putrefaction. This is when the famous green color of death comes into its own. Its more of a greenish-brown, actually. With some turquoise"
"CE8B72C5-A72D-4409-B8AE-5AD66C092F8D","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:07:13Z","2020-04-21T06:07:13Z","2020-04-21T06:07:13Z","0","51.33322495992609","12.40351477567372","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","even after you die there are still fun things happening inside your flesh case? Well, bacteria are the most important guests at the party. Gut bacteria go wild, digesting you from the inside."
"9D60E884-E395-44F9-8A8E-1B1EC6F88108","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:10:14Z","2020-04-21T06:10:14Z","2020-04-21T06:10:14Z","0","51.33334809067811","12.40355910032729","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","In a corpse, this marbling is the visible sign of blood vessels decaying and hemoglobin separating from the blood. The hemoglobin stains the skin, producing delicate color schemes in shades of red, dark purple, green, and black. The hemoglobin ring breaks down into bilirubin (turning you yellow) and biliverdin (turning you green)."
"C2C62195-156F-45D3-A6DD-F93558CE2400","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:16:02Z","2020-04-21T06:16:02Z","2020-04-21T06:16:02Z","0","51.33307523642424","12.40368739009483","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Its more height than weight that determines how much ash is in that doves-and-roses urn. Women tend to be shorter—less bone—so their ashes usually weigh around four pounds. Men tend to be taller, and have ashes that weigh around six pounds"
"DE2BC341-686E-426E-BC9D-40720FDF1960","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:27:21Z","2020-04-21T06:27:21Z","2020-04-21T06:27:21Z","0","51.33315269318479","12.40353550840357","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","The muscles in your body need ATP (adenosine triphosphate) in order to relax. But ATP requires oxygen. No more breathing means no more oxygen, which means no more ATP, which means the muscles seize up and cant relax. This chemical change, collectively called rigor mortis, starts around your eyelids and jaw and spreads through every muscle in the body, even the organs"
"15A77BF7-A426-483D-B872-1C6B31C0487D","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:28:29Z","2020-04-21T06:28:29Z","2020-04-21T06:28:29Z","0","51.33320752344045","12.40346894462138","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Unfortunately, rigor mortis eventually goes away. Every dead body is different, and the environment plays a big role in the timing, but after about seventy-two hours your muscles will go all floppy again—along with your duck-face lips."
"CAAB37BE-FBEC-40E9-9EBE-30446DA255C7","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-21T06:28:56Z","2020-04-21T06:28:56Z","2020-04-21T06:28:56Z","0","51.33321627423378","12.40351308014501","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","cadaveric spasm, also known as instantaneous rigor. Instantaneous rigor is exactly what it sounds like. When someone dies, they skip right over the floppy muscle relaxation stage and go straight into rigor mortis"
"DFD27A7C-5989-4856-A1AF-3FB94441D4B2","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T05:42:23Z","2020-04-22T05:42:23Z","2020-04-22T05:42:23Z","0","51.33315890745651","12.40386766229344","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","extreme taphophobia, or the fear of being buried alive"
"70630E8A-074E-4EF4-A90D-C09C904E1A30","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T05:42:35Z","2020-04-22T05:42:35Z","2020-04-22T05:42:35Z","0","51.33347725283606","12.4038111028164","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Matthew Wall, a man living (yes, living) in Braughing, England, in the sixteenth century. Matthew was thought to be dead, but was lucky enough to have his pallbearers slip on wet leaves and drop the coffin on the way to his burial. As the story goes, when the coffin was dropped, Matthew awakened and knocked on the lid to be released. To this day, every October 2nd is celebrated as Old Mans Day to commemorate Matthews revival. He lived, by the way, for twenty-four more years."
"C263EF5F-6EE6-45A7-8636-ADF854F783E2","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T05:44:16Z","2020-04-22T05:44:16Z","2020-04-22T05:44:16Z","0","51.33333234385331","12.40393275864894","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","1937 is not quite Ye Olden Times, but at least its way before you were born—Angelo Hays of France was in a motorcycle accident. When doctors couldnt find his pulse, he was pronounced dead. He was buried quickly and his own parents were not allowed to see his disfigured body. Angelo would have remained buried if it wasnt for the life insurance companys suspicions of foul play.
Two days after Angelo was buried, he was exhumed for an investigation. Upon inspecting the “corpse,” examiners found that it was still warm, and that Angelo was alive.
The theory is that Angelo had been in a very deep coma which slowed his breathing way, way down. It was that slow breathing that allowed him to stay alive while buried.*"
"694640C9-8B5B-4A17-8CA5-F28A36154426","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:04:37Z","2020-04-22T06:04:37Z","2020-04-22T06:04:37Z","0","51.3329970518616","12.40360202980954","Eilenburger Straße 19, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","As the soldiers slowly decompose below ground, their bodies mix with the soil, releasing arsenic. As rain and floodwater move through the soil, concentrated clumps of arsenic are washed into the local water supply. Any amount of arsenic in your water is too much arsenic, frankly—but in trace amounts its safe to drink. Still, a study at a Civil War cemetery in Iowa City found that nearby water contained arsenic at three times the safe limit."
"C74E1470-3A59-48E7-86D6-487A0CDD699D","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:04:55Z","2020-04-22T06:04:55Z","2020-04-22T06:04:55Z","0","51.33303741650271","12.40377726073955","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","most families couldnt afford the expensive iron coffins that the train companies would allow. So enterprising men, called embalmers, started following the armies around, setting up tents, and chemically preserving the soldiers killed in battle so that they wouldnt decompose on the journey back home. The embalmers, who were still experimenting with their craft, used everything from sawdust to arsenic. The problem with arsenic is that its toxic to living humans. Extremely, wildly toxic"
"C6CED978-ACE6-4CA0-A049-BE020E554A8B","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:28:23Z","2020-04-22T06:28:23Z","2020-04-22T06:28:23Z","0","51.33344123900376","12.40378955575635","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Eating a dead human may be horrifying to you, but humans throughout history have practiced mortuary cannibalism. Mortuary cannibalism is when the relatives, neighbors, or community members consume the flesh, or ashes, or both, of a dead person"
"6F8A02E9-B3C1-43BC-A4E3-9F9C3800D065","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:32:59Z","2020-04-22T06:32:59Z","2020-04-22T06:32:59Z","0","51.33306930550049","12.40362377979757","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","cannibalism is not against the law. Its not criminal to eat human flesh, but acquiring the human flesh (even if the dead person wanted you to eat them) is breaking the law. The laws youre breaking are . . . wait for it. . . . remember these? Welcome back, abuse of corpse laws! Its considered desecration and mutilation to eat a dead body"
"D927ECD5-A0B4-4392-9FF9-CE2DFA411767","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:33:47Z","2020-04-22T06:33:47Z","2020-04-22T06:33:47Z","0","51.33313436525666","12.40359640790111","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","In 1945 and 1956, two researchers analyzed the donated bodies of four adult males, and estimated that the average male offers about 125,822 calories from protein and fat. That number is far below what other red meats like beef or boar can offer.
(Yes, you heard me, humans are red meat.)"
"67A56CE3-9EA9-4734-AD27-CB36E2C30B59","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:34:55Z","2020-04-22T06:34:55Z","2020-04-22T06:34:55Z","0","51.33317946718154","12.4036723669615","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Neanderthals or Homo erectus, had cannibalistic tendencies. But if they ate their own kind, it was for ritual purposes, not dietary purposes. Again, humans just dont provide enough calories to compete with something like a mammoth, which would have provided a (totally worth it) 3.6 million calories"
"7CD9FA34-B80B-4A89-8711-CF6F920D89D5","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:36:02Z","2020-04-22T06:36:02Z","2020-04-22T06:36:02Z","0","51.33311117236514","12.40366741139765","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","hákarl or fermented shark, which is a beloved national dish in Iceland. The shark is buried, fermented, and hung to dry for months until its debut as a pungent, rotten treat.)"
"7965FF25-0FC2-440D-BA14-5B5BD0F578C8","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:37:07Z","2020-04-22T06:37:07Z","2020-04-22T06:37:07Z","0","51.33326414731066","12.40334296907688","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Even if the animal you ate had some sort of disease, most diseases are not zoonotic. That is to say, a human cant get an animal disease by eating that animal. (Ebola is one of the rare exceptions.)
But if youre going to eat a human corpse its a different story. It is possible to contract blood-borne viruses such hepatitis B or HIV. Unlike when you eat animals, if you eat diseased human flesh, you could end up suffering from the same illness."
"3C65AE85-D644-4FF8-AA39-876F39770A83","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:38:16Z","2020-04-22T06:38:16Z","2020-04-22T06:38:16Z","0","51.33313684399542","12.40356420725142","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Humans can have abnormal proteins called prions. These proteins have lost their shape and proper function, and infect other, normal proteins. Unlike a virus or an infection, prions dont have DNA or RNA, so they cant be killed by heat or radiation. Theyre tough little suckers that like to hang out in the brain and spinal column, spreading lesions and chaos.
When talking about prions, scientists often point to the Fore people of Papua New Guinea. As late as the 1950s, anthropologists documented an epidemic of a neurological disease called kuru that was killing members of the tribe. Kuru is a disease caused by prions in the brain. The spread of kuru was traced to the tribes ritual of eating of human brains after death. The infected suffer from muscle spasms, dementia, and uncontrollable laughing or crying. The end result is a brain literally full of holes—and then death"
"85C5809D-269E-4A79-A636-7CBCD399A026","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:40:16Z","2020-04-22T06:40:16Z","2020-04-22T06:40:16Z","0","51.33324531314521","12.40348109026645","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","The Yarkon Cemetery in Israel has started adding burial towers that will ultimately hold 250,000 graves. The towers even respect Jewish custom by filling the burial columns with dirt so that the graves are connected to the earth. At the moment, the worlds tallest cemetery is in Brazil. Memorial Necrópole Ecumênica III contains thirty-two stories of graves, and also has a restaurant, concert hall, and gardens filled with exotic birds. When I was in Tokyo, Japan, I visited a multistory building that houses thousands of cremated remains (delivered to personal visiting rooms by automatic conveyors that locate and fetch the correct urn)"
"F514887D-EBBE-476A-A925-349956DBB1F8","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:42:42Z","2020-04-22T06:42:42Z","2020-04-22T06:42:42Z","0","51.33321134404212","12.40346390338805","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","In Singapore, for every square mile there are more than 18,000 people. Every. Square. Mile. 18,000. People. In the United States, for every square mile there are only 92 people."
"485B0E2D-E873-49CA-AB58-F3E6E094D4AF","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:44:44Z","2020-04-22T06:44:44Z","2020-04-22T06:44:44Z","0","51.3332780072871","12.40335988533181","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","not all near-death experiences are created equal. Not everyone finds themselves walking into a sparkling white light while scenes of childhood pets and awkward job interviews pass before their eyes. In one study, about half of the people who had a near-death experience said they were fully aware they were dead (which could be good or bad, depending on how chill with death you are). One in four people said they had an out-of-body experience. Only one in three actually moved through the good ol tunnel. Also, some bad news: we imagine NDEs as being positive and blissful, but that was only true about half the time. Turns out they can be pretty terrifying, too."
"48DF4E17-A72C-4932-A5E8-2404E40589E0","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:49:59Z","2020-04-22T06:49:59Z","2020-04-22T06:49:59Z","0","51.33340826907205","12.40373781249704","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Religious folks may see the light as a supernatural gateway to the afterlife; scientists may see the light as caused by oxygen deprivation in the brain"
"A4BF96D3-4D3E-4A05-9FA7-7C1431247092","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:50:29Z","2020-04-22T06:50:29Z","2020-04-22T06:50:29Z","0","51.33313187386248","12.40360474920343","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Scientists believe that seeing this light at the end of the tunnel is the result of retinal ischemia, which happens when there isnt enough blood reaching the eye. As less blood flows to the eyes, vision is reduced. Being in a state of extreme fear can also cause retinal ischemia. Both fear and decrease in oxygen are associated with dying. In this context, the extreme white tunnel vision characteristic of NDEs starts to make much more sense."
"CCE34C40-F2A7-4B9D-8FB8-C6E680DC32AF","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:51:35Z","2020-04-22T06:51:35Z","2020-04-22T06:51:35Z","0","51.33329482285431","12.40364259648123","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","necrophages, the unsung heroes of the natural world. They are the death eaters, the organisms that fuel up by consuming dead and rotting things"
"0CCE3637-107E-4D26-8464-91FF655F18FF","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:54:31Z","2020-04-22T06:54:31Z","2020-04-22T06:54:31Z","0","51.33293946208754","12.40374112690689","Eilenburger Straße 19, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","why dont they eat bones, too? The simple answer is that eating bones is hard work. Not only that, but bones are not nutritionally useful to insects. Bones are mostly made of calcium, something insects just dont need a lot of. Since they dont need much calcium, insects like dermestids havent evolved to consume it or desire it"
"D670B3E4-D54B-4E4E-B8A1-71C7801AD636","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:55:35Z","2020-04-22T06:55:35Z","2020-04-22T06:55:35Z","0","51.33322607376345","12.40368501492717","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","So, while dermestids and other flesh-eating bugs do not usually eat bone, if they get hungry enough, they will. Humans behave the same way. When Paris was under siege in the late sixteenth century, the city was starving. When people inside the city ran out of cats and dogs and rats to eat, they began disinterring bodies from the mass graves in the cemetery. They took the bones and ground them into flour to make what became known as Madame de Montpensiers bread. Bone appetit! (Actually, maybe dont bone appetit, as many who ate the bone bread died themselves.)"
"88349039-88D4-454E-B8D9-94C65DC27E84","2","2","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:56:52Z","2020-04-22T06:56:52Z","2020-04-22T06:56:52Z","0","51.33330624333909","12.40354514751025","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","There is strong evidence that bone worms have been eating giant marine reptiles since the time of the dinosaurs. That means the whale eaters are older than whales themselves."
"949FED16-150A-4200-8C75-BED6C1BB6E84","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-22T06:59:55Z","2020-04-22T06:59:55Z","2020-04-22T06:59:55Z","0","51.33326913673976","12.40356814886445","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Other cultures gave up on burial entirely. High in the mountains of Tibet, where the ground is often too rocky and frozen for burial, and where not enough trees grow to perform cremations, a different kind of death ritual developed. To this day, bodies are laid out in an open area for a sky burial, a lovely name for the dead body being consumed by vultures. Your cat might eat you after you die, but a vulture cant wait to rip you to pieces and carry you off into the sky."
"F530E5B8-3E18-4089-898F-22C3756BBD34","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-23T06:16:09Z","2020-04-23T06:16:09Z","2020-04-23T06:16:09Z","0","51.33337047680838","12.4034332761469","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","As they break down their brand-new food source—your dead body—the microbes give off gas made of VOCs, or volatile organic compounds. The prime stinkers here tend to be sulfur-containing compounds, which makes sense if youve ever experienced an especially potent and sulfuric eggy fart. Sulfur is the culprit in many a stink."
"85A7852B-FB64-4740-9F5E-E6663499F602","2","0","Will My Cat Eat My Eyeballs?","Caitlin Doughty","2020-04-23T06:33:14Z","2020-04-23T06:33:14Z","2020-04-23T06:33:14Z","0","51.33342240539643","12.40362916382752","Lene-Voigt-Park, 04317 Leipzig, Germany","Leipzig","Saxony","Germany","0","","","","","Sometimes, larger bones, like thigh bones, require two people to pick up the bone at once. And sometimes the family will pass bone fragments to one another, chopsticks to chopsticks. This is the only time passing something between chopsticks is not considered rude. If you were to do this in public, with, say, a pork sparerib at a restaurant, it would be like bringing a funeral ritual to the dinner table. Total faux pas."
"ED307F41-88BE-411B-A557-1157CE856DE8","2","0","Babel","R. F. Kuang","2023-02-07T14:56:10Z","2023-02-07T14:56:10Z","2023-02-07T14:56:10Z","0","45.10420249850454","5.742597241511231","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","The abolitionist movement you know is a load of pomp. Rhetoric only. Pitt first raised the motion because he saw the need to cut off the slave trade to France. And Parliament got on board with the abolitionists because they were so very afraid of Black insurrection in the West Indies.
So you think its purely risk and economics.
Well, not necessarily. You brother likes to argue that the Jamaican slave revolt, failed though it was, is what impelled the British to legislate abolition. Hes right, but only half right. See, the revolt won British sympathy because the leaders were part of the Baptist church, and when it failed, proslavery whites in Jamaica started destroying chapels and threatening missionaries. Those Baptists went back to England and drummed up support on the grounds of religion, not natural rights. My point being, abolition happened because white people found reasons to care whether those be economic or religious. You just have to make them think they came up with the idea themselves. You cant appeal to their inner goodness. I have never met an Englishman I trusted to do the right thing out of sympathy."
"D5EC6BE7-58DB-4E7E-8717-31ECBE11F8FE","2","0","Babel","R. F. Kuang","2023-02-08T07:58:12Z","2023-02-08T07:58:12Z","2023-02-08T07:58:12Z","0","45.10420267773596","5.74259767871893","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","Strikers in this country never won broad public support, for the public merely wanted all the conveniences of modern life without the guilt of knowing how those conveniences were procured."
"70FC0FBF-8BF3-4C03-AD90-864B8CD028FE","2","0","Babel","R. F. Kuang","2023-02-08T08:27:23Z","2023-02-08T08:27:23Z","2023-02-08T08:27:23Z","0","45.10420148905155","5.742597357615256","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","The tactics of revolt spread fast. The British textile workers picked up these techniques of barricade from the 1831 and 1834 Canut revolts by silk workers in Lyon. Those revolts had been brutally repressed but, crucially, they did not hold the backbone of the entire nation hostage"
"10E7ED24-7F91-4DF2-B852-4AE6D5336111","2","0","Babel","R. F. Kuang","2023-02-09T20:45:43Z","2023-02-09T20:45:43Z","2023-02-09T20:45:43Z","0","45.10420123431852","5.742597001332137","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","Its like Ive known you forever.
Me too, Ramy said.
And that makes no sense, said Robin, drunk already, though there was no alcohol in the cordial. Because Ive known you for less than a day, and yet . . .
I think, said Ramy, its because when I speak, you listen.
Because youre fascinating.
Because youre a good translator. Ramy leaned back on his elbows. Thats just what translation is, I think. Thats all speaking is. Listening to the other and trying to see past your own biases to glimpse what theyre trying to say. Showing yourself to the world, and hoping someone else understands"
"DAFA053F-19A9-4AA5-9A7D-22CF569281DA","2","0","Babel","R. F. Kuang","2023-02-09T20:59:12Z","2023-02-09T20:59:12Z","2023-02-09T20:59:12Z","0","45.10418836497428","5.742602536574182","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","Victoire knows better.
Victory is not assured. Victory may be in the portents, but it must be urged there by violence, by suffering, by martyrs, by blood. Victory is wrought by ingenuity, persistence, and sacrifice. Victory is a game of inches, of historical contingencies where everything goes right because they have made it go right."
"0EBECEC5-9E72-4625-922A-C068BD4EE6BC","2","0","Totalitarianism","Hannah Arendt","2023-02-11T10:12:17Z","2023-02-11T10:12:17Z","2023-02-11T10:12:17Z","0","45.10421600393487","5.742588003722739","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","In other words, while it has always been known that official Soviet publications served propaganda purposes and were utterly unreliable, it now appears that reliable source and statistical material probably never existed anywhere"
"A1AFD977-E93D-4760-AC61-7E8ACC568D96","2","0","Totalitarianism","Hannah Arendt","2023-02-11T10:21:12Z","2023-02-11T10:21:12Z","2023-02-11T10:21:12Z","0","45.10420096244634","5.742582390092738","226 Chemin des Pérouses, 38560 Jarrie, France","Jarrie","Auvergne-Rhône-Alpes","France","0","","","","","Absolute monarchy, no doubt, was a very different affair in Spain, in France, in England, in Prussia; still it was everywhere the same form of government. Decisive in our context is that totalitarian government is different from dictatorships and tyrannies; the ability to distinguish between them is by no means an academic issue which could be safely left to the ""theoreticians,"" for total domination is the only form of government with which coexistence is not possible"
1 ID Type Colour Title Author Date Created Updated Starred Latitude Longitude Address City State Country HasPhoto PhotoDate PhotoLatitude PhotoLongitude EntryText HighlightText
2 48A3008B-7B60-4371-9FCB-EC79875E5255 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T05:48:33Z 2020-04-21T05:48:33Z 2020-04-21T05:48:33Z 0 51.33312987755212 12.40349975672389 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 In 2016, a zoo in the Gaza Strip had to be abandoned due to war and the Israeli blockade. As the animals died one by one, they mummified in the dry, hot air. Pictures from inside the ghost zoo show eerily preserved lions, tigers, hyenas, monkeys, and crocodiles.
3 B0F64CB1-CE3F-4120-A71B-73A4B42342A9 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:04:00Z 2020-04-21T06:04:00Z 2020-04-21T06:04:00Z 0 51.33326651467173 12.40350059326559 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Livor mortis is the pooling of blood in lower areas of the corpse, usually a person’s back. (Again, thanks, gravity.) The pools tend to be purple in color. In Latin, the phrase means “the bluish color of death.”
4 E7ED8055-408C-45D9-A337-EDF79FCDA1E4 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:05:33Z 2020-04-21T06:05:33Z 2020-04-21T06:05:33Z 0 51.33313899677364 12.40373946824236 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 If the livor mortis is bright cherry red, that might mean the person died in the cold, or by inhaling carbon monoxide (maybe smoke from a fire). If the livor mortis is deep purple or pink, that might mean the person suffocated, or died of heart failure. Finally, if a person has lost a lot of blood, you might not find any livor mortis at all.
5 4C32D32A-26D9-4A6B-B09D-10A6AF05373F 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:07:06Z 2020-04-21T06:07:06Z 2020-04-21T06:07:06Z 0 51.33336017226236 12.40364873927894 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 putrefaction. This is when the famous green color of death comes into its own. It’s more of a greenish-brown, actually. With some turquoise
6 CE8B72C5-A72D-4409-B8AE-5AD66C092F8D 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:07:13Z 2020-04-21T06:07:13Z 2020-04-21T06:07:13Z 0 51.33322495992609 12.40351477567372 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 even after you die there are still fun things happening inside your flesh case? Well, bacteria are the most important guests at the party. Gut bacteria go wild, digesting you from the inside.
7 9D60E884-E395-44F9-8A8E-1B1EC6F88108 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:10:14Z 2020-04-21T06:10:14Z 2020-04-21T06:10:14Z 0 51.33334809067811 12.40355910032729 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 In a corpse, this marbling is the visible sign of blood vessels decaying and hemoglobin separating from the blood. The hemoglobin stains the skin, producing delicate color schemes in shades of red, dark purple, green, and black. The hemoglobin ring breaks down into bilirubin (turning you yellow) and biliverdin (turning you green).
8 C2C62195-156F-45D3-A6DD-F93558CE2400 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:16:02Z 2020-04-21T06:16:02Z 2020-04-21T06:16:02Z 0 51.33307523642424 12.40368739009483 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 It’s more height than weight that determines how much ash is in that doves-and-roses urn. Women tend to be shorter—less bone—so their ashes usually weigh around four pounds. Men tend to be taller, and have ashes that weigh around six pounds
9 DE2BC341-686E-426E-BC9D-40720FDF1960 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:27:21Z 2020-04-21T06:27:21Z 2020-04-21T06:27:21Z 0 51.33315269318479 12.40353550840357 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 The muscles in your body need ATP (adenosine triphosphate) in order to relax. But ATP requires oxygen. No more breathing means no more oxygen, which means no more ATP, which means the muscles seize up and can’t relax. This chemical change, collectively called rigor mortis, starts around your eyelids and jaw and spreads through every muscle in the body, even the organs
10 15A77BF7-A426-483D-B872-1C6B31C0487D 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:28:29Z 2020-04-21T06:28:29Z 2020-04-21T06:28:29Z 0 51.33320752344045 12.40346894462138 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Unfortunately, rigor mortis eventually goes away. Every dead body is different, and the environment plays a big role in the timing, but after about seventy-two hours your muscles will go all floppy again—along with your duck-face lips.
11 CAAB37BE-FBEC-40E9-9EBE-30446DA255C7 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-21T06:28:56Z 2020-04-21T06:28:56Z 2020-04-21T06:28:56Z 0 51.33321627423378 12.40351308014501 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 cadaveric spasm, also known as instantaneous rigor. Instantaneous rigor is exactly what it sounds like. When someone dies, they skip right over the floppy muscle relaxation stage and go straight into rigor mortis
12 DFD27A7C-5989-4856-A1AF-3FB94441D4B2 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T05:42:23Z 2020-04-22T05:42:23Z 2020-04-22T05:42:23Z 0 51.33315890745651 12.40386766229344 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 extreme taphophobia, or the fear of being buried alive
13 70630E8A-074E-4EF4-A90D-C09C904E1A30 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T05:42:35Z 2020-04-22T05:42:35Z 2020-04-22T05:42:35Z 0 51.33347725283606 12.4038111028164 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Matthew Wall, a man living (yes, living) in Braughing, England, in the sixteenth century. Matthew was thought to be dead, but was lucky enough to have his pallbearers slip on wet leaves and drop the coffin on the way to his burial. As the story goes, when the coffin was dropped, Matthew awakened and knocked on the lid to be released. To this day, every October 2nd is celebrated as Old Man’s Day to commemorate Matthew’s revival. He lived, by the way, for twenty-four more years.
14 C263EF5F-6EE6-45A7-8636-ADF854F783E2 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T05:44:16Z 2020-04-22T05:44:16Z 2020-04-22T05:44:16Z 0 51.33333234385331 12.40393275864894 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 1937 is not quite Ye Olden Times, but at least it’s way before you were born—Angelo Hays of France was in a motorcycle accident. When doctors couldn’t find his pulse, he was pronounced dead. He was buried quickly and his own parents were not allowed to see his disfigured body. Angelo would have remained buried if it wasn’t for the life insurance company’s suspicions of foul play. Two days after Angelo was buried, he was exhumed for an investigation. Upon inspecting the “corpse,” examiners found that it was still warm, and that Angelo was alive. The theory is that Angelo had been in a very deep coma which slowed his breathing way, way down. It was that slow breathing that allowed him to stay alive while buried.*
15 694640C9-8B5B-4A17-8CA5-F28A36154426 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:04:37Z 2020-04-22T06:04:37Z 2020-04-22T06:04:37Z 0 51.3329970518616 12.40360202980954 Eilenburger Straße 19, 04317 Leipzig, Germany Leipzig Saxony Germany 0 As the soldiers slowly decompose below ground, their bodies mix with the soil, releasing arsenic. As rain and floodwater move through the soil, concentrated clumps of arsenic are washed into the local water supply. Any amount of arsenic in your water is too much arsenic, frankly—but in trace amounts it’s safe to drink. Still, a study at a Civil War cemetery in Iowa City found that nearby water contained arsenic at three times the safe limit.
16 C74E1470-3A59-48E7-86D6-487A0CDD699D 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:04:55Z 2020-04-22T06:04:55Z 2020-04-22T06:04:55Z 0 51.33303741650271 12.40377726073955 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 most families couldn’t afford the expensive iron coffins that the train companies would allow. So enterprising men, called embalmers, started following the armies around, setting up tents, and chemically preserving the soldiers killed in battle so that they wouldn’t decompose on the journey back home. The embalmers, who were still experimenting with their craft, used everything from sawdust to arsenic. The problem with arsenic is that it’s toxic to living humans. Extremely, wildly toxic
17 C6CED978-ACE6-4CA0-A049-BE020E554A8B 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:28:23Z 2020-04-22T06:28:23Z 2020-04-22T06:28:23Z 0 51.33344123900376 12.40378955575635 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Eating a dead human may be horrifying to you, but humans throughout history have practiced mortuary cannibalism. Mortuary cannibalism is when the relatives, neighbors, or community members consume the flesh, or ashes, or both, of a dead person
18 6F8A02E9-B3C1-43BC-A4E3-9F9C3800D065 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:32:59Z 2020-04-22T06:32:59Z 2020-04-22T06:32:59Z 0 51.33306930550049 12.40362377979757 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 cannibalism is not against the law. It’s not criminal to eat human flesh, but acquiring the human flesh (even if the dead person wanted you to eat them) is breaking the law. The laws you’re breaking are . . . wait for it. . . . remember these? Welcome back, abuse of corpse laws! It’s considered desecration and mutilation to eat a dead body
19 D927ECD5-A0B4-4392-9FF9-CE2DFA411767 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:33:47Z 2020-04-22T06:33:47Z 2020-04-22T06:33:47Z 0 51.33313436525666 12.40359640790111 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 In 1945 and 1956, two researchers analyzed the donated bodies of four adult males, and estimated that the average male offers about 125,822 calories from protein and fat. That number is far below what other red meats like beef or boar can offer. (Yes, you heard me, humans are red meat.)
20 67A56CE3-9EA9-4734-AD27-CB36E2C30B59 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:34:55Z 2020-04-22T06:34:55Z 2020-04-22T06:34:55Z 0 51.33317946718154 12.4036723669615 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Neanderthals or Homo erectus, had cannibalistic tendencies. But if they ate their own kind, it was for ritual purposes, not dietary purposes. Again, humans just don’t provide enough calories to compete with something like a mammoth, which would have provided a (totally worth it) 3.6 million calories
21 7CD9FA34-B80B-4A89-8711-CF6F920D89D5 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:36:02Z 2020-04-22T06:36:02Z 2020-04-22T06:36:02Z 0 51.33311117236514 12.40366741139765 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 hákarl or fermented shark, which is a beloved national dish in Iceland. The shark is buried, fermented, and hung to dry for months until its debut as a pungent, rotten treat.)
22 7965FF25-0FC2-440D-BA14-5B5BD0F578C8 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:37:07Z 2020-04-22T06:37:07Z 2020-04-22T06:37:07Z 0 51.33326414731066 12.40334296907688 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Even if the animal you ate had some sort of disease, most diseases are not zoonotic. That is to say, a human can’t get an animal disease by eating that animal. (Ebola is one of the rare exceptions.) But if you’re going to eat a human corpse it’s a different story. It is possible to contract blood-borne viruses such hepatitis B or HIV. Unlike when you eat animals, if you eat diseased human flesh, you could end up suffering from the same illness.
23 3C65AE85-D644-4FF8-AA39-876F39770A83 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:38:16Z 2020-04-22T06:38:16Z 2020-04-22T06:38:16Z 0 51.33313684399542 12.40356420725142 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Humans can have abnormal proteins called prions. These proteins have lost their shape and proper function, and infect other, normal proteins. Unlike a virus or an infection, prions don’t have DNA or RNA, so they can’t be killed by heat or radiation. They’re tough little suckers that like to hang out in the brain and spinal column, spreading lesions and chaos. When talking about prions, scientists often point to the Fore people of Papua New Guinea. As late as the 1950s, anthropologists documented an epidemic of a neurological disease called kuru that was killing members of the tribe. Kuru is a disease caused by prions in the brain. The spread of kuru was traced to the tribe’s ritual of eating of human brains after death. The infected suffer from muscle spasms, dementia, and uncontrollable laughing or crying. The end result is a brain literally full of holes—and then death
24 85C5809D-269E-4A79-A636-7CBCD399A026 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:40:16Z 2020-04-22T06:40:16Z 2020-04-22T06:40:16Z 0 51.33324531314521 12.40348109026645 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 The Yarkon Cemetery in Israel has started adding burial towers that will ultimately hold 250,000 graves. The towers even respect Jewish custom by filling the burial columns with dirt so that the graves are connected to the earth. At the moment, the world’s tallest cemetery is in Brazil. Memorial Necrópole Ecumênica III contains thirty-two stories of graves, and also has a restaurant, concert hall, and gardens filled with exotic birds. When I was in Tokyo, Japan, I visited a multistory building that houses thousands of cremated remains (delivered to personal visiting rooms by automatic conveyors that locate and fetch the correct urn)
25 F514887D-EBBE-476A-A925-349956DBB1F8 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:42:42Z 2020-04-22T06:42:42Z 2020-04-22T06:42:42Z 0 51.33321134404212 12.40346390338805 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 In Singapore, for every square mile there are more than 18,000 people. Every. Square. Mile. 18,000. People. In the United States, for every square mile there are only 92 people.
26 485B0E2D-E873-49CA-AB58-F3E6E094D4AF 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:44:44Z 2020-04-22T06:44:44Z 2020-04-22T06:44:44Z 0 51.3332780072871 12.40335988533181 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 not all near-death experiences are created equal. Not everyone finds themselves walking into a sparkling white light while scenes of childhood pets and awkward job interviews pass before their eyes. In one study, about half of the people who had a near-death experience said they were fully aware they were dead (which could be good or bad, depending on how chill with death you are). One in four people said they had an out-of-body experience. Only one in three actually moved through the good ol’ tunnel. Also, some bad news: we imagine NDEs as being positive and blissful, but that was only true about half the time. Turns out they can be pretty terrifying, too.
27 48DF4E17-A72C-4932-A5E8-2404E40589E0 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:49:59Z 2020-04-22T06:49:59Z 2020-04-22T06:49:59Z 0 51.33340826907205 12.40373781249704 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Religious folks may see the light as a supernatural gateway to the afterlife; scientists may see the light as caused by oxygen deprivation in the brain
28 A4BF96D3-4D3E-4A05-9FA7-7C1431247092 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:50:29Z 2020-04-22T06:50:29Z 2020-04-22T06:50:29Z 0 51.33313187386248 12.40360474920343 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Scientists believe that seeing this light at the end of the tunnel is the result of retinal ischemia, which happens when there isn’t enough blood reaching the eye. As less blood flows to the eyes, vision is reduced. Being in a state of extreme fear can also cause retinal ischemia. Both fear and decrease in oxygen are associated with dying. In this context, the extreme white tunnel vision characteristic of NDEs starts to make much more sense.
29 CCE34C40-F2A7-4B9D-8FB8-C6E680DC32AF 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:51:35Z 2020-04-22T06:51:35Z 2020-04-22T06:51:35Z 0 51.33329482285431 12.40364259648123 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 necrophages, the unsung heroes of the natural world. They are the death eaters, the organisms that fuel up by consuming dead and rotting things
30 0CCE3637-107E-4D26-8464-91FF655F18FF 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:54:31Z 2020-04-22T06:54:31Z 2020-04-22T06:54:31Z 0 51.33293946208754 12.40374112690689 Eilenburger Straße 19, 04317 Leipzig, Germany Leipzig Saxony Germany 0 why don’t they eat bones, too? The simple answer is that eating bones is hard work. Not only that, but bones are not nutritionally useful to insects. Bones are mostly made of calcium, something insects just don’t need a lot of. Since they don’t need much calcium, insects like dermestids haven’t evolved to consume it or desire it
31 D670B3E4-D54B-4E4E-B8A1-71C7801AD636 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:55:35Z 2020-04-22T06:55:35Z 2020-04-22T06:55:35Z 0 51.33322607376345 12.40368501492717 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 So, while dermestids and other flesh-eating bugs do not usually eat bone, if they get hungry enough, they will. Humans behave the same way. When Paris was under siege in the late sixteenth century, the city was starving. When people inside the city ran out of cats and dogs and rats to eat, they began disinterring bodies from the mass graves in the cemetery. They took the bones and ground them into flour to make what became known as Madame de Montpensier’s bread. Bone appetit! (Actually, maybe don’t bone appetit, as many who ate the bone bread died themselves.)
32 88349039-88D4-454E-B8D9-94C65DC27E84 2 2 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:56:52Z 2020-04-22T06:56:52Z 2020-04-22T06:56:52Z 0 51.33330624333909 12.40354514751025 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 There is strong evidence that bone worms have been eating giant marine reptiles since the time of the dinosaurs. That means the whale eaters are older than whales themselves.
33 949FED16-150A-4200-8C75-BED6C1BB6E84 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-22T06:59:55Z 2020-04-22T06:59:55Z 2020-04-22T06:59:55Z 0 51.33326913673976 12.40356814886445 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Other cultures gave up on burial entirely. High in the mountains of Tibet, where the ground is often too rocky and frozen for burial, and where not enough trees grow to perform cremations, a different kind of death ritual developed. To this day, bodies are laid out in an open area for a sky burial, a lovely name for the dead body being consumed by vultures. Your cat might eat you after you die, but a vulture can’t wait to rip you to pieces and carry you off into the sky.
34 F530E5B8-3E18-4089-898F-22C3756BBD34 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-23T06:16:09Z 2020-04-23T06:16:09Z 2020-04-23T06:16:09Z 0 51.33337047680838 12.4034332761469 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 As they break down their brand-new food source—your dead body—the microbes give off gas made of VOCs, or volatile organic compounds. The prime stinkers here tend to be sulfur-containing compounds, which makes sense if you’ve ever experienced an especially potent and sulfuric eggy fart. Sulfur is the culprit in many a stink.
35 85A7852B-FB64-4740-9F5E-E6663499F602 2 0 Will My Cat Eat My Eyeballs? Caitlin Doughty 2020-04-23T06:33:14Z 2020-04-23T06:33:14Z 2020-04-23T06:33:14Z 0 51.33342240539643 12.40362916382752 Lene-Voigt-Park, 04317 Leipzig, Germany Leipzig Saxony Germany 0 Sometimes, larger bones, like thigh bones, require two people to pick up the bone at once. And sometimes the family will pass bone fragments to one another, chopsticks to chopsticks. This is the only time passing something between chopsticks is not considered rude. If you were to do this in public, with, say, a pork sparerib at a restaurant, it would be like bringing a funeral ritual to the dinner table. Total faux pas.
36 ED307F41-88BE-411B-A557-1157CE856DE8 2 0 Babel R. F. Kuang 2023-02-07T14:56:10Z 2023-02-07T14:56:10Z 2023-02-07T14:56:10Z 0 45.10420249850454 5.742597241511231 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 The abolitionist movement you know is a load of pomp. Rhetoric only. Pitt first raised the motion because he saw the need to cut off the slave trade to France. And Parliament got on board with the abolitionists because they were so very afraid of Black insurrection in the West Indies.’ ‘So you think it’s purely risk and economics.’ ‘Well, not necessarily. You brother likes to argue that the Jamaican slave revolt, failed though it was, is what impelled the British to legislate abolition. He’s right, but only half right. See, the revolt won British sympathy because the leaders were part of the Baptist church, and when it failed, proslavery whites in Jamaica started destroying chapels and threatening missionaries. Those Baptists went back to England and drummed up support on the grounds of religion, not natural rights. My point being, abolition happened because white people found reasons to care – whether those be economic or religious. You just have to make them think they came up with the idea themselves. You can’t appeal to their inner goodness. I have never met an Englishman I trusted to do the right thing out of sympathy.’
37 D5EC6BE7-58DB-4E7E-8717-31ECBE11F8FE 2 0 Babel R. F. Kuang 2023-02-08T07:58:12Z 2023-02-08T07:58:12Z 2023-02-08T07:58:12Z 0 45.10420267773596 5.74259767871893 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 Strikers in this country never won broad public support, for the public merely wanted all the conveniences of modern life without the guilt of knowing how those conveniences were procured.
38 70FC0FBF-8BF3-4C03-AD90-864B8CD028FE 2 0 Babel R. F. Kuang 2023-02-08T08:27:23Z 2023-02-08T08:27:23Z 2023-02-08T08:27:23Z 0 45.10420148905155 5.742597357615256 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 The tactics of revolt spread fast. The British textile workers picked up these techniques of barricade from the 1831 and 1834 Canut revolts by silk workers in Lyon. Those revolts had been brutally repressed – but, crucially, they did not hold the backbone of the entire nation hostage
39 10E7ED24-7F91-4DF2-B852-4AE6D5336111 2 0 Babel R. F. Kuang 2023-02-09T20:45:43Z 2023-02-09T20:45:43Z 2023-02-09T20:45:43Z 0 45.10420123431852 5.742597001332137 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 ‘It’s like I’ve known you forever.’ ‘Me too,’ Ramy said. ‘And that makes no sense,’ said Robin, drunk already, though there was no alcohol in the cordial. ‘Because I’ve known you for less than a day, and yet . . .’ ‘I think,’ said Ramy, ‘it’s because when I speak, you listen.’ ‘Because you’re fascinating.’ ‘Because you’re a good translator.’ Ramy leaned back on his elbows. ‘That’s just what translation is, I think. That’s all speaking is. Listening to the other and trying to see past your own biases to glimpse what they’re trying to say. Showing yourself to the world, and hoping someone else understands
40 DAFA053F-19A9-4AA5-9A7D-22CF569281DA 2 0 Babel R. F. Kuang 2023-02-09T20:59:12Z 2023-02-09T20:59:12Z 2023-02-09T20:59:12Z 0 45.10418836497428 5.742602536574182 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 Victoire knows better. Victory is not assured. Victory may be in the portents, but it must be urged there by violence, by suffering, by martyrs, by blood. Victory is wrought by ingenuity, persistence, and sacrifice. Victory is a game of inches, of historical contingencies where everything goes right because they have made it go right.
41 0EBECEC5-9E72-4625-922A-C068BD4EE6BC 2 0 Totalitarianism Hannah Arendt 2023-02-11T10:12:17Z 2023-02-11T10:12:17Z 2023-02-11T10:12:17Z 0 45.10421600393487 5.742588003722739 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 In other words, while it has always been known that official Soviet publications served propaganda purposes and were utterly unreliable, it now appears that reliable source and statistical material probably never existed anywhere
42 A1AFD977-E93D-4760-AC61-7E8ACC568D96 2 0 Totalitarianism Hannah Arendt 2023-02-11T10:21:12Z 2023-02-11T10:21:12Z 2023-02-11T10:21:12Z 0 45.10420096244634 5.742582390092738 226 Chemin des Pérouses, 38560 Jarrie, France Jarrie Auvergne-Rhône-Alpes France 0 Absolute monarchy, no doubt, was a very different affair in Spain, in France, in England, in Prussia; still it was everywhere the same form of government. Decisive in our context is that totalitarian government is different from dictatorships and tyrannies; the ability to distinguish between them is by no means an academic issue which could be safely left to the "theoreticians," for total domination is the only form of government with which coexistence is not possible