diff --git a/.all-contributorsrc b/.all-contributorsrc index c0d413110a..22a1f896dd 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -920,6 +920,33 @@ "contributions": [ "doc" ] + }, + { + "login": "daniel347x", + "name": "Dan Nissenbaum", + "avatar_url": "https://avatars.githubusercontent.com/u/309746?v=4", + "profile": "https://github.com/daniel347x", + "contributions": [ + "financial" + ] + }, + { + "login": "DunklerPhoenix", + "name": "RogueThorn", + "avatar_url": "https://avatars.githubusercontent.com/u/1261305?v=4", + "profile": "https://github.com/DunklerPhoenix", + "contributions": [ + "financial" + ] + }, + { + "login": "spenserblack", + "name": "Spenser Black", + "avatar_url": "https://avatars.githubusercontent.com/u/8546709?v=4", + "profile": "http://spenserblack.github.io", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..1cc52a73d9 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,39 @@ +root = true + +[*] +end_of_line = LF +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.sln] +indent_style = tab +# TODO Determine if there is a preferred tab width for this file type + +# Programming/Scripts +[*.{js,ts}] +indent_style = space +indent_size = 4 + +[*.cpp] +indent_style = tab +# TODO Determine if there is a preferred tab width for this file type + +# Markup +[*.pug] +indent_style = space +indent_size = 4 + +# Stylesheets +[*.scss] +indent_style = space +indent_size = 4 + +# Data Files +[*.json] +indent_style = space +indent_size = 2 + +[*.{yaml,yml}] +indent_style = space +indent_size = 2 diff --git a/README.de-DE.md b/README.de-DE.md index f58c2241f4..d94683bc3c 100644 --- a/README.de-DE.md +++ b/README.de-DE.md @@ -154,136 +154,141 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.id-ID.md b/README.id-ID.md index 121944f9f7..c07aaff43c 100644 --- a/README.id-ID.md +++ b/README.id-ID.md @@ -153,136 +153,141 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.it-IT.md b/README.it-IT.md index 1232aa00cd..6faaa4e942 100644 --- a/README.it-IT.md +++ b/README.it-IT.md @@ -149,136 +149,141 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.ja-JP.md b/README.ja-JP.md index 9f36a47bf9..b43047a5e5 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -153,136 +153,141 @@ WindowsδΈŠγ§γ―γ€`Tabby.exe`γŒγ‚γ‚‹ε ΄ζ‰€γ¨εŒγ˜ε ΄ζ‰€γ«`data`フォル - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.ko-KR.md b/README.ko-KR.md index f51cdfe41c..a5126ec69c 100644 --- a/README.ko-KR.md +++ b/README.ko-KR.md @@ -143,136 +143,141 @@ Pull requests and plugins are welcome! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.md b/README.md index ff9ea8c10b..cf370fe388 100644 --- a/README.md +++ b/README.md @@ -153,136 +153,141 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.ru-RU.md b/README.ru-RU.md index ba2e471bac..4d57ba63e0 100644 --- a/README.ru-RU.md +++ b/README.ru-RU.md @@ -149,136 +149,141 @@ Pull-запросы ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/README.zh-CN.md b/README.zh-CN.md index 3f9268ac55..ee5bfb625f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -148,136 +148,141 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Russell Myers

πŸ’»

Austin Warren

πŸ’»

Felicia Hummel

πŸ’»

Mike MacCana

⚠️ 🎨

Yacine Kanzari

πŸ’»

BBJip

πŸ’»

Futagirl

🎨

Levin Rickert

πŸ’»

OJ Kwon

πŸ’»

domain

πŸ”Œ πŸ’»

James Brumond

πŸ”Œ

Daniel Imms

πŸ’» πŸ”Œ ⚠️

Florian Bachmann

πŸ’»

Michael KΓΌhnel

πŸ’» 🎨

Tilmann Meyer

πŸ’»

PM Extra

πŸ›

Jonathan

πŸ’»

Hans Koch

πŸ’»

Dak Smyth

πŸ’»

Wang Zhi

πŸ’»

jack1142

πŸ’»

Howie Douglas

πŸ’»

Chris Kaczor

πŸ’»

Johannes Kadak

πŸ’»

LeSeulArtichaut

πŸ’»

Cyril Taylor

πŸ’»

nstefanou

πŸ’» πŸ”Œ

orin220444

πŸ’»

Gobius Dolhain

πŸ’»

Gwilherm Folliot

πŸ’»

Dmitry Pronin

πŸ’»

Jonathan Beverley

πŸ’»

Zenghai Liang

πŸ’»

Mateusz Tracz

πŸ’»

pinpin

πŸ’»

Takuro Onoda

πŸ’»

frauhottelmann

πŸ’»

Piotr Patalong

🎨

Clark Wang

πŸ’»

iamchating

πŸ’»

starxg

πŸ”Œ

Alisue

🎨

Dominic Yin

πŸ’»

Brandon Rothweiler

🎨

Logic Machine

πŸ“–

cypherbits

πŸ“–

Matthew Davidson

πŸ’»

Alexander Wiedemann

πŸ’»

μž₯보연

πŸ“–

zZ

πŸ’»

Aaron Davison

πŸ’»

Przemyslaw Kozik

🎨

Alfredo Arellano de la Fuente

πŸ’»

MH Kim

πŸ’»

Marmota

🎨

Ares Andrew

πŸ“–

George Korsnick

πŸ’΅

Artem Smirnov

πŸ’΅

Tim Kopplow

πŸ’΅

mrthock

πŸ’΅

Lukas Rottach

πŸ’΅

boonkerz

πŸ’» 🌍

Milo Ivir

🌍

JasonCubic

🎨

MaxWaldorf

πŸš‡

Michael Wizner

πŸ’»

Martin

πŸ’»

Piersandro Guerrera

πŸ“– 🌍

X-0x01

πŸ’»

Allenator

πŸ“–

Matheus Castello

πŸ’»

Jai A P

πŸ“¦

Richard Yu

πŸ’»

artu-ole

πŸ’»

Timofey Gribanov

πŸ“– 🌍

Christian Bingman

πŸ’»

zhipeng

πŸ’»

woodmeal

πŸ’»

MagicLike

πŸ“–

Hisam Fahri

πŸ’»

Liangcheng Juves

πŸ’»

Atte Timonen

πŸ’»

JoΓ£o Pinto

πŸ“–

Alan

πŸ’»

Atsushi Morimoto

πŸ’΅

Arles

πŸ’΅

six2dez

πŸ’΅

Candice

πŸ’΅

Rowen Willabus

πŸ’΅

HengY1Coding✨

πŸ’΅

Francis Gelderloos

πŸ’΅

astromasoud

πŸ’΅

Anders G. JΓΈrgensen

πŸ’΅

Dave Richardson

πŸ’΅

Thomas Peter Berntsen

πŸ’΅

Ikko Ashimine

πŸ“–

giejqf

πŸ’»

Thomas LACAZE

πŸ’»

Po Chen

πŸ’΅

Victor Chandra

πŸ“–

Dan Nissenbaum

πŸ’΅

RogueThorn

πŸ’΅

Spenser Black

πŸ’»
diff --git a/tabby-community-color-schemes/.editorconfig b/tabby-community-color-schemes/.editorconfig new file mode 100644 index 0000000000..d4db951e50 --- /dev/null +++ b/tabby-community-color-schemes/.editorconfig @@ -0,0 +1,3 @@ +[schemes/*] +indent_style = space +indent_size = 15 diff --git a/tabby-community-color-schemes/schemes/Melange Dark b/tabby-community-color-schemes/schemes/Melange Dark new file mode 100644 index 0000000000..f65dbc642b --- /dev/null +++ b/tabby-community-color-schemes/schemes/Melange Dark @@ -0,0 +1,44 @@ +! +! Melange Dark +! https://github.com/savq/melange +! +*.foreground: #ece1d7 +*.background: #2a2520 +*.cursorColor: #ece1d7 +! +! Black +*.color0: #352f2a +*.color8: #4d453e +! +! Red +*.color1 #b65c60 +*.color9 #f17c64 +! +! Green +*.color2 #78997a +*.color10 #99d59d +! +! Yellow +*.color3 #ebc06d +*.color11 #ebc06d +! +! Blue +*.color4 #9aacce +*.color12 #9aacce +! +! Magenta +*.color5 #b380b0 +*.color13 #ce9bcb +! +! Cyan +*.color6 #86a3a3 +*.color14 #88b3b2 +! +! White +*.color7 #a38d78 +*.color15 #c1a78e +! +! Bold, Italic, Underline +*.colorBD: #fff4ea +!*.colorIT: +!*.colorUL: diff --git a/tabby-core/src/api/platform.ts b/tabby-core/src/api/platform.ts index 79362cb0da..73b081ba12 100644 --- a/tabby-core/src/api/platform.ts +++ b/tabby-core/src/api/platform.ts @@ -145,7 +145,7 @@ export abstract class PlatformService { throw new Error('Not implemented') } - exec (app: string, argv: string[]): void { + async exec (app: string, argv: string[]): Promise { throw new Error('Not implemented') } diff --git a/tabby-core/src/tabContextMenu.ts b/tabby-core/src/tabContextMenu.ts index 63b785a74b..d89f126332 100644 --- a/tabby-core/src/tabContextMenu.ts +++ b/tabby-core/src/tabContextMenu.ts @@ -28,7 +28,7 @@ export class TabManagementContextMenu extends TabContextMenuItemProvider { super() } - async getItems (tab: BaseTabComponent, tabHeader?: TabHeaderComponent): Promise { + async getItems (tab: BaseTabComponent): Promise { let items: MenuItemOptions[] = [ { label: this.translate.instant('Close'), diff --git a/tabby-electron/src/services/platform.service.ts b/tabby-electron/src/services/platform.service.ts index 806a15dd89..7f655fb112 100644 --- a/tabby-electron/src/services/platform.service.ts +++ b/tabby-electron/src/services/platform.service.ts @@ -80,8 +80,8 @@ export class ElectronPlatformService extends PlatformService { return null } - exec (app: string, argv: string[]): void { - execFile(app, argv) + async exec (app: string, argv: string[]): Promise { + await execFile(app, argv) } isShellIntegrationSupported (): boolean { diff --git a/tabby-linkifier/package.json b/tabby-linkifier/package.json index 6b6dec0cf0..31ebb4b44b 100644 --- a/tabby-linkifier/package.json +++ b/tabby-linkifier/package.json @@ -17,6 +17,7 @@ "author": "Eugene Pankov", "license": "MIT", "devDependencies": { - "untildify": "^4.0.0" + "untildify": "^4.0.0", + "xterm-addon-web-links": "^0.7.0" } } diff --git a/tabby-linkifier/src/decorator.ts b/tabby-linkifier/src/decorator.ts index ffc6e520e1..2927868360 100644 --- a/tabby-linkifier/src/decorator.ts +++ b/tabby-linkifier/src/decorator.ts @@ -1,7 +1,7 @@ import { Inject, Injectable } from '@angular/core' -import { ConfigService, PlatformService, TranslateService } from 'tabby-core' -import { TerminalDecorator, BaseTerminalTabComponent } from 'tabby-terminal' - +import { ConfigService, PlatformService } from 'tabby-core' +import { TerminalDecorator, BaseTerminalTabComponent, XTermFrontend } from 'tabby-terminal' +import { WebLinksAddon } from 'xterm-addon-web-links' import { LinkHandler } from './api' @Injectable() @@ -9,55 +9,46 @@ export class LinkHighlighterDecorator extends TerminalDecorator { constructor ( private config: ConfigService, private platform: PlatformService, - private translate: TranslateService, @Inject(LinkHandler) private handlers: LinkHandler[], ) { super() } attach (tab: BaseTerminalTabComponent): void { - if (!(tab.frontend as any).xterm) { - // not hterm + if (!(tab.frontend instanceof XTermFrontend)) { + // not xterm return } + tab.frontend.xterm.options.linkHandler = { + activate: (event, uri) => { + if (!this.willHandleEvent(event)) { + return + } + this.platform.openExternal(uri) + }, + } + for (const handler of this.handlers) { const getLink = async uri => handler.convert(uri, tab) const openLink = async uri => handler.handle(await getLink(uri), tab) - ;(tab.frontend as any).xterm.registerLinkMatcher( - handler.regex, - (event: MouseEvent, uri: string) => { + const addon = new WebLinksAddon( + async (event, uri) => { if (!this.willHandleEvent(event)) { return } + if (!await handler.verify(await handler.convert(uri, tab), tab)) { + return + } openLink(uri) }, { - priority: handler.priority, - validationCallback: async (uri: string, callback: (isValid: boolean) => void) => { - callback(await handler.verify(await handler.convert(uri, tab), tab)) - }, - willLinkActivate: (event: MouseEvent, uri: string) => { - if (event.button === 2) { - this.platform.popupContextMenu([ - { - click: () => openLink(uri), - label: this.translate.instant('Open'), - }, - { - click: async () => { - this.platform.setClipboard({ text: await getLink(uri) }) - }, - label: this.translate.instant('Copy'), - }, - ]) - return false - } - return this.willHandleEvent(event) - }, - } + urlRegex: handler.regex, + }, ) + + tab.frontend.xterm.loadAddon(addon) } } diff --git a/tabby-linkifier/yarn.lock b/tabby-linkifier/yarn.lock index 92ca8cf929..48e57f8ff6 100644 --- a/tabby-linkifier/yarn.lock +++ b/tabby-linkifier/yarn.lock @@ -6,3 +6,8 @@ untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +xterm-addon-web-links@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.7.0.tgz#dceac36170605f9db10a01d716bd83ee38f65c17" + integrity sha512-6PqoqzzPwaeSq22skzbvyboDvSnYk5teUYEoKBwMYvhbkwOQkemZccjWHT5FnNA8o1aInTc4PRYAl4jjPucCKA== diff --git a/tabby-ssh/package.json b/tabby-ssh/package.json index 9683b5ef14..a3e2932ddb 100644 --- a/tabby-ssh/package.json +++ b/tabby-ssh/package.json @@ -28,8 +28,10 @@ "strip-ansi": "^7.0.0" }, "dependencies": { + "@luminati-io/socksv5": "^0.0.7", + "node-forge": "^1.3.1", "run-script-os": "^1.1.3", - "@luminati-io/socksv5": "^0.0.7" + "tmp-promise": "^3.0.3" }, "peerDependencies": { "@angular/animations": "^9.1.9", diff --git a/tabby-ssh/src/services/ssh.service.ts b/tabby-ssh/src/services/ssh.service.ts index 4b99769a03..5189a1e151 100644 --- a/tabby-ssh/src/services/ssh.service.ts +++ b/tabby-ssh/src/services/ssh.service.ts @@ -1,5 +1,9 @@ import * as shellQuote from 'shell-quote' import * as net from 'net' +import * as fs from 'fs/promises' +import * as tmp from 'tmp-promise' +import * as sshpk from 'sshpk' +import * as forge from 'node-forge' import socksv5 from '@luminati-io/socksv5' import { Duplex } from 'stream' import { Injectable } from '@angular/core' @@ -45,11 +49,18 @@ export class SSHService { return } const args = [await this.getWinSCPURI(session.profile, undefined, session.authUsername ?? undefined)] + + let tmpFile: tmp.FileResult|null = null if (session.activePrivateKey) { - args.push('/privatekey') - args.push(session.activePrivateKey) + tmpFile = await tmp.file() + const privateKey = await sshpk.parsePrivateKey(session.activePrivateKey, 'auto')/* .toString('putty') */ + const forgePrivateKey = forge.pki.decryptRsaPrivateKey(privateKey.toString('pem')) + const ppk = forge.ssh.privateKeyToPutty(forgePrivateKey) + await fs.writeFile(tmpFile.path, ppk) + args.push(`/privatekey=${tmpFile.path}`) } - this.platform.exec(path, args) + await this.platform.exec(path, args) + tmpFile?.cleanup() } } diff --git a/tabby-ssh/yarn.lock b/tabby-ssh/yarn.lock index bc0fdb4e8e..0f98010f09 100644 --- a/tabby-ssh/yarn.lock +++ b/tabby-ssh/yarn.lock @@ -156,6 +156,18 @@ getpass@^0.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -195,6 +207,18 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -212,6 +236,13 @@ pkginfo@0.3.x: resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + run-script-os@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" @@ -253,6 +284,20 @@ strip-ansi@^7.0.0: dependencies: ansi-regex "^6.0.0" +tmp-promise@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" diff --git a/tabby-terminal/package.json b/tabby-terminal/package.json index 2a6606de76..1d5aa91b67 100644 --- a/tabby-terminal/package.json +++ b/tabby-terminal/package.json @@ -26,7 +26,8 @@ "ngx-colors": "^3.0.4", "ps-node": "^0.1.6", "runes": "^0.4.2", - "xterm": "npm:@tabby-gang/xterm@^4.19.0-beta.4", + "xterm": "^5.0.0", + "xterm-addon-canvas": "^0.2.0", "xterm-addon-fit": "^0.6.0-beta.8", "xterm-addon-image": "^0.1.0", "xterm-addon-ligatures": "^0.6.0-beta.14", diff --git a/tabby-terminal/src/frontends/xtermFrontend.ts b/tabby-terminal/src/frontends/xtermFrontend.ts index 532920d6e4..72773ed641 100644 --- a/tabby-terminal/src/frontends/xtermFrontend.ts +++ b/tabby-terminal/src/frontends/xtermFrontend.ts @@ -10,6 +10,7 @@ import { WebglAddon } from 'xterm-addon-webgl' import { Unicode11Addon } from 'xterm-addon-unicode11' import { SerializeAddon } from 'xterm-addon-serialize' import { ImageAddon } from 'xterm-addon-image' +import { CanvasAddon } from 'xterm-addon-canvas' import './xterm.css' import deepEqual from 'deep-equal' import { Attributes } from 'xterm/src/common/buffer/Constants' @@ -60,9 +61,9 @@ class FlowControl { /** @hidden */ export class XTermFrontend extends Frontend { enableResizing = true + xterm: Terminal protected xtermCore: any protected enableWebGL = false - private xterm: Terminal private element?: HTMLElement private configuredFontSize = 0 private configuredLinePadding = 0 @@ -76,6 +77,7 @@ export class XTermFrontend extends Frontend { private serializeAddon = new SerializeAddon() private ligaturesAddon?: LigaturesAddon private webGLAddon?: WebglAddon + private canvasAddon?: CanvasAddon private opened = false private resizeObserver?: any private flowControl: FlowControl @@ -94,6 +96,7 @@ export class XTermFrontend extends Frontend { this.xterm = new Terminal({ allowTransparency: true, + allowProposedApi: true, overviewRulerWidth: 8, windowsMode: process.platform === 'win32', }) @@ -236,6 +239,14 @@ export class XTermFrontend extends Frontend { ).subscribe(() => { this.webGLAddon?.clearTextureAtlas() }) + } else { + this.canvasAddon = new CanvasAddon() + this.xterm.loadAddon(this.canvasAddon) + this.platformService.displayMetricsChanged$.pipe( + takeUntil(this.destroyed$), + ).subscribe(() => { + this.canvasAddon?.clearTextureAtlas() + }) } this.ready.next() @@ -275,6 +286,7 @@ export class XTermFrontend extends Frontend { destroy (): void { super.destroy() this.webGLAddon?.dispose() + this.canvasAddon?.dispose() this.xterm.dispose() } @@ -356,7 +368,6 @@ export class XTermFrontend extends Frontend { }) this.xterm.options.fontFamily = getCSSFontFamily(config) - this.xterm.options.bellStyle = config.terminal.bell this.xterm.options.cursorStyle = { beam: 'bar', }[config.terminal.cursor] || config.terminal.cursor @@ -375,7 +386,7 @@ export class XTermFrontend extends Frontend { const theme: ITheme = { foreground: config.terminal.colorScheme.foreground, - selection: config.terminal.colorScheme.selection || '#88888888', + selectionBackground: config.terminal.colorScheme.selection || '#88888888', selectionForeground: config.terminal.colorScheme.selectionForeground || undefined, background: config.terminal.background === 'colorScheme' ? config.terminal.colorScheme.background : '#00000000', cursor: config.terminal.colorScheme.cursor, @@ -472,14 +483,14 @@ export class XTermFrontend extends Frontend { if (!selection) { return '' } - if (selection.startRow === selection.endRow) { - html += this.getLineAsHTML(selection.startRow, selection.startColumn, selection.endColumn) + if (selection.start.y === selection.end.y) { + html += this.getLineAsHTML(selection.start.y, selection.start.x, selection.end.x) } else { - html += this.getLineAsHTML(selection.startRow, selection.startColumn, this.xterm.cols) - for (let y = selection.startRow + 1; y < selection.endRow; y++) { + html += this.getLineAsHTML(selection.start.y, selection.start.x, this.xterm.cols) + for (let y = selection.start.y + 1; y < selection.end.y; y++) { html += this.getLineAsHTML(y, 0, this.xterm.cols) } - html += this.getLineAsHTML(selection.endRow, 0, selection.endColumn) + html += this.getLineAsHTML(selection.end.y, 0, selection.end.x) } html += '' return html diff --git a/tabby-terminal/yarn.lock b/tabby-terminal/yarn.lock index f273f25c39..9ecab79c03 100644 --- a/tabby-terminal/yarn.lock +++ b/tabby-terminal/yarn.lock @@ -104,7 +104,7 @@ ngx-colors@^3.0.4: opentype.js@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-0.8.0.tgz#acabcfa1642fbe894a3e4d759e43ba694e02bd35" - integrity sha1-rKvPoWQvvolKPk11nkO6aU4CvTU= + integrity sha512-FQHR4oGP+a0m/f6yHoRpBOIbn/5ZWxKd4D/djHVJu8+KpBTYrJda0b7mLcgDEMWXE9xBCJm+qb0yv6FcvPjukg== dependencies: tiny-inflate "^1.0.2" @@ -157,48 +157,53 @@ xtend@^4.0.0: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +xterm-addon-canvas@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.2.0.tgz#ba0080d4071f172f94e8c0b5e6151dd7e386f1a1" + integrity sha512-b4tMT05US9Rlqv6R0XZTHsfq8MRKzwxITwpvckuod/l4lokcCokHPbgpYAytOgrzqkzWjYI+Ol8en6cMGf8ncg== + xterm-addon-fit@^0.6.0-beta.8: - version "0.6.0-beta.9" - resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.6.0-beta.9.tgz#55d550b7e8f3b90ee0781fdddf876b8502a31540" - integrity sha512-QrlwItVFiapkiJ2YL2rj2drtOvFmr8luDyV286MCrVSK4iGxSnsOdT+NcjeNig1lqYmy5FAo8iuP4FPY//NDog== + version "0.6.0" + resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.6.0.tgz#142e1ce181da48763668332593fc440349c88c34" + integrity sha512-9/7A+1KEjkFam0yxTaHfuk9LEvvTSBi0PZmEkzJqgafXPEXL9pCMAVV7rB09sX6ATRDXAdBpQhZkhKj7CGvYeg== xterm-addon-image@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.1.0.tgz#ead96aa224f5fcbfb45da2907f02368fe92985e6" - integrity sha512-xMvcEQ2rVUIXbbj5BRhznrZU24CRaMiSo8l2HH/E1FeE+G+KKduoF6mwja856/n4ekZ7K0ALZmmyDsbZODhDqQ== + version "0.1.3" + resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.1.3.tgz#20593d93b51ab3408debb31f66f8700a2e60ed2d" + integrity sha512-9J+DnI/MlanAv+gaaTcTXcqXK8fU/FYiWbaL0C5+YY2lbflpGSk7XV4K95txbix4AdV85RfIDByUm7VJZRWs8g== xterm-addon-ligatures@^0.6.0-beta.14: - version "0.6.0-beta.14" - resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.6.0-beta.14.tgz#392b8df0e32dcfc87f43b79901ec1c2abc997ae7" - integrity sha512-WeObuNFfGULKhfvbFyCccjxBk+BX6YMvG54lu40kgW5ubwpt0BcnKTQAxHvt9mSeT0lG0A5GxcbimBeRWc484Q== + version "0.6.0" + resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.6.0.tgz#c51801b0150c62ac1165654757b55c796457d195" + integrity sha512-DxiYCXXYEpnwr8li4/QhG64exjrLX1nHBfNNfrQgx5e8Z9tK2SjWKpxI6PZEy++8+YdL1F7VjWI4aKOaDt2VVw== dependencies: font-finder "^1.1.0" font-ligatures "^1.4.1" xterm-addon-search@^0.9.0-beta.18: - version "0.9.0-beta.37" - resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.9.0-beta.37.tgz#84a020f03b2cacc5afac78ca6ff2f1eb86fb6710" - integrity sha512-bfeFgKJkDYyIgqpWiV1oWYqDiTo+SHTeIPEbpOfxDr97pc3PtDF1Tyd79PrvJNfoxaV3VMUo//UEOy4D+KY9OQ== + version "0.9.0" + resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.9.0.tgz#95278ebb818cfcf882209ae75be96e0bea5d52a5" + integrity sha512-aoolI8YuHvdGw+Qjg8g2M4kst0v86GtB7WeBm4F0jNXA005/6QbWWy9eCsvnIDLJOFI5JSSrZnD6CaOkvBQYPA== xterm-addon-serialize@^0.7.0-beta.12: - version "0.7.0-beta.12" - resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.7.0-beta.12.tgz#4f845d8b1a9f9b7ae3f910455ce8c58b041babc7" - integrity sha512-b4Ug0B/RSJMux+KAcp+PXVqubVyXjN1yCQw1FOkgVYTpmd9AH/X+EcxKml5Lz8DsKmsXqfD9AlV3WpEeT+OtMw== + version "0.7.0" + resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.7.0.tgz#cc7ef78972c8425b81dd6ae0a76824ce033d1e5f" + integrity sha512-ZfZ4Zj4uTEBFnUA0exipDGZ14jfiWLCov7gIt2OwIjQEz2ey8ic5kL/cxYz5antNz8/hTSA2qZcyA6VyyQASOQ== xterm-addon-unicode11@^0.4.0-beta.3: - version "0.4.0-beta.3" - resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.3.tgz#f350184155fafd5ad0d6fbf31d13e6ca7dea1efa" - integrity sha512-FryZAVwbUjKTmwXnm1trch/2XO60F5JsDvOkZhzobV1hm10sFLVuZpFyHXiUx7TFeeFsvNP+S77LAtWoeT5z+Q== + version "0.4.0" + resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0.tgz#59a4abbb591befb69ca0c5f7c3f9fa9c1c05353e" + integrity sha512-HkUwR4gc8MKVFy2Ux8zUnjqARYpfl7dJ9na3TwRbAUbF4JlCv707m4Z07WVaDMIRUZsfZ+5LgSi+Ss7PfZqNcw== xterm-addon-webgl@^0.12.0-beta.27: - version "0.12.0-beta.36" - resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.36.tgz#460f80829a78c979a448d5b764699af3f0366ff1" - integrity sha512-sgX7OHSGZQZE5b4xtPqd/5NEcll0Z+00tnTVxKZlXf5XEENcG0tnBF4I4f+k9K3cmjE1UIUVG2yYPrqWlYCdpA== - -"xterm@npm:@tabby-gang/xterm@^4.19.0-beta.4": - version "4.19.0-beta.5" - resolved "https://registry.yarnpkg.com/@tabby-gang/xterm/-/xterm-4.19.0-beta.5.tgz#aa7a4509148a31ac4e4e55475c950f8572616899" - integrity sha512-8Vn92qMHDT2Q8TLPTFqalbwdS8ev3AmtLfPs2PRoMlJA/XzrcGUD5BNuAau5bn9lF5iEueX1gYqsJxzk5aYDbQ== + version "0.12.0" + resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0.tgz#2fba8d31890a122adafa1c2fb945482e2ae12973" + integrity sha512-3P5ihdjPnxH6Wrvqjki9UD+duoVrp1fvnO/pSpXP2F1L2GwY6TDNExgj8Yg141vMCNgQbcVqmsTLYEYZxjY92A== + +xterm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.0.0.tgz#0af50509b33d0dc62fde7a4ec17750b8e453cc5c" + integrity sha512-tmVsKzZovAYNDIaUinfz+VDclraQpPUnAME+JawosgWRMphInDded/PuY0xmU5dOhyeYZsI0nz5yd8dPYsdLTA== yallist@^4.0.0: version "4.0.0" diff --git a/web/polyfills.ts b/web/polyfills.ts index 404d34c7bb..1aa5e2b2d0 100644 --- a/web/polyfills.ts +++ b/web/polyfills.ts @@ -48,7 +48,7 @@ Tabby.registerMock('fs', { appendFile: () => null, constants: {}, }) -Tabby.registerMock('any-promise', Promise) +Tabby.registerMock('fs/promises', {}) Tabby.registerMock('tls', {}) Tabby.registerMock('module', { globalPaths: [], @@ -92,6 +92,7 @@ Tabby.registerMock('keytar', { }) Tabby.registerMock('@serialport/bindings', {}) Tabby.registerMock('@serialport/bindings-cpp', {}) +Tabby.registerMock('tmp', {}) Tabby.registerModule('net', { Socket: SocketProxy,