Chris Down
eb7d2b9481
Take clipboard ownership prior to clipnotify
...
This avoids infinite loop if we make the work block async
2018-02-19 15:01:21 +00:00
Chris Down
55407ba3f6
Remove last_data checks
...
Nowadays everything should be using clipnotify, which avoids constantly
copying the same data.
2018-02-19 14:51:00 +00:00
Chris Down
b5e8543b3e
Use xsel -k
, instead of -o
-> -i
2018-02-19 14:43:44 +00:00
Chris Down
3704ce3427
Fall back to polling if clipnotify fails
2018-02-08 01:05:15 +00:00
Chris Down
b33d74cae5
Add messages when clipnotify is not detected
2018-02-08 00:55:29 +00:00
Chris Down
2b04a1eafe
Add optional support for clipnotify to avoid polling
2018-02-05 23:49:41 +00:00
Chris Down
f576a116fd
Don't attempt to write to sockets represented as files
...
Fixes #54 .
2017-10-29 10:40:38 +00:00
Chris Down
35a3cb2e8a
Use /proc/self/fd/2 instead of /dev/stderr where possible
...
/dev/stderr is not standardised, whereas /proc/self/fd is provided by
the kernel. Add a fallback for non-Linux.
2017-10-29 02:08:25 +00:00
Chris Down
f34bd68797
Bump major_version to 4
2017-10-25 01:57:35 +01:00
Chris Down
48b1ebf9fb
If CM_MAX_CLIPS is 0, don't truncate
2017-10-24 22:53:54 +02:00
Chris Down
6855d24e3a
Prefer $XDG_RUNTIME_DIR for storage
...
Closes #51 .
2017-10-24 19:14:23 +02:00
Chris Down
4a0bd8f1f4
Only keep $CM_MAX_CLIPS newest clips
...
Closes #50 .
2017-10-24 17:34:23 +02:00
Chris Down
e6c312b639
Avoid double writing if both selections are the same
2017-10-24 17:34:00 +02:00
Chris Down
8bb4ff3999
Gate new clipboard entry output on CM_DEBUG
...
Closes #49 .
2017-10-24 17:03:02 +02:00
Chris Down
2cd2287612
Add more documentation on -h/--help for clipmenu{,d}
2017-05-31 20:03:06 +01:00
Chris Down
60611584ec
Remove unused last_filename
2017-05-30 09:06:04 +01:00
Chris Down
f0d09c7692
Use $TMPDIR as base for cache directory
...
Closes #38 .
2017-05-30 09:03:35 +01:00
Chris Down
caa009b222
Remove partial clip dedupe support
...
The application that was particularly bad at this (Chrome) now no longer
does this, and this is basically a hack that has lasted too long.
Also closes #41 and closes #42 since the questionable "feature" is going
away.
2017-05-30 08:58:19 +01:00
Chris Down
e7a15a5d50
Do not sleep initially in oneshot mode
2017-05-10 10:05:16 +01:00
Chris Down
e65b51b33c
Use CM_* env vars
2017-03-19 07:53:26 +00:00
Chris Down
eecc031718
Use stderr for xsel logging when detached
2017-03-19 07:38:34 +00:00
Chris Down
19569a81bc
Log new clipboard entries without $DEBUG
2017-03-19 07:34:29 +00:00
Chris Down
28d8db8860
clipmenud: Time out all calls to xsel after 1 second
...
I'm not entirely sure how this happens, but sometimes xsel gets rather
stuck:
% systemctl --user status clipmenud
● clipmenud.service - Clipmenu daemon
Loaded: loaded (/usr/lib/systemd/user/clipmenud.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2017-03-15 11:14:14 GMT; 1 day 13h ago
Main PID: 31630 (clipmenud)
CGroup: /user.slice/user-1000.slice/user@1000.service/clipmenud.service
├─ 9052 /bin/bash /usr/bin/clipmenud
├─ 9053 xsel --logfile /dev/null -o --primary
└─31630 /bin/bash /usr/bin/clipmenud
Mar 15 11:14:14 gongzuo systemd[474]: Started Clipmenu daemon.
% strace -p 9053
strace: Process 9053 attached
restart_syscall(<... resuming interrupted restart_syscall ...>^Cstrace: Process 9053 detached
<detached ...>
% ps aux | grep 9053
cdown 9053 0.0 0.0 15956 896 ? S Mar15 0:00 xsel --logfile /dev/null -o --primary
2017-03-17 01:18:43 +00:00
Chris Down
d8dbb1d5af
Use wrapper for xsel to avoid having to pass --logfile again and again
2017-03-17 01:18:43 +00:00
drake-on-mandrake
6facea933b
Add --logfile /dev/null
to the xsel command
2017-03-09 14:48:16 +00:00
Chris Down
db05c51942
Add oneshot mode support
...
Fixes #27 .
2017-02-17 20:45:06 -05:00
Chris Down
b839f80779
Add locking support
...
This is a prerequisite for adding oneshot mode, see #27 .
2017-02-17 20:42:29 -05:00
Chris Down
9a5174123e
Remove old version file, we now use versioned dirs
2017-02-17 12:06:10 -05:00
Chris Down
2acece7dce
Put $major_version in cache_dir to avoid upgrade incompatibility
2017-02-17 12:01:42 -05:00
Chris Down
683f57484f
Remove xclip support
...
Pretty much everyone runs with xsel, so xclip support is becoming more
and more questionable. Just have people use xsel.
2017-02-17 11:50:52 -05:00
Chris Down
f7b0ea1c18
Add version to $cache_dir
2017-01-11 11:35:09 +00:00
Chris Down
8c1054ca73
Put vars above functions
2017-01-11 11:33:14 +00:00
Chris Down
7c713d5673
Merge branch 'perf' into develop
2017-01-06 17:34:13 +00:00
Chris Down
1daaeda6f3
Remove print_debug_info, this was never very useful
2017-01-06 16:47:29 +00:00
Chris Down
8885306970
perf: Don't use date, use CRC instead
...
We don't need to sort by date now that we record in $cache_file, which
does it naturally for us.
2017-01-06 14:53:59 +00:00
Chris Down
e8ba60e432
Have clipmenud cache first lines
2017-01-06 12:05:36 +00:00
kesha-on-disc
892fe73110
Add --logfile /dev/null
to xsel commands
2016-11-30 09:11:10 +01:00
Chris Down
2ab5b5b502
Only take ownership of clipboard if we would not skip this clip
...
Fixes #34 , an issue with pcmanfm GUI file copy/paste.
2016-11-09 11:38:41 +00:00
Chris Down
9efd96b405
blank check: Use [:space:], not [:blank:]
...
This is semantically more correct. Previously, in the most common case,
pastes with only `\n` would result in `bad array subscript`.
Fixes #31 .
2016-11-07 08:46:40 +00:00
Chris Down
c5f101d996
Use -o when running xsel
...
xsel` without `-o` even though it has the same *end* result, has
different internal logic. Specifically, it seems to do things with the
PRIMARY selection that cause weird behaviour (like causing applications
like urxvt to deselect their selection, see #33 ).
2016-11-05 12:06:15 -06:00
Chris Down
6e6c4ed430
Fix blank check
...
lol where da unit tests at
2016-11-02 16:55:39 -06:00
Chris Down
e8ebe8b27d
Add tons of debug logging
...
I'm hoping this will help debug #33 , #32 , and #26 .
2016-11-02 08:49:45 -06:00
GSI2016
05431fe645
replaced md5 logic by using current time with nanoseconds (refs #20 )
...
This strongly improves performance for clipmenud.
2016-06-22 16:59:51 +01:00
Chris Down
1fcc55a48d
Silence shellcheck warning about mkdir -pm
2016-06-22 16:50:10 +01:00
Chris Down
45ac24d625
Remove partial clips
2015-10-07 19:06:47 +01:00
Chris Down
4dfbfed9e2
Tidy up clipboard ownership code to be 80 characters wide
2015-09-14 13:41:31 +01:00
Streetwalrus Einstein
a613aa6b2e
Don't take ownership of PRIMARY, comment about this behavior
2015-09-14 15:01:22 +03:00
Streetwalrus Einstein
065e91a5fc
Take over the clipboard to persist it after the owner quits
2015-09-11 23:29:14 +03:00
Chris Down
72e15005e9
Reduce default poll time down to 0.5 seconds
...
This is configurable via an environment variable rather than a command line
option, as I'm not expecting many people really need to change this thing.
I profiled the change from 1 -> 0.5 seconds on an old P4, and saw pretty much
no difference in CPU usage, whether there were new clipboard entries or not.
Closes #12 .
2015-09-06 01:46:21 +01:00
Chris Down
d4390324f5
Document why we add/remove an "x" when grabbing the clipboard data
2015-07-27 20:19:41 -07:00
Chris Down
d246b63f27
Set perms to 0700 when creating cache dir
2015-07-27 20:16:13 -07:00
Chris Down
0418bf2e6d
Sort selections by recency
...
Fixes #5 .
2015-07-27 20:08:10 -07:00
Chris Down
5b2754868b
Make clipmenu cache directory user-specific
...
Fixes #2 .
2015-07-27 20:01:41 -07:00
Chris Down
35521af0ec
Make sure that the clipboard data is not just whitespace before copying
...
This avoids getting a bad array subscript, and polluting the menu.
Thanks to @kaihendry for noticing this issue and suggesting a fix. This commit
is a modified version of his suggestion, using [:blank:] instead of [:space:].
Closes #7 .
2015-07-27 20:00:21 -07:00
Chris Down
2cbfb4ef88
Add xclip support
...
Fixes #1 . As first suggested in a fork by @milouse.
2015-02-08 17:40:36 +00:00
Chris Down
c40456caa0
Do not write to file if last selection data is the same
2014-02-05 18:52:03 +08:00
Chris Down
fecfede140
Do not add newline when copying clipboard data to file
2014-02-05 18:06:47 +08:00
Chris Down
fd8b6bfe37
Check that there really is some data before storing it
2014-02-05 18:02:39 +08:00
Chris Down
dd9a041846
Copy from both clipboard and primary selections
2014-02-05 17:45:37 +08:00
Chris Down
4a85fd767c
Add clipmenu daemon
2014-02-05 16:57:11 +08:00