proxmox:: Tampermonkey 설치해서 console에서 paste 하기

 

 

 

- Tampermonkey 크롬확장기능을 설치한다.

- "noVNC Paste for Proxmox" Script를 install설치한다 

- 마우스 오른쪽 버튼을 눌러 붙여넣기 기능을 사용한다

 

 

 

 

 

 

크롬(EDGE) 확장기능 설치

 

https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en

 

 

 

 

 

noVNC Paste for Proxmox

 

https://gist.github.com/amunchet/4cfaf0274f3d238946f9f8f94fa9ee02/raw/0b84970f89e1f282f09b86d46227eda71178c040/noVNCCopyPasteProxmox.user.js

 

 

 

 

 

마우스 오른쪽 버튼을 눌러서 기존에 복.붙하던 것처럼 잘 사용한다!

 

 

 

 

 

 

 


 

Reference

 

 

 

https://gist.github.com/amunchet/4cfaf0274f3d238946f9f8f94fa9ee02

 

Copy/Paste for noVNC Proxmox

Copy/Paste for noVNC Proxmox. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

// ==UserScript==
// @name         noVNC Paste for Proxmox
// @namespace    http://tampermonkey.net/
// @version      0.2a
// @description  Pastes text into a noVNC window (for use with Proxmox specifically)
// @author       Chester Enright
// @match        https://*
// @include      /^.*novnc.*/
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @grant        none
// ==/UserScript==
const delay = 1
;(function () {
    'use strict'
    window.sendString = function(text) {

        var el = document.getElementById("canvas-id")
        text.split("").forEach(x=>{
            setTimeout(()=>{
                 var needs_shift = x.match(/[A-Z!@#$%^&*()_+{}:\"<>?~|]/)
                 let evt
                 if (needs_shift) {

                     evt = new KeyboardEvent("keydown", {keyCode: 16})
                     el.dispatchEvent(evt)
                     evt = new KeyboardEvent("keydown", {key: x, shiftKey: true})
                     el.dispatchEvent(evt)
                     evt = new KeyboardEvent("keyup", {keyCode: 16})
                     el.dispatchEvent(evt)

                 }else{
                     evt = new KeyboardEvent("keydown", {key: x})
                }
                el.dispatchEvent(evt)
            }, delay)
        })

    }


    $(document).ready(function() {
        setTimeout(()=>{
            console.log("Starting up noVNC Copy/Paste (for Proxmox)")

            $("canvas").attr("id", "canvas-id")

            $("canvas").on("mousedown", (e)=>{
                if(e.button == 2){ // Right Click
                    navigator.clipboard.readText().then(text =>{
                        window.sendString(text)
                        
                    // for native JS prompt
                    // let text = prompt("Enter text to paste:");
                    // if (text != null) window.sendString(text);
                    })
                }
            })
        }, 1000);
    })


})()

 

 

 

 

 

 

 

 

_

반응형