Clipit: рдкреВрд░реЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдлрд╝рд░ре░ 2012  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: CristianHenzel/ClipIt

рдПрдХ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рдЫреВрдЯ рдЬрд╛рддреА рд╣реИ рд╡рд╣ рд╣реИ рдкреВрд░реЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб, рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк, рдХреНрдпреЛрдВрдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдмрд┐рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдгреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛ)
рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рдирдИ ctrl alt + рдХреБрдВрдЬреА рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрддрд┐рд╣рд╛рд╕ рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдЙрдмрдВрдЯреВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрдерд╛рди рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = ''


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рднреА рджреЗ рд╕рдХреЗрдВ рдХрд┐ _exactly_ рдЖрдк рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВред

рдирдорд╕реНрддреЗ ,
рдореИрдВ рд╕рднреА рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдХреНрд▓рд┐рдкрд┐рдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓реЙрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рддреЛ рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рд╕рднреА рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ (рдФрд░ рдлрд┐рд░ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ) рдХреЛ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд▓рд╛рдЗрди (рдирдИ рдкреНрд░рддрд┐) рдХреЛ рдЪрд┐рдкрдХрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рд╕рднреА рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ (рдФрд░ рдлрд┐рд░ рд╕рднреА рдкрд┐рдЫрд▓реА рдкреНрд░рддрд┐рдпрд╛рдВ) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЙрдЯрдХреА рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реЛрдЧреАред

рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реА рд╕реЛрдЪ рдкрд░ рднреА рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдХрдИ рд╕реНрд╡рд╛рдж рдХрд╣рддрд╛ рд╣реВрдВред рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

рдкреЗрд╕реНрдЯ 1
рдЦрд╛рд▓реА рд▓рд╛рдЗрди
рдкреЗрд╕реНрдЯ 2
рдЦрд╛рд▓реА рд▓рд╛рдЗрди
рдЖрджрд┐ред

рдЬрдм рдореИрдВ рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ! рдпрд╣ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдХреНрд╕рд░ рдпрд╛рдж рднреА рдХрд░рддрд╛ рд╣реВрдВред

рдЗрддрд┐рд╣рд╛рд╕ рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдЙрдмрдВрдЯреВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрдерд╛рди рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = ''


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep

рдХреВрд▓, рдореБрдЭреЗ рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдЖрдк рдХреНрд▓рд┐рдкрд╣рд┐рд╕реНрдЯ.py рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреНрд▓рд┐рдкрд┐рдЯ рдХрдорд╛рдВрдб рдореЗрдВ рдкрд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕реЗ рдПрдХ рдПрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП), рдлрд┐рд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

$ cliphist.py | clipit

@davidsands рдЕрдЪреНрдЫреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ bashrc рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:
рдЙрдкрдирд╛рдо рдХреНрд▓рд┐рдкрд┐рдЯ.рдЗрддрд┐рд╣рд╛рд╕='python2 /home/emmanuelux/scripts/cliphist.py'
рдЙрд░реНрдл рдХреНрд▓рд┐рдкрд┐рдЯ.рдЗрддрд┐рд╣рд╛рд╕.рдХреЙрдкреА='рдХреНрд▓рд┐рдкрд┐рдЯ.рдЗрддрд┐рд╣рд╛рд╕ | рдХреНрд▓рд┐рдкрд┐рдЯ'

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ohnonot picture ohnonot  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brainplot picture brainplot  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sgnsajgon picture sgnsajgon  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alswl picture alswl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

weaktyper picture weaktyper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ