Thêm hiệu ứng âm thanh theo kiểu phim vào Terminal


9

Tôi muốn có hiệu ứng âm thanh kiểu phim trong thiết bị đầu cuối. Bạn biết đấy, khi mỗi tổ hợp phím và dòng phát ra tiếng bíp nhỏ. (Một cái gì đó như thế này.) Tôi đã sử dụng KeyClick , nhưng chỉ dùng để gõ bàn phím. Tôi cũng muốn các hiệu ứng khi các ký tự được đọc trên màn hình, v.v.

Tôi biết điều này là thừa như địa ngục. Và có lẽ tôi sẽ cảm thấy khó chịu vì điều đó trong vòng năm phút. Nhưng nó sẽ là một năm vinh quang.


4
Tôi không có câu trả lời cho bạn, nhưng câu hỏi của bạn làm tôi phát điên. Cảm ơn!
Chris Trang

3
Điều này không làm hiệu ứng âm thanh, nhưng: bạn có thể thấy các hiệu ứng hình ảnh tuyệt vời của trình giả lập thiết bị đầu cuối Cathode gây cười: secretgeometry.com/apps/cathode Có lẽ bạn có thể đề nghị họ thêm hiệu ứng âm thanh. Nó sẽ là một phù hợp tốt.
Chris Trang

Bạn có thể phát âm thanh mỗi dòng bằng bash's PROMPT_COMMAND, ví dụ PROMPT_COMMAND="say 'something silly'"(thay thế saybằng phát lại âm thanh dòng lệnh của một số mẫu).
Ingmar Hupp

Không thể tin rằng tôi chưa bao giờ thấy Cathode trước đây. Thật là một ứng dụng tuyệt vời nhưng vô dụng tuyệt vời! :)
chrismanderson

Câu trả lời:


10

Câu hỏi thú vị :)

Tôi không chắc làm thế nào bạn có được hiệu ứng âm thanh cho mọi thứ nhưng bạn có thể làm một cái gì đó như thế này để có được hiệu ứng âm thanh cho một vài thứ:

1) Mở mở .profile của bạn (hoặc .bashrc hoặc bất cứ nơi nào bạn muốn để giữ các tùy chỉnh của mình) bằng cách mở một cửa sổ đầu cuối và gõ:

open .profile

2) Thêm một vài dòng sau vào cuối tập tin:

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) Thử gõ 'ls' cho danh sách thư mục hoặc 'trên cùng' để xem danh sách các quy trình đang chạy và bạn sẽ được nghe kết quả của các lệnh này.

Bằng cách thêm hai dòng này, chúng tôi đang khai báo hai hàm mới có cùng tên với các lệnh bash hiện có. Chúng tôi ghi đè chính lệnh để có thể phát một chút âm thanh và sau đó chạy chính lệnh đó (hoặc ngược lại như được hiển thị ví dụ 'trên cùng').

Các tệp âm thanh tôi hiện đang sử dụng là các tệp âm thanh mặc định (ít nhất là trên Lion) được sử dụng cho các tính năng trợ năng. Tôi đã chọn những thứ này để bạn có thể cắt dán và xem thủ thuật hoạt động nhưng bạn có thể sử dụng bất kỳ tệp âm thanh nào thay cho các tệp này.

Đây là một trang web có một loạt các hiệu ứng âm thanh khoa học mà bạn có thể sử dụng thay cho các hiệu ứng này mà tôi đang mượn từ HĐH:

http://fxhome.com/sound/


1
Trên Snow Leopard, con đường là /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds/accessibility/. Nhân tiện tìm thấy; Đó là những âm thanh tốt để sử dụng. Tôi thích âm thanh của Mouse Keys ON.aifviệc in văn bản lên màn hình.
styfle

Cảm ơn thông tin - nó không hoàn toàn mở rộng âm thanh khi các ký tự được vẽ trên màn hình, nhưng có vẻ như nó sẽ yêu cầu một môi trường đầu cuối hoàn toàn khác, thay vì chỉ sửa đổi .profile.
chrismanderson

0

Không chắc chắn về bit gõ phím ... nhưng bạn có thể in nó ra đầu ra của lệnh đầu cuối như trong phim, tức là mỗi dòng được in theo từng ký tự và phát một tiếng bíp nhỏ cho mỗi người. Nó trông mát mẻ ban đầu và sau đó thực sự gây phiền nhiễu. Sẽ rất vui khi có một thiết bị đầu cuối mà bạn có thể bật và tắt. Rõ ràng là khá hạn chế nhưng có thể là một dự án thú vị để phát triển.

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!")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.