diff --git a/build/init.sh b/build/init.sh index b698de42..0b00cd85 100755 --- a/build/init.sh +++ b/build/init.sh @@ -53,16 +53,19 @@ if [ ! -f /etc/kvmd/.init_flag ]; then touch /etc/kvmd/.docker_flag && \ sed -i 's/localhost.localdomain/docker/g' /etc/kvmd/meta.yaml && \ sed -i 's/localhost/localhost:4430/g' /etc/kvmd/kvm_input.sh; then - log_info "基础配置完成" + log_info "移动配置文件完成" else - log_error "基础配置失败" + log_error "移动配置文件失败" exit 1 fi # SSL证书配置 - if ! /usr/share/kvmd/kvmd-gencert --do-the-thing && \ - ! /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc; then - log_error "SSL 证书生成失败" + if ! /usr/share/kvmd/kvmd-gencert --do-the-thing; then + log_error "Nginx SSL 证书生成失败" + exit 1 + fi + if ! /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc; then + log_error "VNC SSL 证书生成失败" exit 1 fi @@ -185,6 +188,17 @@ EOF fi fi + # 设置默认视频模式为 mjpeg + if ! grep -q "mjpeg_default:" /etc/kvmd/override.yaml; then + cat >> /etc/kvmd/override.yaml << EOF + +streamer: + mjpeg_default: true # 首次访问默认使用 MJPEG 模式 + h264_bitrate: 5000 # 默认码率 5000 Kbps +EOF + log_info "已设置首次访问默认使用 MJPEG 模式" + fi + if [ ! -z "$VIDEOFORMAT" ]; then if sed -i "s/format=mjpeg/format=$VIDFORMAT/g" /etc/kvmd/override.yaml; then log_info "视频输入格式已设置为 $VIDFORMAT" @@ -216,5 +230,5 @@ if [ "$OTG" == "1" ]; then fi fi -log_info "One-KVM 启动完成,正在启动服务..." +log_info "One-KVM 配置文件准备完成,正在启动服务..." exec supervisord -c /etc/kvmd/supervisord.conf \ No newline at end of file diff --git a/scripts/kvmd-gencert b/scripts/kvmd-gencert index 245bda7e..cefd7738 100755 --- a/scripts/kvmd-gencert +++ b/scripts/kvmd-gencert @@ -4,6 +4,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -55,7 +56,7 @@ cd "$path" # - https://msol.io/blog/tech/create-a-self-signed-ecc-certificate openssl ecparam -out server.key -name prime256v1 -genkey openssl req -new -x509 -sha256 -nodes -key server.key -out server.crt -days 3650 \ - -subj "/C=US/O=PiKVM/OU=PiKVM/CN=localhost" + -subj "/C=CN/O=One-KVM/OU=One-KVM/CN=localhost" #chown "root:kvmd-$target" "$path"/* chmod 440 "$path/server.key" diff --git a/web/index.html b/web/index.html index 09bb6dab..254347c8 100644 --- a/web/index.html +++ b/web/index.html @@ -5,6 +5,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -86,7 +87,7 @@


-

PiKVM Project  |  PiKVM Documentation  |  One-KVM Project  |  One-KVM Documentation

+

One-KVM Project  |  One-KVM Documentation

diff --git a/web/index.pug b/web/index.pug index 0dc019f2..769ee260 100644 --- a/web/index.pug +++ b/web/index.pug @@ -39,10 +39,6 @@ block start hr p(class="text credits") - a(target="_blank" href="https://pikvm.org" i18n="index_text_10") PiKVM Project - |   |   - a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") PiKVM Documentation - |   |   a(target="_blank" href="https://github.com/mofeng-git/One-KVM" i18n="index_text_12") One-KVM Project |   |   a(target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13") One-KVM Documentation \ No newline at end of file diff --git a/web/ipmi/index.html b/web/ipmi/index.html index 17b6b2f4..0acd8949 100644 --- a/web/ipmi/index.html +++ b/web/ipmi/index.html @@ -5,6 +5,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # diff --git a/web/kvm/index.html b/web/kvm/index.html index 2ec6e1fa..30b350c5 100644 --- a/web/kvm/index.html +++ b/web/kvm/index.html @@ -5,6 +5,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -166,7 +167,7 @@
- +
WebRTC is not supported by this browser
@@ -234,17 +235,12 @@ Video mode:
+ + + + - - - - - - - - - - +
@@ -264,7 +260,7 @@ - Audio volume: + Audio volume: @@ -279,15 +275,6 @@
- - Microphone: - -
- - -
- -
@@ -433,16 +420,7 @@ - - - - - +
Bad link mode (release keys immediately): -
- - -
-
Bad link mode (release keys immediately):Bad link mode (release keys immediately):
@@ -556,7 +534,6 @@

-
- + + + + + + + + +
Slow typing:Slow typing:
+
+
Hide input text: +
+ + +
+
Slow typing: +
@@ -877,7 +868,6 @@
-
@@ -997,50 +987,6 @@
-
  • Switch - -
  • @@ -1059,7 +1005,6 @@
    -
    @@ -2395,650 +2340,10 @@ // If you also want to support this project,
    // you can donate on Patreon or Paypal. -
      -
    • A. Isenring
    • -
    • Aaron Graubert
    • -
    • Aaron Heise
    • -
    • Aaron Stein
    • -
    • Accalia
    • -
    • Adam Goodbar
    • -
    • Adam S
    • -
    • Adam Stuart
    • -
    • AdamBomb
    • -
    • adipisicing
    • -
    • Adrian Basham
    • -
    • Adrian Popescu
    • -
    • Ahmed Syed
    • -
    • Alberto Bassi
    • -
    • alejandro
    • -
    • Aleksei Brusianskii
    • -
    • Alessio Curri
    • -
    • Alex T
    • -
    • Alex Z
    • -
    • Alexander Karmanov
    • -
    • Alexander Lahuerta
    • -
    • Alexander Martin
    • -
    • Alexander Pankov
    • -
    • Alexandre Jablonski
    • -
    • Alexey Kamenskiy
    • -
    • alm0241
    • -
    • Alok Anand
    • -
    • Alucard
    • -
    • Ananthaneshan Elampoornan
    • -
    • Andreas Grundler
    • -
    • Andreas Marufke
    • -
    • Andreas Schmid
    • -
    • Andrew Brant
    • -
    • Andrew Melton
    • -
    • Andrew Reusch
    • -
    • Andrew Ruan
    • -
    • Andrzej V
    • -
    • Andy
    • -
    • Andy Keys
    • -
    • Anish Patel
    • -
    • Anix
    • -
    • Anonymous
    • -
    • Anthony Junk
    • -
    • Anton Kovalenko
    • -
    • Armen
    • -
    • Aron Green
    • -
    • Aron Perelman
    • -
    • Artem Simonov
    • -
    • Arthur Mayer
    • -
    • Arthur Woimbée
    • -
    • Ashlesh Chaudhari
    • -
    • Asim Shakour
    • -
    • Augusto Becciu
    • -
    • AVS Computer
    • -
    • awkspace
    • -
    • Badal Patel
    • -
    • baddog
    • -
    • Bao Tin Hoang
    • -
    • Bean Co.
    • -
    • Bela Bargel
    • -
    • Belf Igor
    • -
    • Ben Gordon
    • -
    • Ben Scott
    • -
    • Benedikt Heine
    • -
    • Benedikt Meier
    • -
    • Benjamin Frewert
    • -
    • Benjamin Melancon
    • -
    • Benjamin Schwartz
    • -
    • Benjamin Stegmann
    • -
    • Benni Stauder
    • -
    • Bernhard Fitzke
    • -
    • Beu
    • -
    • bikmaek
    • -
    • bitjoe
    • -
    • Bits and Bytes Computers LLC
    • -
    • Bjoern Petsch
    • -
    • Blair Hasler
    • -
    • Blindside
    • -
    • Blue Frog LLC
    • -
    • Bootstrapper - Programmierung erklärt
    • -
    • Bosco
    • -
    • Bradford King
    • -
    • Brainspore Networks
    • -
    • Branden Shaulis
    • -
    • Brandon Daniels
    • -
    • Brian
    • -
    • Brian Moses
    • -
    • Brian T Mulcahy
    • -
    • Brian Vecchiarelli
    • -
    • Brian White
    • -
    • brodonalds
    • -
    • Bruno Gomes
    • -
    • Bryan Adams
    • -
    • Bryan Montgomery
    • -
    • Buzzer
    • -
    • C P ELSE
    • -
    • Calanish
    • -
    • Cameron Hatcher
    • -
    • Cameron Tacklind
    • -
    • Carl Mercier
    • -
    • Carl-Fredrik Johansson
    • -
    • Carlos Eduardo Porter Herrera
    • -
    • Carlos Garcia
    • -
    • Carlos Manuel Torres
    • -
    • cbad536
    • -
    • César Nascimento
    • -
    • CHINATERA LIMITED
    • -
    • Chris Blackmon
    • -
    • Chris Burton
    • -
    • Chris Campbell
    • -
    • Chris Jackson
    • -
    • Chris Lewis
    • -
    • Chris Rizio
    • -
    • Christi King
    • -
    • Christian Schlögl
    • -
    • Christian Svensson
    • -
    • Christof Maluck
    • -
    • Christoph Dette
    • -
    • Christoffer Lund
    • -
    • Christopher Bulla
    • -
    • Christopher Gelatt
    • -
    • Christopher Hearn
    • -
    • Christopher Mandlbaur
    • -
    • Christopher Mendoza
    • -
    • Christopher Simms
    • -
    • Chucktastic
    • -
    • Cihan VURAL
    • -
    • clauskj3r
    • -
    • Clifford Coleman
    • -
    • Clinton Lee Taylor
    • -
    • Cole Imhoff
    • -
    • Colin Goodman
    • -
    • Corey Layton
    • -
    • Corey Lista
    • -
    • Craig Keenan
    • -
    • Crossfactor
    • -
    • Cruzzer
    • -
    • ctag
    • -
    • Curt Sammer
    • -
    • CyB0rgg
    • -
    • DeMentor
    • -
    • Desmond Whitt
    • -
    • Daegara
    • -
    • DailyAneurism
    • -
    • Damon Meledones
    • -
    • Dan Berkowitz
    • -
    • Dan Brakeley
    • -
    • Daniel Bowder
    • -
    • Daniel Cabrera
    • -
    • Daniel Davila
    • -
    • Danilo Saft
    • -
    • Danne
    • -
    • Dariusz Techmański
    • -
    • David
    • -
    • David Brausewetter
    • -
    • David Davis
    • -
    • David Godibadze
    • -
    • David Howell
    • -
    • David Irvine
    • -
    • David Klinkman
    • -
    • David Niemann
    • -
    • David Shay
    • -
    • David Ye
    • -
    • David York
    • -
    • Denis
    • -
    • Denis Andreev
    • -
    • Denis Yatsenko
    • -
    • Dennis Becker
    • -
    • Dennis Joslin
    • -
    • Dennis Lomet
    • -
    • Derek Jarvis
    • -
    • Derek Yap
    • -
    • Didrik
    • -
    • digitalbaconbits
    • -
    • Dimitrij Jedich
    • -
    • dixon wong
    • -
    • dizztrukshin
    • -
    • Dmitry Shilov
    • -
    • DogeLabs
    • -
    • Dominic Phoon
    • -
    • Dominik Klonowski
    • -
    • Donald Hays
    • -
    • Edmon Abdul Nur
    • -
    • Edward Wang
    • -
    • Egan Ford
    • -
    • Elani Ferri
    • -
    • Elliot Woo
    • -
    • Entt
    • -
    • Eric Phenix
    • -
    • Ethan Shold
    • -
    • Eugene Sukhodolin
    • -
    • ewook
    • -
    • eye-catcher.com
    • -
    • Fabian Druschke
    • -
    • Fabiano Sidler
    • -
    • Far Pin Solutions, LLC
    • -
    • Felyx Gabryel
    • -
    • Fergus McKay
    • -
    • Finn Ebenritter
    • -
    • floppy
    • -
    • fo0bar
    • -
    • Foad Yousef
    • -
    • Foamy
    • -
    • Foli Ayivoh
    • -
    • Folkert Weistra
    • -
    • Francisco Pavon
    • -
    • Frank
    • -
    • Frank Sander
    • -
    • Frederick Czajka
    • -
    • Fredrik Idréus
    • -
    • Garrett Dangerfield
    • -
    • Ge Men
    • -
    • Geekworm
    • -
    • Genkinger Andreas
    • -
    • Geijer
    • -
    • Geoffrey Wright
    • -
    • George Becker
    • -
    • Georgy Brodsky
    • -
    • Gerald
    • -
    • Gerardus Vernimmen
    • -
    • Gernot Neuschröer
    • -
    • Giovanni Fulco
    • -
    • GK
    • -
    • Glen Dragon
    • -
    • Greg Winterstein
    • -
    • Gregory Smith
    • -
    • Gregory Treantos
    • -
    • grewil
    • -
    • Grey Cynic
    • -
    • Guenter Honisch
    • -
    • Guido Bernacchi
    • -
    • Gustin Johnson
    • -
    • György Tamás Vizi
    • -
    • Haiberg GmbH
    • -
    • Haven Zheng
    • -
    • Heibunny
    • -
    • Heikki Tiittanen
    • -
    • Helio Leonardo Pinheiro e Mota
    • -
    • Henrik Ählström
    • -
    • Henry Hood
    • -
    • HimKo
    • -
    • HouseFPV
    • -
    • Howard Simons
    • -
    • HyunohRyu
    • -
    • Icculus
    • -
    • iks
    • -
    • INFO TRX INC
    • -
    • Invader Monks
    • -
    • Ioannis Karageorgos
    • -
    • Isaac
    • -
    • IT Lifesaver
    • -
    • Ivan Ganev
    • -
    • Ivan Josiah Lapis
    • -
    • Ivan Shapovalov
    • -
    • iwbjhbweriuhf
    • -
    • J
    • -
    • J L
    • -
    • Jaanus
    • -
    • Jackson Wyatt
    • -
    • Jacob Karaffa
    • -
    • Jacob Morgan
    • -
    • James Cadd
    • -
    • James Cobb
    • -
    • James Edwards
    • -
    • James Kocher
    • -
    • James Mayhugh
    • -
    • James Noonan
    • -
    • James Ye
    • -
    • Jamie Murphy
    • -
    • Jamie Scott
    • -
    • Jan Niehusmann
    • -
    • Jannick Oursin
    • -
    • Jari Hiltunen
    • -
    • Jason Crossley
    • -
    • Jason Downey
    • -
    • Jason Toland
    • -
    • Jasper Backer
    • -
    • Jay Davis
    • -
    • Jay Isaacs
    • -
    • Jazereel Goh
    • -
    • Jean-Daniel Croteau
    • -
    • Jean-Philippe Guilbault
    • -
    • Jeff
    • -
    • Jeff Bowman
    • -
    • Jeff Urlwin
    • -
    • Jennifer Herting
    • -
    • Jennifer Rowlett
    • -
    • Jeremy Abel
    • -
    • Jeremy Combs
    • -
    • Jeremy Hines
    • -
    • Jerremy Holland
    • -
    • Jerry Nall
    • -
    • Jerry Y. Chen
    • -
    • Jim Bailey
    • -
    • Jim Harbin
    • -
    • Jimmy Burgett
    • -
    • Jimmy Stanley
    • -
    • Joachim Bruening
    • -
    • Joe Hanson
    • -
    • Joe Hinteregger
    • -
    • Joe Ventura
    • -
    • Joel Jacobs
    • -
    • Johannes Heigermose
    • -
    • John Andersen
    • -
    • John Copeland
    • -
    • John F Glenn
    • -
    • John Holmes
    • -
    • John Kelley
    • -
    • John McGovern
    • -
    • Johnny Henson
    • -
    • Jon Ferguy
    • -
    • Jon-Eric
    • -
    • Joni Ruuskanen
    • -
    • Jonas Fischer
    • -
    • Jonathan Slenders
    • -
    • Jonathan Vaughn
    • -
    • Joost Backer
    • -
    • Jordan Blake
    • -
    • Jordi Pakey-Rodriguez
    • -
    • Joris van Embden
    • -
    • Joseph Swift
    • -
    • Josh Nethery
    • -
    • Josh Ricker
    • -
    • Josh VanDeraa
    • -
    • Joshua Futterer
    • -
    • Jozef Riha
    • -
    • Jörgen Fredriksson
    • -
    • Julian Forero
    • -
    • Julian Schneider
    • -
    • Julien Angelier
    • -
    • Justin
    • -
    • Justin Waters
    • -
    • Kai Hadler
    • -
    • Kamil Chyba
    • -
    • Kari Matti Korpi
    • -
    • Karl Dunne
    • -
    • Karl Moos
    • -
    • Keith Muggleton
    • -
    • Ken Lee
    • -
    • Kenneth Younger III
    • -
    • Kenny Hui
    • -
    • KeonWoo PARK
    • -
    • Kevin Bajohr
    • -
    • Kevin Schwartz
    • -
    • Kevin Sherwood
    • -
    • Kiera Kujisawa
    • -
    • Kiran Schuler
    • -
    • Koloman
    • -
    • Konrad Neitzel
    • -
    • Krzysztof Żelaśkiewicz
    • -
    • Lance Ward
    • -
    • Larry Meaney
    • -
    • Lars
    • -
    • Lars Reinhardt
    • -
    • Lee Wilkinson
    • -
    • LeeNX
    • -
    • Leon Siegl
    • -
    • Leonard Feineis
    • -
    • Lewis Wild
    • -
    • Liran
    • -
    • Liviu Dimitriu
    • -
    • Lizardo Hernandez
    • -
    • LoCascio
    • -
    • Lordbob75
    • -
    • Lothar Schweikle-Droll
    • -
    • Louis Müller
    • -
    • LSDTripp
    • -
    • Ľubor Slušný
    • -
    • Luca Di Diomede
    • -
    • Lucio De Carli
    • -
    • Luiz Bizzio
    • -
    • Lukas Bischof
    • -
    • Lukas Kammerer
    • -
    • Lukas Söder
    • -
    • Maksim Terehin
    • -
    • Malcolm Cameron
    • -
    • Manfred Radeschnig
    • -
    • Marc Khouri
    • -
    • Marcin Wilk
    • -
    • Marcio Zimbres
    • -
    • Marco Rossi
    • -
    • Marcos Wolf
    • -
    • Marek Marczykowski-Górecki
    • -
    • Marius
    • -
    • Mar. Balske
    • -
    • Mark Farrell
    • -
    • Mark Gilbert
    • -
    • Mark Knam
    • -
    • Mark Robinson
    • -
    • Markrosoft
    • -
    • Markus Halm
    • -
    • Markus Schicker
    • -
    • Markus Sobczack
    • -
    • Marshall Bjerke
    • -
    • Marten Hermans
    • -
    • Martin Gasser
    • -
    • Martin Hofbauer
    • -
    • Martin Raine
    • -
    • Martin Suelmann
    • -
    • Martin Wilhelmi
    • -
    • Marvin Honderboom
    • -
    • Mateusz Grabowski
    • -
    • Mathias Uhl
    • -
    • Matt Kane
    • -
    • Matthew Cameron
    • -
    • Mauricio Allende
    • -
    • Max Evans
    • -
    • Mecky
    • -
    • Mehmet Aydoğdu
    • -
    • Michael Bartholomew
    • -
    • Michael Bell
    • -
    • Michael Bombe
    • -
    • Michael Collins
    • -
    • Michael Copeland
    • -
    • Michael Ho
    • -
    • Michael Kovacs
    • -
    • Michael Lynch
    • -
    • Michael Pennington
    • -
    • Michael Sage
    • -
    • Michael Stella
    • -
    • Michael Thalmann
    • -
    • Michael Wu
    • -
    • MichaelZ
    • -
    • Michel Bissonnette
    • -
    • Mikael Wikström
    • -
    • Mike Mason
    • -
    • Mikhael Mariano
    • -
    • Milan Burda
    • -
    • Milan Múčka
    • -
    • Miles Davis
    • -
    • Minh Tang
    • -
    • Moez Tharani
    • -
    • Morgan Helton
    • -
    • Myron Weber
    • -
    • Murad Khasawneh
    • -
    • N Patel
    • -
    • Nathaniel Griswold
    • -
    • Nelson Lee
    • -
    • nezu
    • -
    • Nicholas Jeppson
    • -
    • Nicholas Kopas
    • -
    • Nicholas Walczak
    • -
    • Nick Leffler
    • -
    • Nick Roethemeier
    • -
    • Nico Baumgartner
    • -
    • Nicolai Kragh-Hansen
    • -
    • Nicolas Christener
    • -
    • Nigel Smith
    • -
    • Nihal Fernando
    • -
    • Nils Orbat
    • -
    • Nis Wechselberg
    • -
    • Nithin Philips
    • -
    • Nod Swal
    • -
    • Nolan Haynes
    • -
    • Noxigen LLC
    • -
    • nubbn
    • -
    • nybble
    • -
    • Oh Be
    • -
    • Oliver Schwarz
    • -
    • Oliver Zimmer
    • -
    • Omar El-Domeiri
    • -
    • Omar Siam
    • -
    • Oscar
    • -
    • Patrick
    • -
    • Patrick Fortin-Ducharme
    • -
    • Patrick McDowell
    • -
    • Patrick Wagstrom
    • -
    • Paul Bishop
    • -
    • Paul De La Rosa
    • -
    • Paul Pietkiewicz
    • -
    • Paul Tan
    • -
    • Pawel Trofimiuk
    • -
    • Peder Madsen
    • -
    • Peter
    • -
    • Peter Drayton
    • -
    • Peter Farrelly
    • -
    • Peter Okelmann
    • -
    • Petra Lohmann
    • -
    • Petri Heiskanen
    • -
    • Phil Wu
    • -
    • Philip Edwards
    • -
    • Philip Merricks
    • -
    • Pierre Brassart
    • -
    • Pierre Peine
    • -
    • posicat
    • -
    • pozitron03
    • -
    • Przemysław Szypowicz
    • -
    • P_Dmitrij
    • -
    • Qteal
    • -
    • Quattro Uno
    • -
    • Quentin Peten
    • -
    • Ralph Borchers
    • -
    • Ranc1d
    • -
    • Randall D Bilbrey
    • -
    • RandomJerk
    • -
    • Raphael Schitz
    • -
    • Ref Chowdhury
    • -
    • René Rathenau
    • -
    • ReysDad
    • -
    • Ricardo Marques
    • -
    • Richard
    • -
    • Richard Bernarts
    • -
    • Richard Fancher
    • -
    • Richard Freemantle
    • -
    • Richard Michael
    • -
    • Rico Cantrell
    • -
    • Rob
    • -
    • Rob Holden
    • -
    • Rob Tongue
    • -
    • Robert Klauco
    • -
    • Robert Weemhoff
    • -
    • Robin Gfatter
    • -
    • Rodion DENISYUK
    • -
    • Rohit Priyadarshi
    • -
    • Rolfs 3D UG
    • -
    • Ronald LeBaron
    • -
    • Ronald Wells
    • -
    • Ronny Haldorsen
    • -
    • rotx
    • -
    • Rufo Sanchez
    • -
    • Russell Scott
    • -
    • Ryan
    • -
    • Ryan Peacock
    • -
    • Samed Ozoglu
    • -
    • Sameul Davies
    • -
    • Samuel Cote
    • -
    • Samuel Vetsch
    • -
    • Samuel Walker
    • -
    • Sarah Foster
    • -
    • Sarten X
    • -
    • Satish Alwani
    • -
    • Scott
    • -
    • Scott Gagon
    • -
    • Scott Spicola
    • -
    • Scott Tusing
    • -
    • Scott Worthington
    • -
    • Scuba
    • -
    • Sean
    • -
    • Sean Akers
    • -
    • Sean c Rickard
    • -
    • SEAT
    • -
    • Sebastian
    • -
    • Seonwoo Lee
    • -
    • Sergey Lukjanov
    • -
    • Seth Jennings
    • -
    • Shane Selling
    • -
    • Shawn Butts
    • -
    • Sheran Gunasekera
    • -
    • Shichun Chen
    • -
    • Shin Guey Wong
    • -
    • Simon Evans
    • -
    • Simon Sundgaard
    • -
    • Simplistic Realities
    • -
    • Sirmo
    • -
    • Snowy Maslov
    • -
    • Solve Technology
    • -
    • srepac
    • -
    • Stefan Bautz
    • -
    • Stefan Müller
    • -
    • Stefan Stemmer
    • -
    • Stefan Vaillant
    • -
    • Stephan Schmidt
    • -
    • Stephen
    • -
    • Stephen Hocking
    • -
    • Steve Jones
    • -
    • Steve Kerr
    • -
    • Steve Ovens
    • -
    • Steve Stringham
    • -
    • Steven Richter
    • -
    • Stratagem Solutions Ltd
    • -
    • Sven Breckler
    • -
    • sudo34
    • -
    • SuperHiTech
    • -
    • Tango_Echo_Alpha
    • -
    • Tarlak Desaydrone
    • -
    • TechBear
    • -
    • techlobo
    • -
    • Ted
    • -
    • Tejun Heo
    • -
    • TheSnowedOne
    • -
    • TheTechGiant
    • -
    • Thomas Charisoulis
    • -
    • Thomas Gitlin
    • -
    • Thomas Hagenmaier
    • -
    • Thomas Hedberg Jensen
    • -
    • Thomas Price
    • -
    • Thomas Søfteland
    • -
    • Tim Lenz
    • -
    • Tim Wilkinson
    • -
    • Timo Brinkmann
    • -
    • Timothee Besset
    • -
    • TitomusPrime
    • -
    • Tobias Schafferhans
    • -
    • Tom Lawson
    • -
    • Tom York
    • -
    • Tomas Kuchta
    • -
    • Tomáš hrubý
    • -
    • Torsten Droste
    • -
    • Torsten Knoll
    • -
    • Tracy Fitch
    • -
    • Tristan Schoening
    • -
    • Truman Kilen
    • -
    • turbochris
    • -
    • tutanak
    • -
    • Tyler
    • -
    • Udo Schroeter
    • -
    • Uli Fahrer
    • -
    • Vasily Lazarev
    • -
    • Venmo
    • -
    • Vidru Eduard
    • -
    • Vicente Salvador Cubedo
    • -
    • Viktor Aschenbrenner
    • -
    • Viktor Ekmark
    • -
    • Vincent Chov
    • -
    • Vlad Sterescu
    • -
    • Volker Gropp
    • -
    • Walli
    • -
    • Walter_Ego
    • -
    • William Wenzel
    • -
    • Will Froning
    • -
    • William Hooper
    • -
    • William Perrin
    • -
    • William Stearns
    • -
    • Woojin Son
    • -
    • xMdb
    • -
    • Yanko Kaneti
    • -
    • Yaroslav Kulikovskikh
    • -
    • Yethal
    • -
    • Yevgeniy Kuksenko
    • -
    • Yew Kay Yan
    • -
    • Yigal Dar
    • -
    • Yogi
    • -
    • YURI LEE
    • -
    • Yurii Ostapchuk
    • -
    • Zeljko
    • -
    • zgen
    • -
    • Zoltan Magyari
    • -
    • Zsombor Vari
    • -

    -

    PiKVM Project  |  Documentation  |  One-KVM Project  |  One-KVM Documentation

    +

    One-KVM Project  |  One-KVM Documentation  |  PiKVM Project  |  Documentation

    @@ -3061,7 +2366,7 @@ \ No newline at end of file diff --git a/web/kvm/index.pug b/web/kvm/index.pug index 28307828..bb42fa1b 100644 --- a/web/kvm/index.pug +++ b/web/kvm/index.pug @@ -25,10 +25,6 @@ block body |   |   span(id="kvmd-version-streamer" title="Streamer version") li(class="right") - a(target="_blank" href="https://pikvm.org" i18n="index_text_10") PiKVM Project - |   |   - a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") Documentation - |   |   a(target="_blank" href="https://github.com/mofeng-git/One-KVM" i18n="index_text_12") One-KVM Project |   |   a(target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13") One-KVM Documentation diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug index 9bdf153e..33740cfb 100644 --- a/web/kvm/navbar-system.pug +++ b/web/kvm/navbar-system.pug @@ -2,7 +2,6 @@ li(id="system-dropdown" class="right") a(class="menu-button" href="#") +navbar_led("link-led", "led-link") +navbar_led("stream-led", "led-video") - +navbar_led("stream-led", "led-video") +navbar_led("hid-keyboard-led", "led-hid-keyboard") +navbar_led("hid-mouse-led", "led-hid-mouse") span(i18n="kvm_text3") System @@ -50,12 +49,12 @@ li(id="system-dropdown" class="right") td(i18n="kvm_text14") Video #[a(target="_blank" href="https://docs.pikvm.org/webrtc") mode]: td div(class="radio-box") - input(type="radio" id="stream-mode-radio-janus" name="stream-mode-radio" value="janus") - label(for="stream-mode-radio-janus") WebRTC - input(type="radio" id="stream-mode-radio-media" name="stream-mode-radio" value="media") - label(for="stream-mode-radio-media") H.264 input(checked type="radio" id="stream-mode-radio-mjpeg" name="stream-mode-radio" value="mjpeg") - label(for="stream-mode-radio-mjpeg") MJPEG + label(for="stream-mode-radio-mjpeg") Legacy
    MJPEG + input(type="radio" id="stream-mode-radio-media" name="stream-mode-radio" value="media") + label(for="stream-mode-radio-media") Direct
    H.264 + input(type="radio" id="stream-mode-radio-janus" name="stream-mode-radio" value="janus") + label(for="stream-mode-radio-janus") WebRTC
    H.264 tr(id="stream-orient" class="feature-disabled") td(i18n="kvm_text17") Orientation: td @@ -137,7 +136,7 @@ li(id="system-dropdown" class="right") +menu_switch_notable("page-full-tab-stream-switch", "Expand for the entire tab by default", true, false,"page-full-tab-stream-switch") table(class="kv") tr - +menu_switch_notable("hid-keyboard-bad-link-switch", "Bad link mode (release keys immediately)", true, false) + +menu_switch_notable("hid-keyboard-bad-link-switch", "Bad link mode (release keys immediately)", true, false,"hid-keyboard-bad-link-switch") tr(id="hid-connect" class="feature-disabled") +menu_switch_notable("hid-connect-switch", "Connect HID to Server", true, true, "hid-connect-switch") tr(id="hid-jiggler" class="feature-disabled") diff --git a/web/kvm/window-about.pug b/web/kvm/window-about.pug index 8c1de55b..7565ff79 100644 --- a/web/kvm/window-about.pug +++ b/web/kvm/window-about.pug @@ -49,651 +49,12 @@ div(id="about-window" class="window") | // If you also want to support this project,#[br] | // you can donate on #[a(target="_blank" href="https://www.patreon.com/pikvm") Patreon] | or #[a(target="_blank" href="https://paypal.me/pikvm") Paypal]. - ul - li A. Isenring - li Aaron Graubert - li Aaron Heise - li Aaron Stein - li Accalia - li Adam Goodbar - li Adam S - li Adam Stuart - li AdamBomb - li adipisicing - li Adrian Basham - li Adrian Popescu - li Ahmed Syed - li Alberto Bassi - li alejandro - li Aleksei Brusianskii - li Alessio Curri - li Alex T - li Alex Z - li Alexander Karmanov - li Alexander Lahuerta - li Alexander Martin - li Alexander Pankov - li Alexandre Jablonski - li Alexey Kamenskiy - li alm0241 - li Alok Anand - li Alucard - li Ananthaneshan Elampoornan - li Andreas Grundler - li Andreas Marufke - li Andreas Schmid - li Andrew Brant - li Andrew Melton - li Andrew Reusch - li Andrew Ruan - li Andrzej V - li Andy - li Andy Keys - li Anish Patel - li Anix - li Anonymous - li Anthony Junk - li Anton Kovalenko - li Armen - li Aron Green - li Aron Perelman - li Artem Simonov - li Arthur Mayer - li Arthur Woimbée - li Ashlesh Chaudhari - li Asim Shakour - li Augusto Becciu - li AVS Computer - li awkspace - li Badal Patel - li baddog - li Bao Tin Hoang - li Bean Co. - li Bela Bargel - li Belf Igor - li Ben Gordon - li Ben Scott - li Benedikt Heine - li Benedikt Meier - li Benjamin Frewert - li Benjamin Melancon - li Benjamin Schwartz - li Benjamin Stegmann - li Benni Stauder - li Bernhard Fitzke - li Beu - li bikmaek - li bitjoe - li Bits and Bytes Computers LLC - li Bjoern Petsch - li Blair Hasler - li Blindside - li Blue Frog LLC - li Bootstrapper - Programmierung erklärt - li Bosco - li Bradford King - li Brainspore Networks - li Branden Shaulis - li Brandon Daniels - li Brian - li Brian Moses - li Brian T Mulcahy - li Brian Vecchiarelli - li Brian White - li brodonalds - li Bruno Gomes - li Bryan Adams - li Bryan Montgomery - li Buzzer - li C P ELSE - li Calanish - li Cameron Hatcher - li Cameron Tacklind - li Carl Mercier - li Carl-Fredrik Johansson - li Carlos Eduardo Porter Herrera - li Carlos Garcia - li Carlos Manuel Torres - li cbad536 - li César Nascimento - li CHINATERA LIMITED - li Chris Blackmon - li Chris Burton - li Chris Campbell - li Chris Jackson - li Chris Lewis - li Chris Rizio - li Christi King - li Christian Schlögl - li Christian Svensson - li Christof Maluck - li Christoph Dette - li Christoffer Lund - li Christopher Bulla - li Christopher Gelatt - li Christopher Hearn - li Christopher Mandlbaur - li Christopher Mendoza - li Christopher Simms - li Chucktastic - li Cihan VURAL - li clauskj3r - li Clifford Coleman - li Clinton Lee Taylor - li Cole Imhoff - li Colin Goodman - li Corey Layton - li Corey Lista - li Craig Keenan - li Crossfactor - li Cruzzer - li ctag - li Curt Sammer - li CyB0rgg - li DeMentor - li Desmond Whitt - li Daegara - li DailyAneurism - li Damon Meledones - li Dan Berkowitz - li Dan Brakeley - li Daniel Bowder - li Daniel Cabrera - li Daniel Davila - li Danilo Saft - li Danne - li Dariusz Techmański - li David - li David Brausewetter - li David Davis - li David Godibadze - li David Howell - li David Irvine - li David Klinkman - li David Niemann - li David Shay - li David Ye - li David York - li Denis - li Denis Andreev - li Denis Yatsenko - li Dennis Becker - li Dennis Joslin - li Dennis Lomet - li Derek Jarvis - li Derek Yap - li Didrik - li digitalbaconbits - li Dimitrij Jedich - li dixon wong - li dizztrukshin - li Dmitry Shilov - li DogeLabs - li Dominic Phoon - li Dominik Klonowski - li Donald Hays - li Edmon Abdul Nur - li Edward Wang - li Egan Ford - li Elani Ferri - li Elliot Woo - li Entt - li Eric Phenix - li Ethan Shold - li Eugene Sukhodolin - li ewook - li eye-catcher.com - li Fabian Druschke - li Fabiano Sidler - li Far Pin Solutions, LLC - li Felyx Gabryel - li Fergus McKay - li Finn Ebenritter - li floppy - li fo0bar - li Foad Yousef - li Foamy - li Foli Ayivoh - li Folkert Weistra - li Francisco Pavon - li Frank - li Frank Sander - li Frederick Czajka - li Fredrik Idréus - li Garrett Dangerfield - li Ge Men - li Geekworm - li Genkinger Andreas - li Geijer - li Geoffrey Wright - li George Becker - li Georgy Brodsky - li Gerald - li Gerardus Vernimmen - li Gernot Neuschröer - li Giovanni Fulco - li GK - li Glen Dragon - li Greg Winterstein - li Gregory Smith - li Gregory Treantos - li grewil - li Grey Cynic - li Guenter Honisch - li Guido Bernacchi - li Gustin Johnson - li György Tamás Vizi - li Haiberg GmbH - li Haven Zheng - li Heibunny - li Heikki Tiittanen - li Helio Leonardo Pinheiro e Mota - li Henrik Ählström - li Henry Hood - li HimKo - li HouseFPV - li Howard Simons - li HyunohRyu - li Icculus - li iks - li INFO TRX INC - li Invader Monks - li Ioannis Karageorgos - li Isaac - li IT Lifesaver - li Ivan Ganev - li Ivan Josiah Lapis - li Ivan Shapovalov - li iwbjhbweriuhf - li J - li J L - li Jaanus - li Jackson Wyatt - li Jacob Karaffa - li Jacob Morgan - li James Cadd - li James Cobb - li James Edwards - li James Kocher - li James Mayhugh - li James Noonan - li James Ye - li Jamie Murphy - li Jamie Scott - li Jan Niehusmann - li Jannick Oursin - li Jari Hiltunen - li Jason Crossley - li Jason Downey - li Jason Toland - li Jasper Backer - li Jay Davis - li Jay Isaacs - li Jazereel Goh - li Jean-Daniel Croteau - li Jean-Philippe Guilbault - li Jeff - li Jeff Bowman - li Jeff Urlwin - li Jennifer Herting - li Jennifer Rowlett - li Jeremy Abel - li Jeremy Combs - li Jeremy Hines - li Jerremy Holland - li Jerry Nall - li Jerry Y. Chen - li Jim Bailey - li Jim Harbin - li Jimmy Burgett - li Jimmy Stanley - li Joachim Bruening - li Joe Hanson - li Joe Hinteregger - li Joe Ventura - li Joel Jacobs - li Johannes Heigermose - li John Andersen - li John Copeland - li John F Glenn - li John Holmes - li John Kelley - li John McGovern - li Johnny Henson - li Jon Ferguy - li Jon-Eric - li Joni Ruuskanen - li Jonas Fischer - li Jonathan Slenders - li Jonathan Vaughn - li Joost Backer - li Jordan Blake - li Jordi Pakey-Rodriguez - li Joris van Embden - li Joseph Swift - li Josh Nethery - li Josh Ricker - li Josh VanDeraa - li Joshua Futterer - li Jozef Riha - li Jörgen Fredriksson - li Julian Forero - li Julian Schneider - li Julien Angelier - li Justin - li Justin Waters - li Kai Hadler - li Kamil Chyba - li Kari Matti Korpi - li Karl Dunne - li Karl Moos - li Keith Muggleton - li Ken Lee - li Kenneth Younger III - li Kenny Hui - li KeonWoo PARK - li Kevin Bajohr - li Kevin Schwartz - li Kevin Sherwood - li Kiera Kujisawa - li Kiran Schuler - li Koloman - li Konrad Neitzel - li Krzysztof Żelaśkiewicz - li Lance Ward - li Larry Meaney - li Lars - li Lars Reinhardt - li Lee Wilkinson - li LeeNX - li Leon Siegl - li Leonard Feineis - li Lewis Wild - li Liran - li Liviu Dimitriu - li Lizardo Hernandez - li LoCascio - li Lordbob75 - li Lothar Schweikle-Droll - li Louis Müller - li LSDTripp - li Ľubor Slušný - li Luca Di Diomede - li Lucio De Carli - li Luiz Bizzio - li Lukas Bischof - li Lukas Kammerer - li Lukas Söder - li Maksim Terehin - li Malcolm Cameron - li Manfred Radeschnig - li Marc Khouri - li Marcin Wilk - li Marcio Zimbres - li Marco Rossi - li Marcos Wolf - li Marek Marczykowski-Górecki - li Marius - li Mar. Balske - li Mark Farrell - li Mark Gilbert - li Mark Knam - li Mark Robinson - li Markrosoft - li Markus Halm - li Markus Schicker - li Markus Sobczack - li Marshall Bjerke - li Marten Hermans - li Martin Gasser - li Martin Hofbauer - li Martin Raine - li Martin Suelmann - li Martin Wilhelmi - li Marvin Honderboom - li Mateusz Grabowski - li Mathias Uhl - li Matt Kane - li Matthew Cameron - li Mauricio Allende - li Max Evans - li Mecky - li Mehmet Aydoğdu - li Michael Bartholomew - li Michael Bell - li Michael Bombe - li Michael Collins - li Michael Copeland - li Michael Ho - li Michael Kovacs - li Michael Lynch - li Michael Pennington - li Michael Sage - li Michael Stella - li Michael Thalmann - li Michael Wu - li MichaelZ - li Michel Bissonnette - li Mikael Wikström - li Mike Mason - li Mikhael Mariano - li Milan Burda - li Milan Múčka - li Miles Davis - li Minh Tang - li Moez Tharani - li Morgan Helton - li Myron Weber - li Murad Khasawneh - li N Patel - li Nathaniel Griswold - li Nelson Lee - li nezu - li Nicholas Jeppson - li Nicholas Kopas - li Nicholas Walczak - li Nick Leffler - li Nick Roethemeier - li Nico Baumgartner - li Nicolai Kragh-Hansen - li Nicolas Christener - li Nigel Smith - li Nihal Fernando - li Nils Orbat - li Nis Wechselberg - li Nithin Philips - li Nod Swal - li Nolan Haynes - li Noxigen LLC - li nubbn - li nybble - li Oh Be - li Oliver Schwarz - li Oliver Zimmer - li Omar El-Domeiri - li Omar Siam - li Oscar - li Patrick - li Patrick Fortin-Ducharme - li Patrick McDowell - li Patrick Wagstrom - li Paul Bishop - li Paul De La Rosa - li Paul Pietkiewicz - li Paul Tan - li Pawel Trofimiuk - li Peder Madsen - li Peter - li Peter Drayton - li Peter Farrelly - li Peter Okelmann - li Petra Lohmann - li Petri Heiskanen - li Phil Wu - li Philip Edwards - li Philip Merricks - li Pierre Brassart - li Pierre Peine - li posicat - li pozitron03 - li Przemysław Szypowicz - li P_Dmitrij - li Qteal - li Quattro Uno - li Quentin Peten - li Ralph Borchers - li Ranc1d - li Randall D Bilbrey - li RandomJerk - li Raphael Schitz - li Ref Chowdhury - li René Rathenau - li ReysDad - li Ricardo Marques - li Richard - li Richard Bernarts - li Richard Fancher - li Richard Freemantle - li Richard Michael - li Rico Cantrell - li Rob - li Rob Holden - li Rob Tongue - li Robert Klauco - li Robert Weemhoff - li Robin Gfatter - li Rodion DENISYUK - li Rohit Priyadarshi - li Rolfs 3D UG - li Ronald LeBaron - li Ronald Wells - li Ronny Haldorsen - li rotx - li Rufo Sanchez - li Russell Scott - li Ryan - li Ryan Peacock - li Samed Ozoglu - li Sameul Davies - li Samuel Cote - li Samuel Vetsch - li Samuel Walker - li Sarah Foster - li Sarten X - li Satish Alwani - li Scott - li Scott Gagon - li Scott Spicola - li Scott Tusing - li Scott Worthington - li Scuba - li Sean - li Sean Akers - li Sean c Rickard - li SEAT - li Sebastian - li Seonwoo Lee - li Sergey Lukjanov - li Seth Jennings - li Shane Selling - li Shawn Butts - li Sheran Gunasekera - li Shichun Chen - li Shin Guey Wong - li Simon Evans - li Simon Sundgaard - li Simplistic Realities - li Sirmo - li Snowy Maslov - li Solve Technology - li srepac - li Stefan Bautz - li Stefan Müller - li Stefan Stemmer - li Stefan Vaillant - li Stephan Schmidt - li Stephen - li Stephen Hocking - li Steve Jones - li Steve Kerr - li Steve Ovens - li Steve Stringham - li Steven Richter - li Stratagem Solutions Ltd - li Sven Breckler - li sudo34 - li SuperHiTech - li Tango_Echo_Alpha - li Tarlak Desaydrone - li TechBear - li techlobo - li Ted - li Tejun Heo - li TheSnowedOne - li TheTechGiant - li Thomas Charisoulis - li Thomas Gitlin - li Thomas Hagenmaier - li Thomas Hedberg Jensen - li Thomas Price - li Thomas Søfteland - li Tim Lenz - li Tim Wilkinson - li Timo Brinkmann - li Timothee Besset - li TitomusPrime - li Tobias Schafferhans - li Tom Lawson - li Tom York - li Tomas Kuchta - li Tomáš hrubý - li Torsten Droste - li Torsten Knoll - li Tracy Fitch - li Tristan Schoening - li Truman Kilen - li turbochris - li tutanak - li Tyler - li Udo Schroeter - li Uli Fahrer - li Vasily Lazarev - li Venmo - li Vidru Eduard - li Vicente Salvador Cubedo - li Viktor Aschenbrenner - li Viktor Ekmark - li Vincent Chov - li Vlad Sterescu - li Volker Gropp - li Walli - li Walter_Ego - li William Wenzel - li Will Froning - li William Hooper - li William Perrin - li William Stearns - li Woojin Son - li xMdb - li Yanko Kaneti - li Yaroslav Kulikovskikh - li Yethal - li Yevgeniy Kuksenko - li Yew Kay Yan - li Yigal Dar - li Yogi - li YURI LEE - li Yurii Ostapchuk - li Zeljko - li zgen - li Zoltan Magyari - li Zsombor Vari br p(class="text credits") - a(target="_blank" href="https://pikvm.org" i18n="index_text_10") PiKVM Project - |   |   - a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") Documentation - |   |   a(target="_blank" href="https://github.com/mofeng-git/One-KVM" i18n="index_text_12") One-KVM Project |   |   a(target="_blank" href="https://one-kvm.mofeng.run" i18n="index_text_13") One-KVM Documentation + |   |   + a(target="_blank" href="https://pikvm.org" i18n="index_text_10") PiKVM Project + |   |   + a(target="_blank" href="https://docs.pikvm.org" i18n="index_text_11") Documentation \ No newline at end of file diff --git a/web/login/index.html b/web/login/index.html index db5e853f..f5e81ae6 100644 --- a/web/login/index.html +++ b/web/login/index.html @@ -5,6 +5,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -77,7 +78,7 @@
    Select language:  - diff --git a/web/login/index.pug b/web/login/index.pug index 73557a7c..2251e9ed 100644 --- a/web/login/index.pug +++ b/web/login/index.pug @@ -25,7 +25,7 @@ block body tr td(i18n="select_language") Select language:  td - select(id="selectLanguage") + select(id="selectLanguage" style="width:100%") option(id='zh', selected="selected" i18n="chinese") Simplified Chinese option(id='en' i18n="english") English tr diff --git a/web/share/i18n/i18n_en.json b/web/share/i18n/i18n_en.json index 0086d367..d9c3c3e6 100644 --- a/web/share/i18n/i18n_en.json +++ b/web/share/i18n/i18n_en.json @@ -150,5 +150,6 @@ "msd-message-rw-enabled":"Read-write mode is enabled", "msd-message-downloads":"The image is being downloaded from One-KVM", "msd-message-another-user-uploads":"Another user uploads an image", - "page-full-tab-stream-switch":"Expand for the entire tab by default" -} \ No newline at end of file + "page-full-tab-stream-switch":"Expand for the entire tab by default", + "hid-keyboard-bad-link-switch":"Bad link mode (release keys immediately)" +} diff --git a/web/share/i18n/i18n_zh.json b/web/share/i18n/i18n_zh.json index 1a18e675..ffedd8ba 100644 --- a/web/share/i18n/i18n_zh.json +++ b/web/share/i18n/i18n_zh.json @@ -2,7 +2,7 @@ "username": "用户名: ", "password": "密码: ", "2fa_code": "2FA 验证: ", - "if_enabled": "如果有", + "if_enabled": "如果没有请留空", "login": "登录", "select_language": "选择语言: ", "chinese": "简体中文", @@ -29,7 +29,7 @@ "ipmi_text3":"不建议为 KVMD 和 IPMI 用户使用相同的密码,或者直接关闭 IPMI。如有需要可以通过 curl 直接使用 KVMD API。下面是一些示例:", "kvm_text1":"关于", - "kvm_text2":"//这些人向 PiKVM 项目捐款并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 PiKVM ,可以在 Patreon PayPal 上捐款

    //这些人向 One-KVM 项目捐款并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 One-KVM ,可以在 爱发电 上捐款。", + "kvm_text2":"//这些人向 One-KVM 项目赞助并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 One-KVM ,可以在 爱发电 上捐款。

    //这些人向 PiKVM 项目赞助并支持其工作,非常感谢他们的帮助。
    //如果您也想支持 PiKVM ,可以在 Patreon PayPal 上捐款。", "kvm_text3":"系统", "kvm_text4":"运行设置 & 工具", "kvm_text5":"终端", @@ -152,5 +152,6 @@ "msd-message-rw-enabled":"读写模式已启用", "msd-message-downloads":"正在从 One-KVM 下载镜像", "msd-message-another-user-uploads":"另一个用户正在上传镜像", - "page-full-tab-stream-switch":"自动全屏视频窗口" -} \ No newline at end of file + "page-full-tab-stream-switch":"自动全屏视频窗口", + "hid-keyboard-bad-link-switch":"故障链接模式(立即释放按键)" +} diff --git a/web/share/js/index/main.js b/web/share/js/index/main.js index 66f27b0e..ac88493f 100644 --- a/web/share/js/index/main.js +++ b/web/share/js/index/main.js @@ -82,10 +82,10 @@ function __loadKvmdInfo() { if (info.meta !== null && info.meta.server && info.meta.server.host) { $("kvmd-meta-server-host").innerHTML = info.meta.server.host; - document.title = `PiKVM Index: ${info.meta.server.host}`; + document.title = `One-KVM Index: ${info.meta.server.host}`; } else { $("kvmd-meta-server-host").innerHTML = ""; - document.title = "PiKVM Index"; + document.title = "One-KVM Index"; } } else if (http.status === 401 || http.status === 403) { document.location.href = "/login"; diff --git a/web/share/js/kvm/main.js b/web/share/js/kvm/main.js index c71e7fd6..7d8d2215 100644 --- a/web/share/js/kvm/main.js +++ b/web/share/js/kvm/main.js @@ -3,6 +3,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -35,7 +36,7 @@ export function main() { tools.storage.bindSimpleSwitch($("page-close-ask-switch"), "page.close.ask", true, function(value) { if (value) { window.onbeforeunload = function(event) { - let text = "Are you sure you want to close PiKVM session?"; + let text = "Are you sure you want to close One-KVM session?"; if (event) { event.returnValue = text; } diff --git a/web/share/js/kvm/session.js b/web/share/js/kvm/session.js index fcf20ded..bd6716d9 100644 --- a/web/share/js/kvm/session.js +++ b/web/share/js/kvm/session.js @@ -3,6 +3,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -84,10 +85,10 @@ export function Session() { if (state.server && state.server.host) { $("kvmd-meta-server-host").innerText = `Server: ${state.server.host}`; - document.title = `PiKVM Session: ${state.server.host}`; + document.title = `One-KVM Session: ${state.server.host}`; } else { $("kvmd-meta-server-host").innerText = ""; - document.title = "PiKVM Session"; + document.title = "One-KVM Session"; } if (state.tips && state.tips.left) { diff --git a/web/share/js/kvm/stream.js b/web/share/js/kvm/stream.js index 8acc6394..95ab69c4 100644 --- a/web/share/js/kvm/stream.js +++ b/web/share/js/kvm/stream.js @@ -117,6 +117,11 @@ export function Streamer() { //hidden stream-record-stop-button document.getElementById('stream-record-stop-button').disabled = true; + + // 修改这里:设置默认模式为 mjpeg + let defaultMode = "mjpeg"; + let mode = tools.storage.get("stream.mode", defaultMode); + tools.radio.clickValue("stream-mode-radio", mode); }; /************************************************************************/ @@ -225,7 +230,7 @@ export function Streamer() { tools.feature.setEnabled($("stream-mic"), false); } - let mode = tools.storage.get("stream.mode", "janus"); + let mode = tools.storage.get("stream.mode", "mjpeg"); // 这里也改为默认 mjpeg if (mode === "janus" && !has_janus) { mode = "media"; } @@ -306,21 +311,25 @@ export function Streamer() { mode = __streamer.getMode(); } __streamer.stopStream(); - if (mode === "janus") { + if (mode === "mjpeg") { + // For mjpeg mode, create an instance of MjpegStreamer + __streamer = new MjpegStreamer(__setActive, __setInactive, __setInfo); + tools.feature.setEnabled($("stream-orient"), false); + tools.feature.setEnabled($("stream-audio"), false); // Enabling in stream_janus.js + tools.feature.setEnabled($("stream-mic"), false); // Ditto + } else if (mode === "media") { + // For media mode, create an instance of MediaStreamer + __streamer = new MediaStreamer(__setActive, __setInactive, __setInfo); + tools.feature.setEnabled($("stream-orient"), false); + tools.feature.setEnabled($("stream-audio"), false); // Assuming this should be disabled for MediaStreamer as well + tools.feature.setEnabled($("stream-mic"), false); // Ditto + } else { // janus + // For janus mode, create an instance of JanusStreamer with specific settings __streamer = new JanusStreamer(__setActive, __setInactive, __setInfo, tools.storage.getInt("stream.orient", 0), !$("stream-video").muted, $("stream-mic-switch").checked); // Firefox doesn't support RTP orientation: // - https://bugzilla.mozilla.org/show_bug.cgi?id=1316448 tools.feature.setEnabled($("stream-orient"), !tools.browser.is_firefox); - } else { - if (mode === "media") { - __streamer = new MediaStreamer(__setActive, __setInactive, __setInfo); - } else { // mjpeg - __streamer = new MjpegStreamer(__setActive, __setInactive, __setInfo); - } - tools.feature.setEnabled($("stream-orient"), false); - tools.feature.setEnabled($("stream-audio"), false); // Enabling in stream_janus.js - tools.feature.setEnabled($("stream-mic"), false); // Ditto } if (wm.isWindowVisible($("stream-window"))) { __streamer.ensureStream((__state && __state.streamer !== undefined) ? __state.streamer : null); @@ -369,7 +378,7 @@ export function Streamer() { if (ok) { stream_now_fps = tools.slider.getValue($("stream-desired-fps-slider")); let recordedBlobs = []; - //"mjpeg" or "janus" + //"mjpeg" or "janus" or "media" let stream_type = document.querySelector('input[name="stream-mode-radio"]:checked').value; if ( stream_type == "mjpeg"){ @@ -378,9 +387,13 @@ export function Streamer() { var ctx = stream_mjpeg_canvas.getContext('2d'); stream_mjpeg_canvas.width = stream_mjpeg_img.width; stream_mjpeg_canvas.height = stream_mjpeg_img.height; - const stream = stream_mjpeg_canvas.captureStream(stream_now_fps); // Capture FPS + const stream = stream_mjpeg_canvas.captureStream(stream_now_fps); mediaRecorder = new MediaRecorder(stream); - }else{ + }else if(stream_type == "media"){ + const stream_canvas = document.getElementById("stream-canvas") + stream_canvas.captureStream = stream_canvas.captureStream || stream_canvas.mozCaptureStream; + mediaRecorder = new MediaRecorder(stream_canvas.captureStream(stream_now_fps)); + }else if(stream_type == "janus"){ const stream = document.getElementById("stream-video") stream.captureStream = stream.captureStream || stream.mozCaptureStream; mediaRecorder = new MediaRecorder(stream.captureStream()); diff --git a/web/vnc/index.html b/web/vnc/index.html index 618a5757..fbb5f414 100644 --- a/web/vnc/index.html +++ b/web/vnc/index.html @@ -5,6 +5,7 @@ # KVMD - The main PiKVM daemon. # # # # Copyright (C) 2018-2024 Maxim Devaev # +# Copyright (C) 2023-2025 SilentWind # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by #