터미널에서 영화 스타일의 음향 효과를 원합니다. 모든 키 스트로크와 라인이 시원하고 작은 경고음을 내 보냅니다. (이와 같은 일) KeyClick을 사용 했지만 키보드 입력에만 해당됩니다. 또한 화면 등에서 문자를 읽을 때 효과를 원합니다.
나는 이것이 지옥과 같은 슈퍼 플로우 스라는 것을 알고 있습니다. 그리고 아마 5 분 안에 화가 날 것입니다. 그러나 영광스러운 5 분이 될 것입니다.
답변
재미있는 질문 🙂
나는 당신이 모든 것에 대해 음향 효과를 얻는 방법을 모르겠지만 몇 가지에 대한 음향 효과를 얻기 위해 이와 같은 것을 할 수 있습니다.
1) 터미널 창을 열고 다음을 입력하여 .profile (또는 .bashrc 또는 사용자 정의를 유지하려는 곳)을 엽니 다.
open .profile
2) 파일 맨 아래에 다음 몇 줄을 추가하십시오.
function top() { afplay /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/accessibility/Sticky\ Keys\ ON.aif; command top;}
function ls() { command ls; afplay /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/accessibility/Slow\ Keys\,\ Key\ Registered.aif; }
3) 디렉토리 목록에 ‘ls’를 입력하거나 실행중인 프로세스 목록을 보려면 ‘top’을 입력하면 이러한 명령의 결과를들을 수 있습니다.
이 두 줄을 추가하여 기존 bash 명령과 이름이 같은 두 개의 새로운 함수를 선언합니다. 우리는 약간의 오디오를 재생할 수 있도록 명령 자체를 재정의 한 다음 명령 자체를 실행합니다 (또는 ‘맨 위’예와 같이 그 반대).
현재 사용중인 오디오 파일은 내게 필요한 옵션 기능에 사용되는 기본 오디오 파일 (적어도 Lion에서는)입니다. 잘라서 붙여 넣기를하고 트릭을 실제로 볼 수 있도록 이들을 선택했지만 대신 오디오 파일을 사용할 수 있습니다.
다음은 OS에서 빌린이 대신 사용할 수있는 많은 공상 과학 사운드 효과가있는 사이트입니다.
답변
키 스트로크 비트는 확실하지 않지만 … 영화에서와 같이 터미널 명령의 출력을 인쇄하도록 할 수 있습니다. 즉, 각 줄은 문자별로 인쇄되고 각 줄마다 약간의 경고음이 울립니다. 처음에는 시원해 보이고 정말 짜증납니다. 이 스위치를 켜고 끌 수있는 터미널이 있으면 재미있을 것입니다. 분명히 꽤 제한적이지만 개발하기에 재미있는 프로젝트가 될 수 있습니다.
from subprocess import PIPE, Popen
import os
from time import *
import sys
from playsound import playsound
def print_immediately(string):
sys.stdout.write(string)
sys.stdout.flush()
def backspace():
print('\r', end='')
def printline(x, silent=False):
n = len(x)
for i in range(n):
print_immediately(x[:(i+1)])
if not silent:
beep()
sleep(0.01)
backspace()
sys.stdout.write('\n')
sys.stdout.flush()
def printlines(x, silent=False):
result = str(x.decode("utf-8"))
lines = str.split(result, "\n")
for line in lines:
printline(line, silent=False)
def beep():
playsound('/Users/Blah/Projects/console/beep.wav', block=False)
def cmdline(command):
process = Popen(
args=command,
stdout=PIPE,
shell=True
)
return process.communicate()[0]
while True:
command = input("user: ")
if(command == 'exit'):
break
else:
try:
if command.find("cd ") != -1:
dir = command.replace("cd ", "")
os.chdir(os.path.expanduser(dir))
print(dir)
else:
printlines(cmdline(command))
except:
print("Error!")