clutter.txt
somewhere.
git clone https://github.com/sharimot/clutter
cd clutter
python3 -m pip install -r requirements.txt
python3 clutter.py /path/to/clutter.txt
12224 == int(hashlib.sha256('clutter'.encode('utf-8')).hexdigest()[:4], 16)It is possible to specify a different port number (e.g., 9999):
python3 clutter.py /path/to/clutter.txt 9999
+
sign.yyyymmddHHMMSS
.-
button preceding the item to edit.=
sign.hello
and hElLo
are identical).
hello
and world
), type both strings separated by a space (e.g., hello world
).hello world
), replace the space with [space]
.
hello[space]world
, items that contain hello world
(with a space between hello
and world
) are shown.N
operator.
hello Nworld
, items that contain hello
but do not contain world
are shown.yyyy
) in the query.A
or D
prefixes before the keywords.
A
stands for ascending order.D
stands for descending order.A
or D
.http
is:
20200103000000 https://example.com/c.html 20210102000000 https://example.com/a.html 20220101000000 https://example.com/b.html
Ahttp
is:
20210102000000 https://example.com/a.html 20220101000000 https://example.com/b.html 20200103000000 https://example.com/c.html
Nquick brown Dfox Njumps
:
quick
,brown
,fox
,jumps
,fox
in descending order.old
with new
:
S|old|new|
.%
button in the top left.old
and new
in a substitute query are case-sensitive.|
) may be any letter.
:|
with :)
, set the query to S/:|/:)/
.old
with new
only in items that contain yes
but do not contain no
, set the query to S|old|new| yes Nno
.old
or new
contains a space character, use [space]
.
hello world
with good morning world
, set the query to S|hello[space]world|good[space]morning[space]world|
."new" already exists!
indicates that the new
string is already present in Clutter.
snapshots
folder as yyyymmddHHMMSS.clutter.txt
.
snapshots
folder is located in the same directory as clutter.txt
.clutter.txt.log
in the same folder as clutter.txt
.A
, D
, N
, and S
are not supported in the log search.python3 clutter.py /path/to/clutter.txt
.~/.bashrc
file:
alias clutter-run="python3 /path/to/clutter/clutter.py /path/to/clutter.txt"
clutter-run
to start Clutter.http://localhost:12224/?q=%s
http://localhost:12224/?add=%s
http://localhost:12224/log?q=%s
chrome-extension://nacjakoppgmdcpemlfnfegmlhipddanj/...
).A
, D
, and N
./path/to/clutter/utils/redirector.html?q=%sx
as a site search shortcut.#tagname
) and cashtags ($tagname
) are colorized.#tag #newtagname
to list tags.python3 /path/to/clutter/utils/spot.py /path/to/clutter.txt
#tag #parent #child
#tag #grandparent #parent #child
#tag #tagname $root
(for root tags)yyyymmddHHMMSS
).profiles.complex_modifications.rules
of ~/.config/karabiner/karabiner.json
.
{ "description": "datetime", "manipulators": [ { "from": { "key_code": "<favorite-letter>", "modifiers": { "mandatory": [ "command" ] } }, "to": [ { "shell_command": "date +'%Y%m%d%H%M%S' | tr -d '\n' | pbcopy" } ], "type": "basic" } ] }
<favorite-letter>
to copy the current date and time to the clipboard and then paste it as a timestamp.$done:yyyymmddHHMMSS
.D$done
in the query.$trash
tag.$star:<n>
or whatever to signify the importance of an item.D$star
in the query.http://localhost:12224/?q=D%24star+%s
yyyymmddHHMMSS.
to the filename./
can be copied with Vimium C's LinkHints.activateCopyLinkUrl
.clutter.txt
and clutter.txt.log
.// ==UserScript== // @name clutter // @version 1.0.0 // @description Easily search URLs. // @author sharimot // @match *://*/* // @icon https://raw.githubusercontent.com/sharimot/clutter/main/static/favicon.svg // @grant none // ==/UserScript== (function() { window.addEventListener('keydown', event => { if (event.target.matches('input')) { return; } if (event.target.matches('textarea')) { return; } if (event.target.closest('[contenteditable]')) { return; } const q = encodeURIComponent(location.href.split('#')[0]); const url = `http://localhost:12224/?q=${q}`; if (event.key === '<favorite-letter-1>') { window.location.href = url; } if (event.key === '<favorite-letter-2>') { window.open(url, '_blank').focus(); } }); })();
<favorite-letter-1>
to open Clutter in the same tab.<favorite-letter-2>
to open Clutter in a new tab.+
button to copy the query to the input field.yyyymmddHH0000 #planand append it to the bottom of
clutter.txt
.
yyyymmddHH0000 #plan #tagname
|
:
yyyymmddHH0000 #plan #tagname | description
.bashrc
.
record() { local timestamp=$(date +"%Y%m%d%H%M%S") ffmpeg -f avfoundation -i "1:0" -r 15 -s 1280x800 "/path/to/videos/${timestamp}.mp4" }
#tag D$star
for choosing the plan.#plan yyyymm N|
for viewing and editing plans.#plan |
for viewing the past.