Terminale film tarzı ses efektleri ekleme


9

Terminalde film tarzı ses efektleri olmasını istiyorum. Bilirsiniz, her tuş vuruşu ve çizgi serin bir küçük bip sesi çıkardığında. (Bunun gibi bir şey.) KeyClick kullandım , ama bu sadece klavye yazmak için. Karakterler ekranda okunduğunda da efektler istiyorum.

Bunun cehennem gibi gereksiz olduğunu biliyorum. Ve muhtemelen beş dakika içinde bundan rahatsız olacağım. Ama muhteşem bir beş dakika olacak.


4
Sana bir cevabım yok ama sorunuz beni güldürdü. Teşekkürler!
Chris Page

3
Bu ses efektleri yapmaz, ancak: Cathode terminal emülatörünün şaşırtıcı görsel efektlerini eğlenceli bulabilirsiniz: secretgeometry.com/apps/cathode Belki de ses efektleri eklemelerini önerebilirsiniz. İyi bir seçim olurdu.
Chris Page

Her satırda bash ile bir ses çalabilirsiniz PROMPT_COMMAND, örneğin PROMPT_COMMAND="say 'something silly'"( saybazı örneklerin komut satırı ses çalma ile değiştirin ).
Ingmar Hupp

Daha önce hiç Katot görmediğime inanamıyorum. Ne harika bir harika ama 'yararsız' uygulaması! :)
chrismanderson

Yanıtlar:


10

Eğlenceli soru :)

Her şey için nasıl ses efektleri alacağınızdan emin değilim, ancak birkaç şey için ses efektleri almak için böyle bir şey yapabilirsiniz:

1) Terminal penceresini açıp şunu yazarak .profile (veya .bashrc veya özelleştirmelerinizi korumak istediğiniz herhangi bir yerde) açın:

open .profile

2) Dosyanın altına aşağıdaki birkaç satırı ekleyin:

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) Bir dizin listesi için 'ls' veya çalışan işlemlerin listesini görmek için 'top' yazmayı deneyin; bu komutların sonuçlarını duyacaksınız.

Bu iki satırı ekleyerek mevcut bash komutlarıyla aynı adlara sahip iki yeni işlev bildiriyoruz. Biraz ses çalabilmemiz ve sonra komutun kendisini çalıştırabilmemiz için komutun kendisini geçersiz kılıyoruz (veya 'üst' örnekte gösterildiği gibi).

Şu anda kullandığım ses dosyaları, erişilebilirlik özellikleri için kullanılan varsayılan ses dosyalarıdır (en azından Lion'da). Bunları seçip kesip yapıştırabilmeniz ve hileyi çalışırken görebilmeniz için seçtim ancak bunların yerine herhangi bir ses dosyasını kullanabilirsiniz.

İşte OS'den ödünç aldığım bunların yerine kullanabileceğiniz bir sürü bilimkurgu ses efektine sahip bir site:

http://fxhome.com/sounds/


1
Snow Leopard'da, yol /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds/accessibility/. Bu arada güzel bulmak; bunlar iyi sesler. Mouse Keys ON.aifEkrana metin basma sesini seviyorum .
2018

Bilgi için teşekkürler - karakterler ekrana çizilirken sesi oldukça genişletmez, ancak bu sadece .profile modifikasyonundan ziyade tamamen farklı bir terminal ortamı gerektirecektir.
chrismanderson

0

Tuş vuruşu bitinden emin değilim ... ancak filmlerde olduğu gibi bir terminal komutunun çıktısını yazdırabilirsiniz, yani her satır karakter karakterle yazdırılır ve her biri için küçük bir bip sesi çalar. Başlangıçta havalı görünüyor ve sonra gerçekten sinir bozucu oluyor. Bunu açıp kapatabileceğiniz bir terminale sahip olmak eğlenceli olurdu. Açıkçası oldukça sınırlı ama geliştirmesi eğlenceli bir proje olabilir.

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!")
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.