[Linux] Use clipit instead of copyq
This commit is contained in:
parent
7e4cd192bc
commit
22ec242f99
25
dotfiles/config/clipit/clipitrc
Normal file
25
dotfiles/config/clipit/clipitrc
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[rc]
|
||||||
|
use_copy=true
|
||||||
|
use_primary=true
|
||||||
|
synchronize=true
|
||||||
|
automatic_paste=false
|
||||||
|
show_indexes=true
|
||||||
|
save_uris=true
|
||||||
|
use_rmb_menu=false
|
||||||
|
save_history=true
|
||||||
|
history_limit=500
|
||||||
|
items_menu=20
|
||||||
|
statics_show=true
|
||||||
|
statics_items=10
|
||||||
|
hyperlinks_only=false
|
||||||
|
confirm_clear=false
|
||||||
|
single_line=true
|
||||||
|
reverse_history=false
|
||||||
|
item_length=50
|
||||||
|
ellipsize=2
|
||||||
|
history_key=
|
||||||
|
actions_key=
|
||||||
|
menu_key=
|
||||||
|
search_key=
|
||||||
|
offline_key=
|
||||||
|
offline_mode=false
|
12
dotfiles/config/systemd/user/clipit.service
Normal file
12
dotfiles/config/systemd/user/clipit.service
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=clipit
|
||||||
|
Wants=taffybar.service
|
||||||
|
After=taffybar.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/env clipit
|
||||||
|
ExecStop=/usr/bin/pkill clipit
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=wm.target
|
@ -973,7 +973,7 @@ addKeys conf@XConfig { modMask = modm } =
|
|||||||
|
|
||||||
, ((modm, xK_v), spawn "copyq paste")
|
, ((modm, xK_v), spawn "copyq paste")
|
||||||
, ((modm .|. controlMask, xK_s), spawn "split_current_chrome_tab.sh")
|
, ((modm .|. controlMask, xK_s), spawn "split_current_chrome_tab.sh")
|
||||||
, ((hyper, xK_v), spawn "copyq_rofi.sh")
|
, ((hyper, xK_v), spawn "clipit_rofi.sh")
|
||||||
, ((hyper, xK_p), spawn "rofi-pass")
|
, ((hyper, xK_p), spawn "rofi-pass")
|
||||||
, ((hyper, xK_h), spawn "screenshot.sh")
|
, ((hyper, xK_h), spawn "screenshot.sh")
|
||||||
, ((hyper, xK_c), spawn "shell_command.sh")
|
, ((hyper, xK_c), spawn "shell_command.sh")
|
||||||
|
62
dotfiles/lib/bin/clipit_history.py
Executable file
62
dotfiles/lib/bin/clipit_history.py
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
from __future__ import print_function
|
||||||
|
import appdirs
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import struct
|
||||||
|
import string
|
||||||
|
|
||||||
|
|
||||||
|
clipit_history_file = os.path.join(appdirs.user_data_dir(), "clipit/history")
|
||||||
|
|
||||||
|
|
||||||
|
def get_clipit_history(filename):
|
||||||
|
with open(filename, 'rb') as f:
|
||||||
|
f.read(68)
|
||||||
|
size, _ = struct.unpack('2i', f.read(8))
|
||||||
|
while (size > 0):
|
||||||
|
item = f.read(size)
|
||||||
|
if item:
|
||||||
|
yield item
|
||||||
|
_, _, _, size, _ = struct.unpack('5i', f.read(20))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(description='Lookup clipit history')
|
||||||
|
parser.add_argument(
|
||||||
|
'--separator', '-s',
|
||||||
|
help='the separator to use when outputting history',
|
||||||
|
type=str,
|
||||||
|
default='\n',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--begin-index', '-b',
|
||||||
|
type=int,
|
||||||
|
default=0
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--end-index', '-e',
|
||||||
|
type=int,
|
||||||
|
default=None
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--index', '-i',
|
||||||
|
type=int,
|
||||||
|
default=None
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--separator-replacement', '-r',
|
||||||
|
type=str,
|
||||||
|
default=None
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
if not args.separator_replacement:
|
||||||
|
args.separator_replacement = args.separator
|
||||||
|
history = list(get_clipit_history(clipit_history_file))
|
||||||
|
if args.index is not None:
|
||||||
|
text = history[args.index]
|
||||||
|
else:
|
||||||
|
selected = history[args.begin_index:args.end_index]
|
||||||
|
text = args.separator.join([string.replace(s, args.separator, args.separator_replacement)
|
||||||
|
for s in selected])
|
||||||
|
print(text, end='')
|
7
dotfiles/lib/bin/clipit_rofi.sh
Executable file
7
dotfiles/lib/bin/clipit_rofi.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
SELECTED_INDEX="$(clipit_history.py -r '(newline)' | rofi -dmenu -format i)"
|
||||||
|
|
||||||
|
if [ "$SELECTED_INDEX" -eq "$SELECTED_INDEX" ] 2>/dev/null; then
|
||||||
|
xdotool type "$(clipit_history.py -e 5 -i $SELECTED_INDEX)"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user