рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд "ctrl + v"

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░, рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╡рд┐рдВрдбреЛ рд╕реЗ рдХреЛрдб \ рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, "ctrl + c" рджрдмрд╛рдПрдВ, рдлрд┐рд░ рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдХреА рд╕рдХреНрд░рд┐рдп рд╡рд┐рдВрдбреЛ рдореЗрдВ "ctrl + v" рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реБрдЖ - "n n" рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдпрд╛ ред


рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЖрд╕рд╛рди рдФрд░ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЕрдЬрдЧрд░ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдХреБрд▓ - рдЖрдкрдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк "ctrl + v" рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ "\ n" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ "ctrl + v" рдХреЙрд▓ рдХрд░реЗрдВред рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдЪреЗрдХ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд░реНрдХрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдХреНрддрд┐-рдЯрд░реНрдорд┐рдирд▓ "рдкреЗрд╕реНрдЯ" рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "Shift + Ctrl + V" рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ "Ctrl + V" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдпреЛрдЬрди "Shift + Ctrl + V" рдкрд░ рдПрдХ рдмрдлрд░ рдЪреЗрдХ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╣реИ

~ / .config / openbox / rc.xml
<keyboard> <keybind key="SCv"> <action name="Execute"> <command>/home/user/scripts/safe_paste.py</command> </action> </keybind> </keyboard> 


рдХрд┐рд╕реА рдХреЛ chmod + x /home/user/scripts/safe_paste.py рдХреЛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

/home/user/scripts/safe_paste.py
 #!/usr/bin/env python from paste_it import main main() 


/home/user/scripts/paste_it.py
 #!/usr/bin/env python import os from subprocess import Popen, PIPE def main(): #    ,   xsel sys_exec = Popen('xsel', stdout=PIPE) stdout = sys_exec.stdout.read() #       1,      if len(stdout.splitlines()) != 1: n_detected = Popen('notify-send "\\n detected"', shell=True) return False # ,     codes = map(ord, stdout) for code in codes: if code <= 31 or code == 127: bad_code_detected = Popen('notify-send "bad code detected"', shell=True) return False paste = Popen('%s/pasteit &' % os.path.dirname(__file__), shell=True) return stdout if __name__ == '__main__': main() 


рдХреЛрдб рдХреЛ 2 рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓реЗрдЧрд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЖрдк рддреБрд░рдВрдд paste_it.py рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"\ N" рдХреЗ рдЕрд▓рд╛рд╡рд╛, www.asciitable.com , рдЕрд░реНрдерд╛рддреН 0-31 рдФрд░ 127, рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рднреА рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдмрдлрд░ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд "ctrl + v" рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рдереЗ:


рдЖрдкрдХреЛ рдЦреБрдж рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
C \ c ++ рдкрд░, рдореИрдВрдиреЗ рдЯрд╣рд▓рдиреЗ рдкрд░ рд╕реНрдХреЛрд░ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдзреЗ рдХрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

рдПрдХ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рдЬрд╛рд╡рд╛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

PasteIt.java
 import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class PasteIt{ public static void main(String[] args) { try { Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.delay(20); robot.keyRelease(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); } catch (AWTException e) { e.printStackTrace(); } } } 


javac PasteIt.java

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рд▓реИрдкрдЯреЙрдк рдкрд░ рдирд╣реАрдВ, рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдХреЙрд▓ рдореЗрдВ 1-2 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рдереЗ, рдпрд╣ рдмрд╣реБрдд рдЖрд░рд╛рдорджрд╛рдпрдХ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред

Gcj рдкрд░рд┐рддреНрдпрдХреНрдд рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди

gcj -O2 - main = PasteIt PasteIt.java

рдФрд░ a.out рдмрд╛рдЗрдирд░реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкреЗрд╕реНрдЯрд┐рдЯ рдирд╛рдо рджрд┐рдпрд╛ рдерд╛ рдФрд░ рдпрд╣ 0.1 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдм, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВ "ctrl + shift + v" рджрдмрд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдпрджрд┐ рдмрдлрд░ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА, рдЕрдЧрд░ рдореБрдЭреЗ рдмрд┐рдирд╛ рдЬрд╛рдВрдЪ рдХрд┐рдП рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ "ctrl + v" рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

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

Stackoverflow.com рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде xsel рдХреА рдЬрдЧрд╣, mingw рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк GCJ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╕рдм рдкреЙрд╡рд░рд╢реЗрд▓ \ cmd рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреЛрдЯреАрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In165317/


All Articles