From 75dfd4bff15a005c543dccce21dddc91ad19c570 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 Jul 2021 13:29:51 +0800 Subject: [PATCH 01/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/setup.sh b/setup.sh index 0c64969..c2752df 100755 --- a/setup.sh +++ b/setup.sh @@ -98,6 +98,10 @@ sudo apt-get install gnome-session -y sudo apt-get install gnome-tweak-tool -y sudo apt-get install gnome-shell-extensions +#install flameshot +echo "install flameshot" +sudo apt-get install flameshot + # install gnome arc theme echo "install gnome arc theme" sudo add-apt-repository ppa:noobslab/themes -y @@ -158,10 +162,7 @@ echo "#######################################################################" echo "" -androidStudioLink="https://dl.google.com/dl/android/studio/ide-zips/2.3.3.0/android-studio-ide-162.4069837-linux.zip" -intellijIdeaLink="https://download-cf.jetbrains.com/idea/ideaIU-2017.2.5.tar.gz" -skypeLink="https://repo.skype.com/latest/skypeforlinux-64.deb" -vsCodeLink="https://az764295.vo.msecnd.net/stable/b813d12980308015bcd2b3a2f6efa5c810c33ba5/code_1.17.2-1508162334_amd64.deb" +vsCodeLink="https://az764295.vo.msecnd.net/stable/507ce72a4466fbb27b715c3722558bb15afa9f48/code_1.57.1-1623937013_amd64.deb" virtualBoxLink="http://download.virtualbox.org/virtualbox/5.2.0/virtualbox-5.2_5.2.0-118431~Ubuntu~xenial_amd64.deb" #osxArcCollectionThemeLink="https://github-production-release-asset-2e65be.s3.amazonaws.com/77880841/16a14c7c-45a6-11e7-81ac-28673f670d57?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171022%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171022T093955Z&X-Amz-Expires=300&X-Amz-Signature=98b29dcd8849047f0e774fa1dd00353c8d8c60e4927c6273aa9afba5f5e3d14b&X-Amz-SignedHeaders=host&actor_id=22359905&response-content-disposition=attachment%3B%20filename%3Dosx-arc-collection_1.4.3_amd64.deb" googleChromeLink="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" @@ -177,11 +178,6 @@ sougouName="sougou.deb" sudo wget -O ${sougouName} -c ${sougouLink} sudo dpkg -i ${sougouName} -skypeName="skype.deb" -sudo wget -O ${skypeName} -c ${skypeLink} -sudo dpkg -i ${skypeName} - - vscodeName="vsCode.deb" sudo wget -O ${vscodeName} -c ${vsCodeLink} sudo dpkg -i ${vscodeName} @@ -210,14 +206,6 @@ sudo wget -O ${genymotionName} --no-check-certificate -c ${genymotionLink} chmod +x ${genymotionName} sudo ./${genymotionName} -#install android studio -sudo wget -c ${androidStudioLink} -unzip android-studio-ide-162.4069837-linux.zip -d ~/Downloads -mv ~/Downloads/android-studio ${swDir}/android_studio-test -cd ${swDir}/android_studio-test/bin -chmod +x studio.sh -./studio.sh - #install intellij sudo wget -c ${intellijIdeaLink} tar -xvzf ideaIU-2017.2.5.tar.gz From bd26dbe3665611aff7ac4cdb7291d05e3bbe79c4 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 Jul 2021 13:30:01 +0800 Subject: [PATCH 02/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From cec2c0b458af62ef75a741db4d4e79c1171ef6ea Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 Jul 2021 13:31:43 +0800 Subject: [PATCH 03/80] Update README.md --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9bf2193..e0fc96d 100644 --- a/README.md +++ b/README.md @@ -68,20 +68,24 @@ sudo ./ setup.sh Unzip -- linux解压zip压缩文件 unrar -- 解压rar jd -- 命令行解析json工具 - kolourpaint4 --画图工具 + kolourpaint4 -- 画图工具 + flameshot -- 截图工具 ``` 9. 自动下载安装常用的软件: ``` Visual Studio Code Genymotion - Skype - Android Studio IntellijIDEA ``` #### 最后,时间仓促,目前就想到这么多,以后有什么需要的工具还会继续更新,如果大家有什么想法或者意见可以给我留言, 或者直接在Github上fork. +``` + 07.07.2021 更新日志 + 1. 快捷截图工具 +``` + ``` 23.10.2017 更新日志 1. 添加了网易云音乐 @@ -125,4 +129,4 @@ sudo ./ setup.sh > http://i.imgur.com/nZLDzzk.jpg > Github地址: -> https://github.com/SickoOrange/UbuntuAutoScript \ No newline at end of file +> https://github.com/SickoOrange/UbuntuAutoScript From 76499c86e969da9ec7fdbfb616a77a738e22fb6d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 Jul 2021 13:34:46 +0800 Subject: [PATCH 04/80] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e0fc96d..3d6b798 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,9 @@ sudo ./ setup.sh 07.07.2021 更新日志 1. 快捷截图工具 ``` +![image](https://user-images.githubusercontent.com/21984530/124705299-06297c00-df28-11eb-8aef-4f9636b7d69f.png) +![image](https://user-images.githubusercontent.com/21984530/124705331-14779800-df28-11eb-95e4-5adc341c26a0.png) + ``` 23.10.2017 更新日志 From 101c6f1b60e6dd4d4fa75952b0464e3cf34e2765 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 10 Aug 2023 16:34:05 +0800 Subject: [PATCH 05/80] Update setup.sh --- setup.sh | 55 +++++++++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/setup.sh b/setup.sh index c2752df..ad05415 100755 --- a/setup.sh +++ b/setup.sh @@ -123,11 +123,11 @@ cd dash-to-dock make make install -# install nodejs and npm -echo "configure nodejs and npm environment" -curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -sudo apt-get install -y nodejs -sudo apt-get install -y build-essential +# # install nodejs and npm +# echo "configure nodejs and npm environment" +# curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - +# sudo apt-get install -y nodejs +# sudo apt-get install -y build-essential #install markdown editor tepora echo "install markdown editor Typora" @@ -139,19 +139,19 @@ sudo apt-get install typora # install oracle jdk -echo "ready configure oracle java jdk" -jdkContainer="jdk.tar.gz" -cd ~/Downloads -sudo wget -O ${jdkContainer} --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz -tar -xvzf ${jdkContainer} -sudo mv ~/Downloads/jdk1.8.0_151 ${swDir}/jdk +# echo "ready configure oracle java jdk" +# jdkContainer="jdk.tar.gz" +# cd ~/Downloads +# sudo wget -O ${jdkContainer} --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz +# tar -xvzf ${jdkContainer} +# sudo mv ~/Downloads/jdk1.8.0_151 ${swDir}/jdk -sudo echo "export JAVA_HOME=${swDir}/jdk" >> /etc/profile -sudo echo "export JRE_HOME=\${JAVA_HOME}/jre" >> /etc/profile -sudo echo "export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib" >> /etc/profile -sudo echo "export PATH=\${JAVA_HOME}/bin:\$PATH" >> /etc/profile -source /etc/profile -echo "finish configure oracle java jdk" +# sudo echo "export JAVA_HOME=${swDir}/jdk" >> /etc/profile +# sudo echo "export JRE_HOME=\${JAVA_HOME}/jre" >> /etc/profile +# sudo echo "export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib" >> /etc/profile +# sudo echo "export PATH=\${JAVA_HOME}/bin:\$PATH" >> /etc/profile +# source /etc/profile +# echo "finish configure oracle java jdk" @@ -162,12 +162,13 @@ echo "#######################################################################" echo "" -vsCodeLink="https://az764295.vo.msecnd.net/stable/507ce72a4466fbb27b715c3722558bb15afa9f48/code_1.57.1-1623937013_amd64.deb" -virtualBoxLink="http://download.virtualbox.org/virtualbox/5.2.0/virtualbox-5.2_5.2.0-118431~Ubuntu~xenial_amd64.deb" +vsCodeLink="https://az764295.vo.msecnd.net/stable/6445d93c81ebe42c4cbd7a60712e0b17d9463e97/code_1.81.0-1690980880_amd64.deb" +#virtualBoxLink="http://download.virtualbox.org/virtualbox/5.2.0/virtualbox-5.2_5.2.0-118431~Ubuntu~xenial_amd64.deb" #osxArcCollectionThemeLink="https://github-production-release-asset-2e65be.s3.amazonaws.com/77880841/16a14c7c-45a6-11e7-81ac-28673f670d57?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171022%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171022T093955Z&X-Amz-Expires=300&X-Amz-Signature=98b29dcd8849047f0e774fa1dd00353c8d8c60e4927c6273aa9afba5f5e3d14b&X-Amz-SignedHeaders=host&actor_id=22359905&response-content-disposition=attachment%3B%20filename%3Dosx-arc-collection_1.4.3_amd64.deb" googleChromeLink="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -sougouLink="http://cdn2.ime.sogou.com/dl/index/1491565850/sogoupinyin_2.1.0.0086_amd64.deb?st=bBYOyY4OxnTa-_ElgJuKDw&e=1508784697&fn=sogoupinyin_2.1.0.0086_amd64.deb" +sougouLink="https://ime-sec.gtimg.com/202308101244/09101fe56485bfec2d2f78d54a968fc2/pc/dl/gzindex/1680521603/sogoupinyin_4.2.1.145_amd64.deb" netMusicLink="http://s1.music.126.net/download/pc/netease-cloud-music_1.0.0-2_amd64_ubuntu16.04.deb" +utoolsLink="https://res.u-tools.cn/version2/utools_4.0.0_amd64.deb" @@ -182,10 +183,6 @@ vscodeName="vsCode.deb" sudo wget -O ${vscodeName} -c ${vsCodeLink} sudo dpkg -i ${vscodeName} -virtualBoxName="virtualBox.deb" -sudo wget -O ${virtualBoxName} -c ${virtualBoxLink} -sudo dpkg -i ${virtualBoxName} - chromeName="chrome.deb" sudo wget -O ${chromeName} -c ${googleChromeLink} sudo dpkg -i ${chromeName} @@ -194,6 +191,10 @@ netMusicName="netMusic.deb" sudo wget -O ${netMusicName} -c ${netMusicLink} sudo dpkg -i ${netMusicName} +utoolsName="utools.deb" +sudo wget -O ${utoolsName} -c ${utoolsLink} +sudo dpkg -i ${utoolsName} + #http link error #osxArcName="osxArc.deb" #sudo wget -O ${osxArcName} --no-check-certificate -c ${osxArcCollectionThemeLink} @@ -206,12 +207,6 @@ sudo wget -O ${genymotionName} --no-check-certificate -c ${genymotionLink} chmod +x ${genymotionName} sudo ./${genymotionName} -#install intellij -sudo wget -c ${intellijIdeaLink} -tar -xvzf ideaIU-2017.2.5.tar.gz -mv idea-IU-172.4343.14 ${swDir}/idea-IU-172.4343.14 -cd ${swDir}/idea-IU-172.4343.14/bin -./idea.sh echo "" echo "#######################################################################" From 6753f9be217296758ba0c1d359a28bb9b99d7be8 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 10 Aug 2023 16:44:42 +0800 Subject: [PATCH 06/80] Update setup.sh --- setup.sh | 84 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 24 deletions(-) diff --git a/setup.sh b/setup.sh index ad05415..f534910 100755 --- a/setup.sh +++ b/setup.sh @@ -9,12 +9,18 @@ echo "" echo "" -swDir="/SW" +# swDir="/SW" #downloadFolderName="ubuntuSW" -sudo mkdir ${swDir} +# sudo mkdir ${swDir} #sudo mkdir ~/Downloads/${downloadFolder} +sudo apt install net-tools +sudo systemctl enable ssh.service +systemctl status ssh +sudo systemctl start ssh +sudo apt install openssh-server + # update system echo "update system" sudo apt-get update -y @@ -23,40 +29,70 @@ sudo apt-get upgrade -y # install some tools: echo "install git" sudo apt-get install git -y + echo "install curl" apt-get install curl -y + echo "install gdebi" apt-get install gdebi -y + echo "install vim" sudo apt-get install -y vim + echo "install unzip" sudo apt-get install unzip -y -echo "install jd-json parse tool in linux" -sudo apt-get install jd -y + +# echo "install jd-json parse tool in linux" +# sudo apt-get install jd -y echo "install kolour paint" sudo apt-get install kolourpaint4 -y echo "install unrar" sudo apt-get install unrar -y -echo "install sdk man" -sudo curl -s "https://get.sdkman.io" | bash -source "$HOME/.sdkman/bin/sdkman-init.sh" -sdk version -echo "install gradle 4.2.1" 0 -sdk install gradle 4.2.1 -gradle -version -echo "install maven" -sudo apt-get install maven -y -mvn -version -echo "install sqlite man" -sudo apt-get install sqlitemanm -y +# echo "install sdk man" +# sudo curl -s "https://get.sdkman.io" | bash +# source "$HOME/.sdkman/bin/sdkman-init.sh" +# sdk version +# echo "install gradle 4.2.1" 0 +# sdk install gradle 4.2.1 +# gradle -version +# echo "install maven" +# sudo apt-get install maven -y +# mvn -version +# echo "install sqlite man" +# sudo apt-get install sqlitemanm -y + +sudo apt-get remove docker docker-engine docker.io +sudo apt-get update +sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" +sudo apt-get update echo "install docker.io" -sudo apt-get install -y docker.io -sudo docker pull nginx -sudo docker pull tomcat -sudo docker pull mysql +sudo apt-get install docker-ce + +# sudo docker pull nginx +# sudo docker pull tomcat +# sudo docker pull mysql + echo "install clementine" sudo apt-get install clementine -y +echo "install sysmonitor" +sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor +sudo apt-get update +sudo apt-get install -y indicator-sysmonitor + +echo "install terminator" +# https://blog.csdn.net/zack_liu/article/details/120687194 +sudo apt-get install terminator + # fixed time zone problem sudo timedatectl set-local-rtc true sudo timedatectl set-ntp true @@ -131,10 +167,10 @@ make install #install markdown editor tepora echo "install markdown editor Typora" -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE -y -sudo add-apt-repository 'deb http://typora.io linux/' -y -sudo apt-get update -y -sudo apt-get install typora +wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - # 添加公钥 +sudo add-apt-repository 'deb https://typora.io/linux ./' # 添加typora仓库 +sudo apt-get update +sudo apt-get install typora # 安装typora From dca024a7bc67721bf1e2466a0b2f25d609bb9aef Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 25 Aug 2023 09:29:06 +0800 Subject: [PATCH 07/80] Update setup.sh --- setup.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/setup.sh b/setup.sh index f534910..9fbb7b4 100755 --- a/setup.sh +++ b/setup.sh @@ -172,7 +172,18 @@ sudo add-apt-repository 'deb https://typora.io/linux ./' # 添加typora仓库 sudo apt-get update sudo apt-get install typora # 安装typora +#install meld +echo "install meld" + sudo apt-get install meld +# install Kazam +echo "install kazam" + sudo apt install kazam + + +echo "install Termius" +sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" +sudo dpkg -i ${vscodeName} # install oracle jdk # echo "ready configure oracle java jdk" From e18d621c9434c1e8002551b6083311cbaef7a479 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 18 May 2024 21:34:30 +0800 Subject: [PATCH 08/80] Update setup.sh --- setup.sh | 293 +++++++++++++++++++++---------------------------------- 1 file changed, 113 insertions(+), 180 deletions(-) diff --git a/setup.sh b/setup.sh index 9fbb7b4..2b00c1d 100755 --- a/setup.sh +++ b/setup.sh @@ -9,11 +9,44 @@ echo "" echo "" -# swDir="/SW" -#downloadFolderName="ubuntuSW" -# sudo mkdir ${swDir} -#sudo mkdir ~/Downloads/${downloadFolder} + +if [ "${Sources}" == "16.04" ]; then +test -f sources.list && result_0="y" +if [ "${result_0}" == "y" ]; then + echo "Begin copy" + sudo cp /etc/apt/sources.list Backup/sources.list + sudo cp sources.list /etc/apt/sources.list +else + echo -e "\033[41;37m The sources file which contains tsinghua sources does not exist! \033[0m" >> errorinit.log + echo -e "\033[41;37m Please check whether the file in the warehouse catalog is complete. \033[0m" >> errorinit.log + echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" >>errorinit.log + #echo -e "Coutinue?(Y/n) :\c" + #read yn + #if [ "${yn}" == "n" ] || [ "${yn}" == "N" ]; then + exit 0; + #fi +fi +elif [ "${Sources}" == "14.04" ]; then +test -f sources14.04.list && result_0="y" +if [ "${result_0}" == "y" ]; then + echo "Begin copy" + sudo cp /etc/apt/sources.list Backup/sources.list + sudo cp sources14.04.list /etc/apt/sources.list +else + echo -e "\033[41;37m The sources file which contains tsinghua sources does not exist! \033[0m" >>errorinit.log + echo -e "\033[41;37m Please check whether the file in the warehouse catalog is complete. \033[0m" >> errorinit.log + echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" >>errorinit.log + #echo -e "Coutinue?(Y/n) :\c" + #read yn + #if [ "${yn}" == "n" ] || [ "${yn}" == "N" ]; then + exit 0; + #fi +fi +fi + + + sudo apt install net-tools sudo systemctl enable ssh.service @@ -25,41 +58,29 @@ sudo apt install openssh-server echo "update system" sudo apt-get update -y sudo apt-get upgrade -y +sleep 3 # install some tools: echo "install git" sudo apt-get install git -y +sleep 3 echo "install curl" apt-get install curl -y +sleep 3 echo "install gdebi" apt-get install gdebi -y +sleep 3 echo "install vim" sudo apt-get install -y vim +sleep 3 echo "install unzip" sudo apt-get install unzip -y +sleep 3 -# echo "install jd-json parse tool in linux" -# sudo apt-get install jd -y -echo "install kolour paint" -sudo apt-get install kolourpaint4 -y -echo "install unrar" -sudo apt-get install unrar -y -# echo "install sdk man" -# sudo curl -s "https://get.sdkman.io" | bash -# source "$HOME/.sdkman/bin/sdkman-init.sh" -# sdk version -# echo "install gradle 4.2.1" 0 -# sdk install gradle 4.2.1 -# gradle -version -# echo "install maven" -# sudo apt-get install maven -y -# mvn -version -# echo "install sqlite man" -# sudo apt-get install sqlitemanm -y sudo apt-get remove docker docker-engine docker.io sudo apt-get update @@ -76,94 +97,63 @@ sudo add-apt-repository \ sudo apt-get update echo "install docker.io" sudo apt-get install docker-ce - -# sudo docker pull nginx -# sudo docker pull tomcat -# sudo docker pull mysql - -echo "install clementine" -sudo apt-get install clementine -y - -echo "install sysmonitor" -sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor -sudo apt-get update -sudo apt-get install -y indicator-sysmonitor +sleep 3 echo "install terminator" # https://blog.csdn.net/zack_liu/article/details/120687194 sudo apt-get install terminator +sleep 3 + +# install sougou +echo "install sougou" +sudo apt-get remove -y fcitx* +sudo apt-get autoremove +rm sogoupinyin_2.1.0.0086_amd64.deb* +wget -q http://cdn2.ime.sogou.com/dl/index/1491565850/sogoupinyin_2.1.0.0086_amd64.deb?st=H6Fv3RXvgGFlgWBT3xkMZw&e=1507788214&fn=sogoupinyin_2.1.0.0086_amd64.deb +echo -e "Install sougoupinyin,Please wait...\c" +sleep 300 +sudo dpkg -i sogoupinyin* +sudo apt-get -yf install +sudo dpkg -i sogoupinyin* +sleep 3 + +# 安装系统监视软件sysmonitor +sudo apt-get purge -y unity-webapps-common + +sudo add-apt-repository -y ppa:fossfreedom/indicator-sysmonitor +sudo apt-get update +sudo apt-get install -y indicator-sysmonitor +indicator-sysmonitor & + + +# install VS code +echo "install VS code" +curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg +sleep 4 +sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg +sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' +sudo apt-get update +sudo apt-get -y install code +echo -e "\033[46;37m VS code was installed successfully! \033[0m" +echo -e "\033[46;37m (vscode安装成功!) \033[0m" +sleep 3 + +# install sublime +wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - +sleep 2 +sudo apt-get install -y apt-transport-https +echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list +sudo apt-get update +sudo apt-get -y install sublime-text +echo -e "\033[46;37m The sublime text3 was installed successfully! \033[0m" +echo -e "\033[46;37m (sublime安装成功!) \033[0m" +sleep 3 -# fixed time zone problem -sudo timedatectl set-local-rtc true -sudo timedatectl set-ntp true - - -# generate github ssh public key -while getopts "g: b: c:" arg #选项后面的冒号表示该选项需要参数 -do - case $arg in - g) - echo "a's arg:$OPTARG" #参数存在$OPTARG中 - # configure github ssh public key - ssh-keygen -t rsa -b 4096 -C "$OPTARG" - eval "$(ssh-agent -s)" - ssh-add ~/.ssh/id_rsa - sudo apt-get install xclip - xclip -sel clip < ~/.ssh/id_rsa.pub - cat ~/.ssh/id_rsa > ~/desktop/github_ssh_key.txt - eval "$(ssh-agent -s)" - ssh-add - ;; - b) - echo "b's arg:$OPTARG" - ;; - c) - echo "c" - ;; - ?) #当有不认识的选项的时候arg为? - echo "unkonw argument" - exit 1 - ;; - esac -done - - -#install gnome desktop -echo "install gnome shell and tweak tool" -sudo apt-get install gnome-session -y -sudo apt-get install gnome-tweak-tool -y -sudo apt-get install gnome-shell-extensions #install flameshot echo "install flameshot" sudo apt-get install flameshot - -# install gnome arc theme -echo "install gnome arc theme" -sudo add-apt-repository ppa:noobslab/themes -y -sudo apt-get update -y -sudo apt-get install arc-theme -y - -# install gnome flat remix icon - -echo "install gnome flat remix icon" -sudo add-apt-repository ppa:noobslab/icons -y -sudo apt-get update -y -sudo apt-get install flat-remix-icons -y - -# install dash to dock -echo "install dash to dock plug in" -cd ~/Downloads -git clone https://github.com/micheleg/dash-to-dock.git -cd dash-to-dock -make -make install - -# # install nodejs and npm -# echo "configure nodejs and npm environment" -# curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -# sudo apt-get install -y nodejs -# sudo apt-get install -y build-essential +sleep 3 #install markdown editor tepora echo "install markdown editor Typora" @@ -171,88 +161,40 @@ wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - # 添加 sudo add-apt-repository 'deb https://typora.io/linux ./' # 添加typora仓库 sudo apt-get update sudo apt-get install typora # 安装typora +sleep 3 + +# install +wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb +echo -e "Install netease-cloud-music,Please wait...\c" +sleep 150 +sudo dpkg -i netease-cloud-music* +sudo apt-get -yf install +sudo dpkg -i netease-cloud-music* +sleep 3 + +# chrome 安装 +wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - +sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' +sudo apt-get update +sudo apt-get -y install google-chrome-stable +sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook #install meld echo "install meld" - sudo apt-get install meld +sudo apt-get install meld +sleep 3 # install Kazam echo "install kazam" - sudo apt install kazam +sudo apt install kazam +sleep 3 echo "install Termius" sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" sudo dpkg -i ${vscodeName} +sleep 3 -# install oracle jdk -# echo "ready configure oracle java jdk" -# jdkContainer="jdk.tar.gz" -# cd ~/Downloads -# sudo wget -O ${jdkContainer} --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz -# tar -xvzf ${jdkContainer} -# sudo mv ~/Downloads/jdk1.8.0_151 ${swDir}/jdk - -# sudo echo "export JAVA_HOME=${swDir}/jdk" >> /etc/profile -# sudo echo "export JRE_HOME=\${JAVA_HOME}/jre" >> /etc/profile -# sudo echo "export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib" >> /etc/profile -# sudo echo "export PATH=\${JAVA_HOME}/bin:\$PATH" >> /etc/profile -# source /etc/profile -# echo "finish configure oracle java jdk" - - - -echo "" -echo "#######################################################################" -echo "# INSTALL SOFTWARE #" -echo "#######################################################################" -echo "" - - -vsCodeLink="https://az764295.vo.msecnd.net/stable/6445d93c81ebe42c4cbd7a60712e0b17d9463e97/code_1.81.0-1690980880_amd64.deb" -#virtualBoxLink="http://download.virtualbox.org/virtualbox/5.2.0/virtualbox-5.2_5.2.0-118431~Ubuntu~xenial_amd64.deb" -#osxArcCollectionThemeLink="https://github-production-release-asset-2e65be.s3.amazonaws.com/77880841/16a14c7c-45a6-11e7-81ac-28673f670d57?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171022%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171022T093955Z&X-Amz-Expires=300&X-Amz-Signature=98b29dcd8849047f0e774fa1dd00353c8d8c60e4927c6273aa9afba5f5e3d14b&X-Amz-SignedHeaders=host&actor_id=22359905&response-content-disposition=attachment%3B%20filename%3Dosx-arc-collection_1.4.3_amd64.deb" -googleChromeLink="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -sougouLink="https://ime-sec.gtimg.com/202308101244/09101fe56485bfec2d2f78d54a968fc2/pc/dl/gzindex/1680521603/sogoupinyin_4.2.1.145_amd64.deb" -netMusicLink="http://s1.music.126.net/download/pc/netease-cloud-music_1.0.0-2_amd64_ubuntu16.04.deb" -utoolsLink="https://res.u-tools.cn/version2/utools_4.0.0_amd64.deb" - - - -# install software -cd ~/Downloads/ -# install sougou input -sougouName="sougou.deb" -sudo wget -O ${sougouName} -c ${sougouLink} -sudo dpkg -i ${sougouName} - -vscodeName="vsCode.deb" -sudo wget -O ${vscodeName} -c ${vsCodeLink} -sudo dpkg -i ${vscodeName} - -chromeName="chrome.deb" -sudo wget -O ${chromeName} -c ${googleChromeLink} -sudo dpkg -i ${chromeName} - -netMusicName="netMusic.deb" -sudo wget -O ${netMusicName} -c ${netMusicLink} -sudo dpkg -i ${netMusicName} - -utoolsName="utools.deb" -sudo wget -O ${utoolsName} -c ${utoolsLink} -sudo dpkg -i ${utoolsName} - -#http link error -#osxArcName="osxArc.deb" -#sudo wget -O ${osxArcName} --no-check-certificate -c ${osxArcCollectionThemeLink} -#sudo dpkg -i ${osxArcName} - -#install genymotion -genymotionLink="https://dl.genymotion.com/releases/genymotion-2.10.0/genymotion-2.10.0-linux_x64.bin" -genymotionName="genymotion.bin" -sudo wget -O ${genymotionName} --no-check-certificate -c ${genymotionLink} -chmod +x ${genymotionName} -sudo ./${genymotionName} echo "" @@ -262,12 +204,3 @@ echo "#######################################################################" echo "" - -# install linux weixin -#git clone https://github.com/geeeeeeeeek/electronic-wechat.git -# Go into the repository -#cd electronic-wechat -# Install dependencies and run the app -#npm install && npm start -#npm run build:linux - From bfcabb509e73154f4afa2f936cd160c5054fac23 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 18 May 2024 22:25:07 +0800 Subject: [PATCH 09/80] note 2.0 --- "20.04\346\211\213\345\206\214.md" | 715 +++++++++++++++++++++++++++++ githelp.sh | 6 - setup.sh | 179 ++++++-- source14.04.list | 8 + source16.04.list | 8 + source18.04.list | 13 + source20.04.list | 14 + source22.04.list | 14 + test.sh | 20 - 9 files changed, 915 insertions(+), 62 deletions(-) create mode 100644 "20.04\346\211\213\345\206\214.md" delete mode 100755 githelp.sh create mode 100644 source14.04.list create mode 100644 source16.04.list create mode 100644 source18.04.list create mode 100644 source20.04.list create mode 100644 source22.04.list delete mode 100755 test.sh diff --git "a/20.04\346\211\213\345\206\214.md" "b/20.04\346\211\213\345\206\214.md" new file mode 100644 index 0000000..a2699f0 --- /dev/null +++ "b/20.04\346\211\213\345\206\214.md" @@ -0,0 +1,715 @@ + +--- +title: "Ubuntu 20.10 优化" +authors: ["eallion"] +categories: ["代码"] +tags: ["Ubuntu","优化","美化","ZFS","gnome"] +draft: false +slug: "ubuntu2010" +summary: "这篇文章介绍了Ubuntu 20.10的优化方法。内容包括更换软件源、系统设置、设置Sudo免密码、安装基础软件、去除鼠标加速、安装显卡驱动、下载个人配置、安装输入法、双系统时间设置、安装Guake、安装Oh My Tmux、安装Oh My Zsh、配置Vim、配置Grub引导、自动挂载硬盘、安装PulseAudio Volume Control、安装Docker、安装Gnome Shell Extensions、使用Flameshot进行截图、体验macOS Big Sur动态壁纸等。文章提醒读者不要照搬命令,建议最小化安装,并推荐使用清华大学的软件源。文中还附有作者的个人配置备份。" +date: "2020-10-23 10:25:00" +lastmod: "2020-10-23 10:25:00" +--- +**安装 Ubuntu 后的 20 件事** + +![](/assets/images/posts/2020/10/ubuntu2010.png) + +最近搞挂了一块数据盘,刚好在 Ubuntu 20.10 的发行时间点,索性重装 Ubuntu。 +本文主要为备忘。切勿照搬命令。建议最小化安装。 + +------------ + +# 基础优化 + +### 1、换软件源 + +推荐清华大学的源 +> [https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/) + +个人的备份源 +> [https://raw.githubusercontent.com/eallion/dotfiles/ubuntu/sources.list](https://raw.githubusercontent.com/eallion/dotfiles/ubuntu/sources.list) + +``` +sudo mv /etc/apt/sources.list/etc/apt/sources.list.backup +wget -c https://raw.githubusercontent.com/eallion/dotfiles/ubuntu/sources.list -O /etc/apt/sources.list +``` + +然后 update 一下: + +``` +sudo apt update +sudo apt upgrade +``` + +### 2、系统设置 + +在 `系统设置` 里按自己的习惯设置即可。 + +### 3、Sudo 免密码 + +常用的个人电脑,是可以运行 `sudo` 免输密码的,公用电脑不建议这样设置。 + +``` +su - +``` + +``` +nano /etc/sudoers +``` + +在 `root ALL=(ALL:ALL) ALL` 下一行添加: +(`eallion` 请替换成自己的用户名) + +``` +eallion ALL=(ALL:ALL) ALL +``` + +在 `% sudo ALL=(ALL:ALL) ALL` 下一行添加: +(`eallion` 请替换成自己的用户名) + +``` +eallion ALL=(ALL:ALL) NOPASSWD:ALL +``` + +### 4、安装基础软件 + +``` +sudo apt install vim \ + git \ + curl \ + gnome-tweak-tool \ + gdebi \ + preload \ + google-chrome-stable \ + gnome-shell-extensions \ + ubuntu-restricted-extras +``` + +### 5、去鼠标加速 + +对于 FPS 玩家,尤其推荐去掉鼠标加速。 +5.1. 在 `GNOME Tweaks` 点击 `键盘和鼠标` 在 `鼠标`-`加速配置` 里选择 `Flat`。 +5.2. 在 `系统设置` 里 `设备`-`鼠标和触摸板`-`鼠标`-`鼠标速度` 调节自己适应的鼠标速度。 + +### 6、安装显卡驱动 + +如果是 Nvidia 独立显卡,在 Dash 里搜索 `drive`,打开 `附加驱动`,选择专有驱动。 + +### 7、下载个人配置 + +基于 Linux 特性,备份配置文件即可。 +我的部分配置备份于 GitHub: +> [https://github.com/eallion/dotfiles](https://github.com/eallion/dotfiles) + +``` +git clone https://github.com/eallion/dotfiles.git -b ubuntu ~/Documents/dotfiles +``` + +恢复 Git Vim Tmux Fcitx 等配置。 + +### 8、安装输入法 + +个人使用 Fcitx 五笔拼音 + +#### 8.1、Fcitx 五笔拼音 + +``` +sudo apt install fcitx-table-wbpy +``` + +> 主题: [https://github.com/Yucklys/fcitx-nord-skin](https://github.com/Yucklys/fcitx-nord-skin) +> 主题: [https://github.com/Sakitami/fcitx-themes-package](https://github.com/Sakitami/fcitx-themes-package) + +配置默认输入法: + +``` +im-config +``` + +自定义标点符号: + +``` +wget -c https://raw.githubusercontent.com/eallion/dotfiles/ubuntu/.config/fcitx/data/punc.mb.zh_CN -O ~/.config/fcitx/data/punc.mb.zh_CN +``` + +按下面格式添加符号,如果不符合习惯请自行修改。 + +``` +~ ~ +` ` +! ! +@ @ +# # +$ ¥ +% ␣ +^ …… +& & +* * +( ( +) ) +_ —— +- - ++ + += = +| | +\ 、 +[ 【 +] 】 +{ 〖 +} 〗 +: : +; ; +" “ ” +' ‘ ’ +< 《 +> 》 +, , +. 。 +? ? +``` + +#### 8.2、Fcitx5 五笔拼音 + +安装: + +``` +sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-qt5 +```` + +切换输入法: + +``` +im-config +``` + +安装 Psionics-Remix 主题(可选) +> [https://github.com/xTpx/Psionics-Remix](https://github.com/xTpx/Psionics-Remix) + +``` +git clone https://github.com/xTpx/Psionics-Remix.git ~/.local/share/fcitx5/themes/Psionics-Remix +``` + +``` +vim ~/.config/fcitx5/conf/classicui.conf +``` + +配置主题: + +``` + *** +Theme=Psionics-Remix + *** +``` + +自定义快速输入: + +``` +sudo vim /usr/share/fcitx5/data/quickphrase.d/quick.mb +``` + +在文件中添加形如 `input output` 的代码,一行一条,即可实现添加快速输入辞典。 +示例:要在快速输入中输入 `ddrr`,在候选中显示 `大大的小蜗牛`,只需在上述 mb 文件中添加一行 `ddrr 大大的小蜗牛` 即可。(注意空格) +> 友情提示:快速输入可以使用分号打开,Rime 不支持快速输入。 + +### 9、双系统时间设置 + +解决切换到 Windows 时间不对的问题。将本地时间更新到硬件上。 + +``` +sudo apt install ntpdate +sudo ntpdate ntp.aliyun.com # 阿里云的时间服务器,可用其他时间服务器替换 +sudo hwclock --localtime --systohc +``` + +**前 9 个步骤执行完成后,建议重启一下!** + +### 10、安装 Guake + +通过软件仓库直接安装的 Guake 版本不够新,而且中文显示不全。 +推荐源码安装: + +``` +git clone https://github.com/Guake/guake.git ~/Documents/guake +cd ~/Documents/guake +./scripts/bootstrap-dev-debian.sh run make +make +sudo make install +``` + +Ubuntu 20.10 默认终端的背景色:`#300a24` + +**Guake indicator** +如果有需要可安装 Guake indicator: + +``` +sudo apt install guake-indicator +``` + +### 11、安装 Oh My Tmux + +> [https://github.com/gpakosz/.tmux](https://github.com/gpakosz/.tmux) + +``` +cd +git clone https://github.com/gpakosz/.tmux.git +ln -s -f .tmux/.tmux.conf +cp .tmux/.tmux.conf.local . +``` + +### 12、安装 Oh My Zsh + +> 参考:[https://eallion.com/ubuntuzsh](https://eallion.com/ubuntuzsh "https://eallion.com/ubuntuzsh") + +安装 Zsh: + +``` +sudo apt update +sudo apt install zsh autojump fasd +``` + +安装 Oh My Zsh: +> 官方文档 [https://github.com/ohmyzsh/ohmyzsh#basic-installation](https://github.com/ohmyzsh/ohmyzsh#basic-installation) + +``` +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +``` + +下载、安装、配置字体: + +> 下载:[Ubuntu Nerd Font](https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/Ubuntu/Regular/complete/Ubuntu%20Nerd%20Font%20Complete.ttf) +> 下载:[Knack Nerd Font Mono](https://github.com/ryanoasis/nerd-fonts/raw/v1.2.0/patched-fonts/Hack/Regular/complete/Knack%20Regular%20Nerd%20Font%20Complete%20Mono.ttf)(推荐) + +安装主题 Powerlevel9k : + +``` +git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k +``` + +安装历史命令建议插件: + +``` +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +``` + +安装命令行语法高亮插件: + +``` +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting +``` + +设置 Oh My Zsh : + +``` +vim ~/.zshrc +``` + +需要修改如下几个地方: + +``` + ****** +POWERLEVEL9K_MODE='nerdfont-complete' +ZSH_THEME="powerlevel9k/powerlevel9k" +POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable disk_usage vcs newline) +POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time) + ****** +ENABLE_CORRECTION="true" + ****** +COMPLETION_WAITING_DOTS="true" + ****** +plugins=( git extract fasd zsh-autosuggestions zsh-syntax-highlighting docker docker-compose) + ****** +``` + +我个人的配置: + +``` +rm ~/.zshrc +wget -c https://raw.githubusercontent.com/eallion/dotfiles/ubuntu/.zshrc -O ~/.zshrc +``` + +让配置生效: + +``` +source ~/.zshrc +``` + +如果安装时没有选择将 Zsh 作为默认 Shell,可以用下面的命令设置: + +``` +chsh -s /bin/zsh +``` + +查看当前所用的 Shell : `echo $SHELL`。 + +### 13、配置 Vim + +#### 13.1 spf13-vim + +> [https://github.com/spf13/spf13-vim](https://github.com/spf13/spf13-vim) + +#### 13.2 EverVim(推荐) + +> [https://github.com/LER0ever/EverVim](https://github.com/LER0ever/EverVim) +> Ubuntu 配置 EverVim [https://eallion.com/ubuntuevervim/](https://eallion.com/ubuntuevervim/) + +安装 EverVim 步骤 +安装依赖: + +``` +sudo apt install -y git curl python3-pip python3-dev exuberant-ctags cmake gcc g++ build-essential +``` + +安装 EverVim : + +``` +curl -sLf https://raw.githubusercontent.com/LER0ever/EverVim/master/Boot-EverVim.sh | bash +``` + +进 Vim 安装插件: + +``` +vim +:PlugInstall +``` + +如果进 Vim 提示 Your ycmd is shut down ,需要安装 You Compute Me : + +``` +cd ~/.vim/bundle/YouCompleteMe +python3 install.py --clang-completer +``` + +### 14、配置 Grub 引导 + +Etx4 文件系统用 Grub-customizer 即可,Btrfs、ZFS 等文件系统此软件无效。 + +``` +sudo apt install grub-customizer +``` + +Theme: +> [https://github.com/sandesh236/sleek--themes](https://github.com/sandesh236/sleek--themes) +> [https://github.com/gustawho/grub2-theme-breeze](https://github.com/gustawho/grub2-theme-breeze) + +如果 Nvidia 独立显卡在引导界面开机黑屏:将 `nomodeset` 加到 `/etc/default/grub` 即可。 + +``` +GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash" +``` + +### 15、自动挂载硬盘 + +查看硬盘的 UUID 和 Type : + +``` +sudo blkid +``` + +记录下 `UUID` 和 `Type`。 +创建挂载目录: + +``` +mkdir -p ~/Files ~/Media +``` + +查看自己的 uid gid: + +``` +id eallion +``` + +编辑配置文件: + +``` +sudo vim /etc/fstab +``` + +按格式添加: + +``` +UUID=xxxx /mount-folder type defaults 0 0 +``` + +如: + +``` +UUID=xxxx /home/eallion/Files ntfs defaults,uid=1000,gid=1000,umask=022 0 0 +UUID=xxxx /home/eallion/Media ntfs defaults,uid=1000,gid=1000,umask=022 0 0 +``` + +如果不加 uid gid ,自动挂载后可能是 root 权限,无法读写。 + +### 16、安装 PulseAudio Volume Control + +``` +sudo apt install pavucontrol +``` + +### 17、安装 Docker + +> [https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/) +Ubuntu 20.10 暂时还没有官方源,使用 Ubuntu 20.04 的源替代。 +即:替换 `$(lsb_release -cs)` 为 `focal`。 + +``` +sudo apt remove docker docker-engine docker.io containerd runc +sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" +sudo apt install -y docker-ce docker-ce-cli containerd.io +``` + +检查是否安装成功: + +``` +docker version +sudo docker run hello-world +```` + +安装 Docker Compose: + +``` +sudo curl -L "https://github.com/docker/compose/releases/download/1.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose +sudo ln -s /usr/local/bin/docker-compose/usr/bin/docker-compose +``` + +Docker 属于高频操作,运行 Docker 时,免去 `sudo` +> [https://docs.docker.com/engine/install/linux-postinstall/](https://docs.docker.com/engine/install/linux-postinstall/) + +``` +sudo groupadd docker +sudo usermod -aG docker $USER +reboot +newgrp docker +sudo chown "$USER":"$USER" /home/"$USER"/.docker -R +sudo chmod g+rwx "$HOME/.docker" -R +``` + +### 18、安装 Gnome Shell Extensions + +#### 18.1. 安装浏览器插件 + +可以使用 Chrome 插件,如果登录了 Google 账号,有自动同步功能。 + +- Chrome : [GNOME Shell integration](https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep "GNOME Shell integration") +- Firefox: [https://extensions.gnome.org](https://extensions.gnome.org/ "https://extensions.gnome.org/") + +#### 18.2. 安装 Gnome Shell Extensions + +``` +sudo apt install gnome-shell-extensions +``` + +#### 18.3. 安装扩展 + +> 以下扩展插件按需启用 +> 安装完成后,按 `Alt`+`F2`,输入 `r` 重启 + +- [Applications Menu](https://extensions.gnome.org/extension/6/applications-menu/) +- [Applications Overview Tooltip](https://extensions.gnome.org/extension/1071/applications-overview-tooltip/) +- [Auto Move Windows](https://extensions.gnome.org/extension/16/auto-move-windows/) +- [Clipboard Indicator](https://extensions.gnome.org/extension/779/clipboard-indicator/) +- [Coverflow Alt-Tab](https://extensions.gnome.org/extension/97/coverflow-alt-tab/) +- [Dash to Dock](https://extensions.gnome.org/extension/307/dash-to-dock/) + - `sudo gnome-extensions disable ubuntu-dock@ubuntu.com` +- [Desktop Icons](https://extensions.gnome.org/extension/1465/desktop-icons/) +- [GSConnect](https://extensions.gnome.org/extension/1319/gsconnect/) +- [Hide Top Bar](https://extensions.gnome.org/extension/545/hide-top-bar/) +- [Horizontal workspaces](https://extensions.gnome.org/extension/2141/horizontal-workspaces/) +- [Launch new instance](https://extensions.gnome.org/extension/600/launch-new-instance/) +- [Lunar Calendar 农历](https://extensions.gnome.org/extension/675/lunar-calendar/) + - `sudo apt install gir1.2-lunar-date-2.0` +- [Native Window Placement](https://extensions.gnome.org/extension/18/native-window-placement/) +- [OpenWeather](https://extensions.gnome.org/extension/750/openweather/) +- [Places Status Indicator](https://extensions.gnome.org/extension/8/places-status-indicator/) +- [Removable Drive Menu](https://extensions.gnome.org/extension/7/removable-drive-menu/) +- [Remove Alt+Tab Delay v2](https://extensions.gnome.org/extension/2741/remove-alttab-delay-v2/) +- [Remove Dropdown Arrows](https://extensions.gnome.org/extension/800/remove-dropdown-arrows/) + - [Unite](https://extensions.gnome.org/extension/1287/unite/) 里有此功能。 +- [Screenshot Window Sizer](https://extensions.gnome.org/extension/881/screenshot-window-sizer/) +- [Sound Input & Output Device Chooser](https://extensions.gnome.org/extension/906/sound-output-device-chooser/) +- [Status Area Horizontal Spacing](https://extensions.gnome.org/extension/355/status-area-horizontal-spacing/) +- [TopIcons Plus](https://extensions.gnome.org/extension/1031/topicons/) +- [Tray Icons](https://extensions.gnome.org/extension/1503/tray-icons/) +- [Ubuntu AppIndicators](https://extensions.gnome.org/extension/1301/ubuntu-appindicators/) +- [Ubuntu Dock](https://extensions.gnome.org/extension/1300/ubuntu-dock/) +- [Unite](https://extensions.gnome.org/extension/1287/unite/) +- [User Themes](https://extensions.gnome.org/extension/19/user-themes/) +- [Vitals](https://extensions.gnome.org/extension/1460/vitals/) +- [Window List](https://extensions.gnome.org/extension/602/window-list/) +- [windowNavigator](https://extensions.gnome.org/extension/10/windownavigator/) +- [Workspace Indicator](https://extensions.gnome.org/extension/21/workspace-indicator/) + +### 19、火焰截图 Flameshot + +需要设置快捷键,所以把火焰截图单独拿出来说。 + +``` +sudo apt install flameshot +``` + +设置截图快捷键: +`系统设置` - `设备` - `键盘快捷键` - `自定义快捷键` 点加号添加一个: + +``` +名称:flameshot +命令:flameshot gui +设置快捷键:(按键盘设置) +``` + +### 20、体验 macOS Big Sur 动态壁纸 + +实际上没什么卵用,个人也不太喜欢。 +Gnome 桌面环境原生支持按时间自动切换壁纸的功能。 +无论什么 Linux 发行版,只要使用 Gnome 桌面环境都可以使用此壁纸。 +此套壁纸支持 5K 分辨率。 +Windows 可以使用 [WinDynamicDesktop](https://github.com/t1m0thyj/WinDynamicDesktop)。 +> [https://github.com/eallion/Big-Sur-Ubuntu](https://github.com/eallion/Big-Sur-Ubuntu) + +#### 20.1、下载 Big Sur + +``` +git clone https://github.com/eallion/Big-Sur-Ubuntu.git ~/Pictures/Big-Sur-Ubuntu +``` + +#### 20.2、设置 + +打开 `Gnome Tweaks` +找到 `外观`-`背景` +选择 `groovy.xml`(文件在 `/home/username/Pictures/Big-Sur-Ubuntu/groovy.xml` 路径) +选择 `Zoom` 调整方式 + +------------ + +# 安装软件 + +### 安装常用软件 + +推荐一些常用的软件: + +- Authy (Snap) + +``` +sudo snap install authy --beta +``` + +- Filezilla + +``` +sudo apt install filezilla +``` + +- PhotoGIMP (GIMP)(Snap) + +``` +sudo snap install photogimp +``` + +- Steam + +``` +sudo apt install steam +``` + +- Telegram + +``` +sudo apt install telegram-desktop +``` + +- Thunderbird + +``` +sudo apt install thunderbird thunderbird-locale-zh-cn +``` + +- Virtualbox + +``` +sudo apt install virtualbox +``` + +- VLC + +``` +sudo apt install vlc +``` + +- AppImage Launcher + +> [https://github.com/TheAssassin/AppImageLauncher/](https://github.com/TheAssassin/AppImageLauncher/) + +- Docker + +> [https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/) + +- Dropbox + +> [https://www.dropbox.com/install](https://www.dropbox.com/install) + +- Go + +> [https://golang.org/doc/install](https://golang.org/doc/install) + +- Hugo + +> [https://github.com/gohugoio/hugo/releases](https://github.com/gohugoio/hugo/releases) + +- Keybase + +> [https://keybase.io/docs/the_app/install_linux](https://keybase.io/docs/the_app/install_linux) + +- MouseWheel + +> [https://github.com/muharemovic/MouseWheel](https://github.com/muharemovic/MouseWheel) + +- Neteasy 网易云音乐 + +> [https://music.163.com/#/download](https://music.163.com/#/download) + +- Nginx Mysql PHP + +> [https://eallion.com/ubuntu2004lnmp/](https://eallion.com/ubuntu2004lnmp/) + +- NVM + +> [https://github.com/nvm-sh/nvm](https://github.com/nvm-sh/nvm) + +- OBS + +> [https://obsproject.com/wiki/install-instructions#linux](https://obsproject.com/wiki/install-instructions#linux) + +- PicGo (snap install with `--danderous`) + +> [https://github.com/Molunerfinn/PicGo](https://github.com/Molunerfinn/PicGo) + +- qBittorrent Enhanced + +> [https://github.com/c0re100/qBittorrent-Enhanced-Edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition) +> [https://github.com/poplite/qBEE-Ubuntu-Packaging](https://github.com/poplite/qBEE-Ubuntu-Packaging) + +- QQ + +> [https://im.qq.com/linuxqq/index.html](https://im.qq.com/linuxqq/index.html) + +- Slack + +> [https://slack.com/downloads/linux](https://slack.com/downloads/linux) + +- Spofity + +> [https://www.spotify.com/us/download/linux/](https://www.spotify.com/us/download/linux/) + +- Termius + +> [https://termius.com/linux](https://termius.com/linux) + +- Typora + +> [https://typora.io/#linux](https://typora.io/#linux) + +- Visual Studio Code + +> 通过 Snap 仓库安装有中文输入 Bug 。 +> [https://code.visualstudio.com/Download](https://code.visualstudio.com/Download) \ No newline at end of file diff --git a/githelp.sh b/githelp.sh deleted file mode 100755 index 2ebc33a..0000000 --- a/githelp.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/bash -echo "ready push" -echo $1 -git add --all -git commit -m "$1" -git push origin master \ No newline at end of file diff --git a/setup.sh b/setup.sh index 2b00c1d..0afcfca 100755 --- a/setup.sh +++ b/setup.sh @@ -3,53 +3,46 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 1.0.0 #" +echo "# V 2.0.0 #" echo "#######################################################################" echo "" -echo "" +echo "详细安装可以参考:https://dora-cmon.github.io/posts/bbf09ec7/" -if [ "${Sources}" == "16.04" ]; then -test -f sources.list && result_0="y" -if [ "${result_0}" == "y" ]; then - echo "Begin copy" - sudo cp /etc/apt/sources.list Backup/sources.list - sudo cp sources.list /etc/apt/sources.list -else - echo -e "\033[41;37m The sources file which contains tsinghua sources does not exist! \033[0m" >> errorinit.log - echo -e "\033[41;37m Please check whether the file in the warehouse catalog is complete. \033[0m" >> errorinit.log - echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" >>errorinit.log - #echo -e "Coutinue?(Y/n) :\c" - #read yn - #if [ "${yn}" == "n" ] || [ "${yn}" == "N" ]; then - exit 0; - #fi -fi +# https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 +Sources=$(lsb_release -rs) + +if [ "${Sources}" == "22.04" ]; then + SOURCE_FILE="source22.04.list" +elif [ "${Sources}" == "20.04" ]; then + SOURCE_FILE="source20.04.list" +elif [ "${Sources}" == "18.04" ]; then + SOURCE_FILE="source18.04.list" +elif [ "${Sources}" == "16.04" ]; then + SOURCE_FILE="source16.04.list" elif [ "${Sources}" == "14.04" ]; then -test -f sources14.04.list && result_0="y" -if [ "${result_0}" == "y" ]; then - echo "Begin copy" - sudo cp /etc/apt/sources.list Backup/sources.list - sudo cp sources14.04.list /etc/apt/sources.list + SOURCE_FILE="source14.04.list" else - echo -e "\033[41;37m The sources file which contains tsinghua sources does not exist! \033[0m" >>errorinit.log - echo -e "\033[41;37m Please check whether the file in the warehouse catalog is complete. \033[0m" >> errorinit.log - echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" >>errorinit.log - #echo -e "Coutinue?(Y/n) :\c" - #read yn - #if [ "${yn}" == "n" ] || [ "${yn}" == "N" ]; then - exit 0; - #fi + echo -e "\033[41;37m The system version is not supported! \033[0m" | tee -a errorinit.log + echo -e "\033[41;37m (系统版本不支持!) \033[0m" | tee -a errorinit.log + echo -e "\033[41;37m 暂时默认支持16.04、18.04、20.04、22.04版本!这里默认替换了22.04版本 \033[0m" | tee -a errorinit.log + SOURCE_FILE="source22.04.list" fi -fi - +if [ -f "${SOURCE_FILE}" ]; then + echo "Begin copy" + sudo cp "${SOURCE_FILE}" /etc/apt/sources.list +else + echo -e "\033[41;37m The sources file which contains Tsinghua sources does not exist! \033[0m" | tee -a errorinit.log + echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" | tee -a errorinit.log + exit 0 +fi sudo apt install net-tools -sudo systemctl enable ssh.service +sudo systemctl enable ssh systemctl status ssh sudo systemctl start ssh sudo apt install openssh-server @@ -63,14 +56,17 @@ sleep 3 # install some tools: echo "install git" sudo apt-get install git -y +git config --global user.email "mpl9725440@gmail.com" +git config --global user.name "mpl9725440" sleep 3 echo "install curl" -apt-get install curl -y +sudo apt-get install curl -y +sudo apt install -y wget sleep 3 echo "install gdebi" -apt-get install gdebi -y +sudo apt-get install gdebi -y sleep 3 echo "install vim" @@ -82,6 +78,25 @@ sudo apt-get install unzip -y sleep 3 +echo "install tools start" +sudo apt install -y tree +sudo apt install -y htop +sudo apt install -y rar +sudo apt-get install -y ssh +sudo apt install -y sshpass +sudo apt-get install -y okular +sudo apt install -y wmctrl +sudo apt install -y gnome-tweaks +sudo apt-get install -y apt-transport-https +sudo apt install -y compizconfig-settings-manager +sudo apt install -y compiz-plugins-extra +sudo apt-get -y install meld +# Sticky Notes +sudo add-apt-repository ppa:kelebek333/mint-tools -y +sudo apt update -y && sudo apt install sticky -y +echo "install tools end" + + sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install \ @@ -126,6 +141,10 @@ sudo apt-get install -y indicator-sysmonitor indicator-sysmonitor & +echo "install picture edit gimp start" +sudo apt install gimp -y +echo "install picture edit gimp end" + # install VS code echo "install VS code" curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg @@ -190,12 +209,100 @@ sudo apt install kazam sleep 3 +sudo apt install -y figlet #将字符串在终端生成一个logo的终端工具 + +#gnome extensions +echo "install gnome" +sudo apt install -y gnome-shell-extension-manager +sudo apt-get install -y chrome-gnome-shell +echo "install gnome" +#gnome extensions +#桌面环境配置 +gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]" # disable Alt+F1 +gsettings set org.gnome.settings-daemon.plugins.media-keys terminal "['t']" # change alt+ctrl+t -> alt+t +gsettings set org.gnome.desktop.wm.keybindings activate-window-menu "[]" # disable window menu +# 关闭窗口动画效果 +gsettings set org.gnome.desktop.interface enable-animations false + + + echo "install Termius" sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" sudo dpkg -i ${vscodeName} sleep 3 +# https://github.com/clashdownload/Clash_Verge/releases +echo "install clash" + +# 下载 Clash (使用新的下载地址) +CLASH_VERSION="1.3.8" +ARCH="amd64" +wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage + +# 授予可执行权限并移动到 /usr/local/bin +chmod +x clash-verge.AppImage +sudo mv clash-verge.AppImage /usr/local/bin/clash-verge + +# 创建配置文件目录并下载示例配置文件 +mkdir -p ~/.config/clash +wget https://raw.githubusercontent.com/Dreamacro/clash/master/config.yaml -O ~/.config/clash/config.yaml + +# 创建 systemd 服务文件 +sudo tee /etc/systemd/system/clash-verge.service > /dev/null < /dev/null <> ~/.bashrc +source ~/.bashrc + +# 清理下载的安装文件 +rm clion.tar.gz + +echo "CLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。" + echo "" echo "#######################################################################" diff --git a/source14.04.list b/source14.04.list new file mode 100644 index 0000000..1734c77 --- /dev/null +++ b/source14.04.list @@ -0,0 +1,8 @@ +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse \ No newline at end of file diff --git a/source16.04.list b/source16.04.list new file mode 100644 index 0000000..1734c77 --- /dev/null +++ b/source16.04.list @@ -0,0 +1,8 @@ +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse \ No newline at end of file diff --git a/source18.04.list b/source18.04.list new file mode 100644 index 0000000..50137fc --- /dev/null +++ b/source18.04.list @@ -0,0 +1,13 @@ +# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse + +# 预发布软件源,不建议启用 +# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse diff --git a/source20.04.list b/source20.04.list new file mode 100644 index 0000000..19af6e7 --- /dev/null +++ b/source20.04.list @@ -0,0 +1,14 @@ +# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse + +# 预发布软件源,不建议启用 +# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse + diff --git a/source22.04.list b/source22.04.list new file mode 100644 index 0000000..479e1d3 --- /dev/null +++ b/source22.04.list @@ -0,0 +1,14 @@ +# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse +deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse + +# 预发布软件源,不建议启用 +# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse +# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse + diff --git a/test.sh b/test.sh deleted file mode 100755 index 3dedf6c..0000000 --- a/test.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/bash - -while getopts "g: b: c:" arg #选项后面的冒号表示该选项需要参数 -do - case $arg in - g) - echo "a's arg:$OPTARG" #参数存在$OPTARG中 - ;; - b) - echo "b's arg:$OPTARG" - ;; - c) - echo "c" - ;; - ?) #当有不认识的选项的时候arg为? - echo "unkonw argument" - exit 1 - ;; - esac -done \ No newline at end of file From d0e156d59f810dfdfd1dccda9cb3691784cd62c1 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 18 May 2024 22:37:13 +0800 Subject: [PATCH 10/80] note 2.0 --- setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.sh b/setup.sh index 0afcfca..f04af9c 100755 --- a/setup.sh +++ b/setup.sh @@ -9,6 +9,7 @@ echo "" echo "详细安装可以参考:https://dora-cmon.github.io/posts/bbf09ec7/" +echo "额外改进安装可以参考:https://github.com/yxSakana/UbuntuAutoConfigure" # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 From cad1a668c1d6e283879915376a0e94c0fd25f886 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 18 May 2024 22:47:20 +0800 Subject: [PATCH 11/80] Update README.md --- README.md | 117 ------------------------------------------------------ 1 file changed, 117 deletions(-) diff --git a/README.md b/README.md index 3d6b798..6a433ec 100644 --- a/README.md +++ b/README.md @@ -16,120 +16,3 @@ Linux Auto Configuration Script- Linux 软件自动安装配置脚本 简直苦不堪言,时间就是金钱,但是手贱喜欢换系统怎么办, 最后实在受不了了,自己写了一个自动化配置安装软件脚本 - -`用法` -``` -正确打开命令行: -git clone https://github.com/SickoOrange/UbuntuAutoScript.git -cd UbuntuAutoScript -chmod +x setup.sh -sudo ./ setup.sh -``` -> 如果你想自动配置你的github ssh 秘钥,只需要在命令上述命令后面追加 -g xxxxxxx@gmail.com即可,生成的秘钥会自动保存在桌面的github_ssh_key.txt文件中。 - -> sudo ./setup.sh -g xxxxxxx@gmail.com - - - 脚本已经在Github开源,欢迎随时 - `Start` - `Fork` - `Issue` -作者精力有限,所以还有什么没有想到希望大家多提意见 - -> Github: -> https://github.com/SickoOrange/UbuntuAutoScript - - - -### 这个Bash Script都帮我们干了啥? - -这里简单列举一下这个Bash Script的功能: - -1. 更新系统的软件源 -2. 针对Ubuntu16.04: -`楼主轻微桌面颜控,所以简单美观的桌面优化是必不可少的了` - - 自动下载安装Gnome桌面 - - 自动下载安装 Dash To Dock插件 (就是类似苹果的软件栏) - - 自动下载安装 ARC 风格主题 - - 自动下载安装 Flat Remix 扁平化图标 -3. 自动配置 Node Js 以及 npm, 开箱即用 -4. 自动下载配置 Oracle JDK,版本 1.8.0_151, 同时自动配置环境变量 - 打开Terminal - 输入 java -version 验证是否正确安装 -5. 自动安装Gradle 版本构建工具 -6. 自动安装sdkman 用于管理多个软件开发套件的并行版本的工具 -7. 自动安装Typora Linux版本的Markdown写作神器 -8. 安装常用小工具: -``` - Git -- 版本控制软件 - Curl -- 调试网络连接的小工具 - Gdebi -- 有些deb软件不能通过默认安装器安装的, 可以试试他 - Vim -- 不说了撸代码神器 - Unzip -- linux解压zip压缩文件 - unrar -- 解压rar - jd -- 命令行解析json工具 - kolourpaint4 -- 画图工具 - flameshot -- 截图工具 -``` -9. 自动下载安装常用的软件: -``` - Visual Studio Code - Genymotion - IntellijIDEA - ``` - - -#### 最后,时间仓促,目前就想到这么多,以后有什么需要的工具还会继续更新,如果大家有什么想法或者意见可以给我留言, 或者直接在Github上fork. - -``` - 07.07.2021 更新日志 - 1. 快捷截图工具 -``` -![image](https://user-images.githubusercontent.com/21984530/124705299-06297c00-df28-11eb-8aef-4f9636b7d69f.png) -![image](https://user-images.githubusercontent.com/21984530/124705331-14779800-df28-11eb-95e4-5adc341c26a0.png) - - -``` - 23.10.2017 更新日志 - 1. 添加了网易云音乐 - 2. 添加搜狗输入法 - ps: 搜狗输入法已经安装完毕,但是脚本只是帮你安装到系统了,你需要自己把搜狗输入法添加到fcitx中,如下图 -``` -> ![Screenshot from 2017-10-23 21-56-55.png](http://upload-images.jianshu.io/upload_images/3127217-3430d3da55a7fdfb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) - -``` -25.10.2017 更新日志 -1. 添加了 linux 命令行 Json解析工具 jd -2. 添加了 画图板 kolour paint -3. 修复了window与ubuntu双系统,时间不同步的错误 -4. 增加了自动配置github ssh -5. 添加解压rar工具 -``` - -``` -26.10.2017 更新日志 -1. 添加了SDKMAN!是一个用于管理多个软件开发套件的并行版本的工具 -2. 自动安装Gradle版本构建工具 -``` - -``` -29.10.2017 更新日志 -1.自动安装 maven -2.自动安装 docker - 2.1 mysql image - 2.2 tomcat image - 2.3 nginx image -``` - -``` -30.10.2017 更新日志 -1.自动安装 sqliteman linux下一款轻量级数据库图形化软件 -2. clementine linux下一款受欢迎的开源音乐播放软件 -``` - - -> 背景图片地址 -> http://i.imgur.com/nZLDzzk.jpg - -> Github地址: -> https://github.com/SickoOrange/UbuntuAutoScript From a2263b1e865e407d5ee354f4cc9fce32fc51a1a6 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:00:48 +0800 Subject: [PATCH 12/80] Update setup.sh --- setup.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.sh b/setup.sh index f04af9c..5cf973e 100755 --- a/setup.sh +++ b/setup.sh @@ -42,11 +42,11 @@ else fi -sudo apt install net-tools -sudo systemctl enable ssh -systemctl status ssh -sudo systemctl start ssh -sudo apt install openssh-server +#sudo apt install net-tools +#sudo systemctl enable ssh +#systemctl status ssh +#sudo systemctl start ssh +#sudo apt install openssh-server # update system echo "update system" From f550bbd3a44d6ad30fbb081406bd076ff33b7fda Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:14:35 +0800 Subject: [PATCH 13/80] Update setup.sh --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 5cf973e..bf60217 100755 --- a/setup.sh +++ b/setup.sh @@ -124,13 +124,13 @@ sleep 3 echo "install sougou" sudo apt-get remove -y fcitx* sudo apt-get autoremove -rm sogoupinyin_2.1.0.0086_amd64.deb* wget -q http://cdn2.ime.sogou.com/dl/index/1491565850/sogoupinyin_2.1.0.0086_amd64.deb?st=H6Fv3RXvgGFlgWBT3xkMZw&e=1507788214&fn=sogoupinyin_2.1.0.0086_amd64.deb echo -e "Install sougoupinyin,Please wait...\c" -sleep 300 +sleep 3 sudo dpkg -i sogoupinyin* sudo apt-get -yf install sudo dpkg -i sogoupinyin* +rm sogoupinyin_2.1.0.0086_amd64.deb* sleep 3 # 安装系统监视软件sysmonitor From 1e6602165cf42a2a2829b230fd94aa1b4f93319d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:21:53 +0800 Subject: [PATCH 14/80] note 2.0 --- setup.sh | 59 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/setup.sh b/setup.sh index bf60217..9856c0f 100755 --- a/setup.sh +++ b/setup.sh @@ -33,7 +33,7 @@ else fi if [ -f "${SOURCE_FILE}" ]; then - echo "Begin copy" + echo -e "\033[46;37mBegin copy \033[0m" sudo cp "${SOURCE_FILE}" /etc/apt/sources.list else echo -e "\033[41;37m The sources file which contains Tsinghua sources does not exist! \033[0m" | tee -a errorinit.log @@ -49,37 +49,37 @@ fi #sudo apt install openssh-server # update system -echo "update system" +echo -e "\033[46;37mupdate system \033[0m" sudo apt-get update -y sudo apt-get upgrade -y sleep 3 # install some tools: -echo "install git" +echo -e "\033[46;37minstall git \033[0m" sudo apt-get install git -y git config --global user.email "mpl9725440@gmail.com" git config --global user.name "mpl9725440" sleep 3 -echo "install curl" +echo -e "\033[46;37minstall curl \033[0m" sudo apt-get install curl -y sudo apt install -y wget sleep 3 -echo "install gdebi" +echo -e "\033[46;37minstall gdebi \033[0m" sudo apt-get install gdebi -y sleep 3 -echo "install vim" +echo -e "\033[46;37minstall vim \033[0m" sudo apt-get install -y vim sleep 3 -echo "install unzip" +echo -e "\033[46;37minstall unzip \033[0m" sudo apt-get install unzip -y sleep 3 -echo "install tools start" +echo -e "\033[46;37minstall tools start \033[0m" sudo apt install -y tree sudo apt install -y htop sudo apt install -y rar @@ -95,7 +95,7 @@ sudo apt-get -y install meld # Sticky Notes sudo add-apt-repository ppa:kelebek333/mint-tools -y sudo apt update -y && sudo apt install sticky -y -echo "install tools end" +echo -e "\033[46;37minstall tools end \033[0m" sudo apt-get remove docker docker-engine docker.io @@ -111,26 +111,25 @@ sudo add-apt-repository \ $(lsb_release -cs) \ stable" sudo apt-get update -echo "install docker.io" +echo -e "\033[46;37minstall docker.io \033[0m" sudo apt-get install docker-ce sleep 3 -echo "install terminator" +echo -e "\033[46;37minstall terminator \033[0m" # https://blog.csdn.net/zack_liu/article/details/120687194 sudo apt-get install terminator sleep 3 # install sougou -echo "install sougou" +echo -e "\033[46;37minstall sougou \033[0m" sudo apt-get remove -y fcitx* sudo apt-get autoremove -wget -q http://cdn2.ime.sogou.com/dl/index/1491565850/sogoupinyin_2.1.0.0086_amd64.deb?st=H6Fv3RXvgGFlgWBT3xkMZw&e=1507788214&fn=sogoupinyin_2.1.0.0086_amd64.deb +wget http://cdn2.ime.sogou.com/dl/index/1509619794/sogoupinyin_2.2.0.0102_amd64.deb echo -e "Install sougoupinyin,Please wait...\c" sleep 3 -sudo dpkg -i sogoupinyin* sudo apt-get -yf install -sudo dpkg -i sogoupinyin* -rm sogoupinyin_2.1.0.0086_amd64.deb* +sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb +rm sogoupinyin_2.2.0.0102_amd64.deb sleep 3 # 安装系统监视软件sysmonitor @@ -142,12 +141,12 @@ sudo apt-get install -y indicator-sysmonitor indicator-sysmonitor & -echo "install picture edit gimp start" +echo -e "\033[46;37minstall picture edit gimp start \033[0m" sudo apt install gimp -y -echo "install picture edit gimp end" +echo -e "\033[46;37minstall picture edit gimp end \033[0m" # install VS code -echo "install VS code" +echo -e "\033[46;37minstall VS code \033[0m" curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sleep 4 sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg @@ -171,12 +170,12 @@ sleep 3 #install flameshot -echo "install flameshot" +echo -e "\033[46;37minstall flameshot \033[0m" sudo apt-get install flameshot sleep 3 #install markdown editor tepora -echo "install markdown editor Typora" +echo -e "\033[46;37minstall markdown editor Typora \033[0m" wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - # 添加公钥 sudo add-apt-repository 'deb https://typora.io/linux ./' # 添加typora仓库 sudo apt-get update @@ -200,12 +199,12 @@ sudo apt-get -y install google-chrome-stable sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook #install meld -echo "install meld" +echo -e "\033[46;37minstall meld \033[0m" sudo apt-get install meld sleep 3 # install Kazam -echo "install kazam" +echo -e "\033[46;37minstall kazam \033[0m" sudo apt install kazam sleep 3 @@ -213,10 +212,10 @@ sleep 3 sudo apt install -y figlet #将字符串在终端生成一个logo的终端工具 #gnome extensions -echo "install gnome" +echo -e "\033[46;37minstall gnome \033[0m" sudo apt install -y gnome-shell-extension-manager sudo apt-get install -y chrome-gnome-shell -echo "install gnome" +echo -e "\033[46;37minstall gnome \033[0m" #gnome extensions #桌面环境配置 gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]" # disable Alt+F1 @@ -227,14 +226,14 @@ gsettings set org.gnome.desktop.interface enable-animations false -echo "install Termius" +echo -e "\033[46;37minstall Termius \033[0m" sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" sudo dpkg -i ${vscodeName} sleep 3 # https://github.com/clashdownload/Clash_Verge/releases -echo "install clash" +echo -e "\033[46;37minstall clash \033[0m" # 下载 Clash (使用新的下载地址) CLASH_VERSION="1.3.8" @@ -270,9 +269,9 @@ sudo systemctl daemon-reload sudo systemctl enable clash-verge sudo systemctl start clash-verge -echo "Clash Verge 安装和配置完成。" +echo -e "\033[46;37mClash Verge 安装和配置完成。 \033[0m" -echo "install clion" +echo -e "\033[46;37minstall clion \033[0m" # 下载 CLion (从 JetBrains 官方网站) CLION_VERSION="2023.1.1" wget https://download.jetbrains.com/cpp/CLion-${CLION_VERSION}.tar.gz -O clion.tar.gz @@ -302,7 +301,7 @@ source ~/.bashrc # 清理下载的安装文件 rm clion.tar.gz -echo "CLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。" +echo -e "\033[46;37mCLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。 \033[0m" echo "" From 72f6af124547e555f43320285b782c04a3a50fec Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:28:17 +0800 Subject: [PATCH 15/80] note 2.0 --- setup.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/setup.sh b/setup.sh index 9856c0f..8a2e62f 100755 --- a/setup.sh +++ b/setup.sh @@ -124,9 +124,27 @@ sleep 3 echo -e "\033[46;37minstall sougou \033[0m" sudo apt-get remove -y fcitx* sudo apt-get autoremove +echo -e "\033[46;37m 卸载已安装的搜狗输入法 \033[0m" +sudo apt -y --purge remove *fcitx* +sudo apt clean *fcitx* +cd ~ +rm -r .sogouinput +rm -r .config/fcitx +rm -r .config/sogou-qimpanel +rm -r .config/SogouPY +rm -r .config/SogouPY.users +rm -r .config/fcitx-qimpanel + +sudo apt-get install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 +sudo apt install libgsettings-qt1 +sudo apt install -y im-config fcitx +im-config -n fcitx + wget http://cdn2.ime.sogou.com/dl/index/1509619794/sogoupinyin_2.2.0.0102_amd64.deb echo -e "Install sougoupinyin,Please wait...\c" sleep 3 +sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb +sudo apt-get --fix-broken install sudo apt-get -yf install sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb rm sogoupinyin_2.2.0.0102_amd64.deb From e231125e2998f6ca9e466a2db236c85d8efd299d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:32:39 +0800 Subject: [PATCH 16/80] note 2.0 --- setup.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 8a2e62f..63541aa 100755 --- a/setup.sh +++ b/setup.sh @@ -135,8 +135,10 @@ rm -r .config/SogouPY rm -r .config/SogouPY.users rm -r .config/fcitx-qimpanel -sudo apt-get install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 +sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 sudo apt install libgsettings-qt1 +sudo apt install fcitx-bin +sudo apt-get install fcitx-table sudo apt install -y im-config fcitx im-config -n fcitx From d7b4b1bc9c9bafbba5e1f34bcc3df8d2fff00734 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:47:33 +0800 Subject: [PATCH 17/80] note 2.0 --- setup.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/setup.sh b/setup.sh index 63541aa..eb778a9 100755 --- a/setup.sh +++ b/setup.sh @@ -142,14 +142,13 @@ sudo apt-get install fcitx-table sudo apt install -y im-config fcitx im-config -n fcitx -wget http://cdn2.ime.sogou.com/dl/index/1509619794/sogoupinyin_2.2.0.0102_amd64.deb +wget https://ime.sogoucdn.com/dl/index/1612260778/sogoupinyin_2.4.0.3469_amd64.deb echo -e "Install sougoupinyin,Please wait...\c" sleep 3 -sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb +sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb sudo apt-get --fix-broken install sudo apt-get -yf install -sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb -rm sogoupinyin_2.2.0.0102_amd64.deb +sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb sleep 3 # 安装系统监视软件sysmonitor @@ -196,10 +195,10 @@ sleep 3 #install markdown editor tepora echo -e "\033[46;37minstall markdown editor Typora \033[0m" -wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - # 添加公钥 -sudo add-apt-repository 'deb https://typora.io/linux ./' # 添加typora仓库 -sudo apt-get update -sudo apt-get install typora # 安装typora +wget -qO - https://typora.io/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc +sudo add-apt-repository 'deb https://typora.io/linux ./' +sudo apt -y update +sudo apt -y install typora sleep 3 # install From e1675bba71eb4ecef12ebdfc90c6dcbd9421d55d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 11:59:03 +0800 Subject: [PATCH 18/80] note 2.0 --- setup.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.sh b/setup.sh index eb778a9..3ac48c3 100755 --- a/setup.sh +++ b/setup.sh @@ -195,10 +195,10 @@ sleep 3 #install markdown editor tepora echo -e "\033[46;37minstall markdown editor Typora \033[0m" -wget -qO - https://typora.io/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc -sudo add-apt-repository 'deb https://typora.io/linux ./' -sudo apt -y update -sudo apt -y install typora +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE +sudo add-apt-repository -y 'deb http://typora.io linux/' +sudo apt-get update +sudo apt-get install -y typora sleep 3 # install From 6c8d8430afac9a063fb8dc91ba68c75073c2abfd Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 12:37:41 +0800 Subject: [PATCH 19/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 3ac48c3..3ff50a1 100755 --- a/setup.sh +++ b/setup.sh @@ -247,7 +247,7 @@ gsettings set org.gnome.desktop.interface enable-animations false echo -e "\033[46;37minstall Termius \033[0m" sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" -sudo dpkg -i ${vscodeName} +sudo dpkg -i Termius.deb sleep 3 From 7bce19c3ee89553ccfa63a810479e6d919f3b79c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 19 May 2024 12:39:42 +0800 Subject: [PATCH 20/80] Update setup.sh --- setup.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/setup.sh b/setup.sh index 3ff50a1..c73599a 100755 --- a/setup.sh +++ b/setup.sh @@ -263,10 +263,6 @@ wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERS chmod +x clash-verge.AppImage sudo mv clash-verge.AppImage /usr/local/bin/clash-verge -# 创建配置文件目录并下载示例配置文件 -mkdir -p ~/.config/clash -wget https://raw.githubusercontent.com/Dreamacro/clash/master/config.yaml -O ~/.config/clash/config.yaml - # 创建 systemd 服务文件 sudo tee /etc/systemd/system/clash-verge.service > /dev/null < Date: Mon, 20 May 2024 22:44:43 +0800 Subject: [PATCH 21/80] Update setup.sh --- setup.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index c73599a..464973a 100755 --- a/setup.sh +++ b/setup.sh @@ -246,8 +246,10 @@ gsettings set org.gnome.desktop.interface enable-animations false echo -e "\033[46;37minstall Termius \033[0m" -sudo wget -O Termius.deb -c "https://autoupdate.termius.com/linux/Termius.deb" -sudo dpkg -i Termius.deb +wget --show-progress -O termius.deb https://autoupdate.termius.com/linux/Termius.deb +sudo apt install -y ./termius.deb +sudo rm ./termius.deb + sleep 3 From c368b267ee553b0c689c74f66db0663a1d3406bc Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Mon, 20 May 2024 23:14:50 +0800 Subject: [PATCH 22/80] update note 2.0 --- setup.sh | 75 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/setup.sh b/setup.sh index 464973a..6abb488 100755 --- a/setup.sh +++ b/setup.sh @@ -230,25 +230,40 @@ sleep 3 sudo apt install -y figlet #将字符串在终端生成一个logo的终端工具 -#gnome extensions -echo -e "\033[46;37minstall gnome \033[0m" -sudo apt install -y gnome-shell-extension-manager -sudo apt-get install -y chrome-gnome-shell -echo -e "\033[46;37minstall gnome \033[0m" -#gnome extensions -#桌面环境配置 -gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]" # disable Alt+F1 -gsettings set org.gnome.settings-daemon.plugins.media-keys terminal "['t']" # change alt+ctrl+t -> alt+t -gsettings set org.gnome.desktop.wm.keybindings activate-window-menu "[]" # disable window menu -# 关闭窗口动画效果 -gsettings set org.gnome.desktop.interface enable-animations false - - - -echo -e "\033[46;37minstall Termius \033[0m" -wget --show-progress -O termius.deb https://autoupdate.termius.com/linux/Termius.deb -sudo apt install -y ./termius.deb -sudo rm ./termius.deb + +# 更新系统并安装必要的依赖 +sudo apt update +sudo apt upgrade -y +sudo apt install -y git gnome-tweaks gnome-shell-extensions + +# 下载并安装WhiteSur主题 +git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git +cd WhiteSur-gtk-theme +./install.sh -c dark -c light -t all + +# 下载并安装WhiteSur图标 +git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git +cd WhiteSur-icon-theme +./install.sh + +# 下载并安装WhiteSur光标 +git clone https://github.com/vinceliuice/WhiteSur-cursors.git +cd WhiteSur-cursors +./install.sh + +# 安装GNOME扩展 +git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git +cd WhiteSur-gtk-theme +./install.sh --gdm + +# 应用主题和图标 +gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" +gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" +gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" +gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" + +# 提示完成 +echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" sleep 3 @@ -257,13 +272,18 @@ sleep 3 echo -e "\033[46;37minstall clash \033[0m" # 下载 Clash (使用新的下载地址) -CLASH_VERSION="1.3.8" +CLASH_VERSION="1.3.0" ARCH="amd64" -wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage -# 授予可执行权限并移动到 /usr/local/bin -chmod +x clash-verge.AppImage -sudo mv clash-verge.AppImage /usr/local/bin/clash-verge +if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" != "1.3.8" ]; then + wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage + # 授予可执行权限并移动到 /usr/local/bin + chmod +x clash-verge.AppImage + sudo mv clash-verge.AppImage /usr/local/bin/clash-verge +else + wget https://github.com/zzzgydi/clash-verge/releases/download/v${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.deb -O clash-verge.deb + sudo dpkg -i clash-verge.deb +fi # 创建 systemd 服务文件 sudo tee /etc/systemd/system/clash-verge.service > /dev/null < Date: Mon, 20 May 2024 23:30:11 +0800 Subject: [PATCH 23/80] update note 2.1 --- "20.04\346\211\213\345\206\214.md" | 11 ----------- setup.sh | 8 +++++++- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git "a/20.04\346\211\213\345\206\214.md" "b/20.04\346\211\213\345\206\214.md" index a2699f0..679d4ea 100644 --- "a/20.04\346\211\213\345\206\214.md" +++ "b/20.04\346\211\213\345\206\214.md" @@ -1,15 +1,4 @@ ---- -title: "Ubuntu 20.10 优化" -authors: ["eallion"] -categories: ["代码"] -tags: ["Ubuntu","优化","美化","ZFS","gnome"] -draft: false -slug: "ubuntu2010" -summary: "这篇文章介绍了Ubuntu 20.10的优化方法。内容包括更换软件源、系统设置、设置Sudo免密码、安装基础软件、去除鼠标加速、安装显卡驱动、下载个人配置、安装输入法、双系统时间设置、安装Guake、安装Oh My Tmux、安装Oh My Zsh、配置Vim、配置Grub引导、自动挂载硬盘、安装PulseAudio Volume Control、安装Docker、安装Gnome Shell Extensions、使用Flameshot进行截图、体验macOS Big Sur动态壁纸等。文章提醒读者不要照搬命令,建议最小化安装,并推荐使用清华大学的软件源。文中还附有作者的个人配置备份。" -date: "2020-10-23 10:25:00" -lastmod: "2020-10-23 10:25:00" ---- **安装 Ubuntu 后的 20 件事** ![](/assets/images/posts/2020/10/ubuntu2010.png) diff --git a/setup.sh b/setup.sh index 6abb488..2a8cc7f 100755 --- a/setup.sh +++ b/setup.sh @@ -275,7 +275,7 @@ echo -e "\033[46;37minstall clash \033[0m" CLASH_VERSION="1.3.0" ARCH="amd64" -if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" != "1.3.8" ]; then +if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage # 授予可执行权限并移动到 /usr/local/bin chmod +x clash-verge.AppImage @@ -285,6 +285,10 @@ else sudo dpkg -i clash-verge.deb fi +https://github.com/zzzgydi/clash-verge/releases/download/v1.3.0/clash-verge_1.3.0_amd64.deb +https://github.com/zzzgydi/clash-verge/releases/download/v1.3.0/clash-verge_1.3.0_amd64.deb +https://github.com/zzzgydi/clash-verge/releases/download/v1.2.0/clash-verge_1.2.0_amd64.deb + # 创建 systemd 服务文件 sudo tee /etc/systemd/system/clash-verge.service > /dev/null < Date: Tue, 21 May 2024 10:02:53 +0800 Subject: [PATCH 24/80] Update setup.sh --- setup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 2a8cc7f..9b12e65 100755 --- a/setup.sh +++ b/setup.sh @@ -270,7 +270,8 @@ sleep 3 # https://github.com/clashdownload/Clash_Verge/releases echo -e "\033[46;37minstall clash \033[0m" - +sudo apt-get install libayatana-indicator3-7 +sudo apt --fix-broken install libayatana-appindicator3-1 # 下载 Clash (使用新的下载地址) CLASH_VERSION="1.3.0" ARCH="amd64" From 0841531aca4a2c5edd72c9d764bf545405cf2591 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 21 May 2024 21:37:35 +0800 Subject: [PATCH 25/80] Update setup.sh --- setup.sh | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/setup.sh b/setup.sh index 9b12e65..525105a 100755 --- a/setup.sh +++ b/setup.sh @@ -270,46 +270,49 @@ sleep 3 # https://github.com/clashdownload/Clash_Verge/releases echo -e "\033[46;37minstall clash \033[0m" -sudo apt-get install libayatana-indicator3-7 -sudo apt --fix-broken install libayatana-appindicator3-1 # 下载 Clash (使用新的下载地址) CLASH_VERSION="1.3.0" ARCH="amd64" -if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then - wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage - # 授予可执行权限并移动到 /usr/local/bin - chmod +x clash-verge.AppImage - sudo mv clash-verge.AppImage /usr/local/bin/clash-verge -else - wget https://github.com/zzzgydi/clash-verge/releases/download/v${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.deb -O clash-verge.deb - sudo dpkg -i clash-verge.deb -fi +# 更新系统并安装必要的软件 +sudo apt update && sudo apt upgrade -y +sudo apt install -y wget gzip + +# 下载并解压 Clash 二进制文件 +CLASH_VERSION="v1.18.0" +wget https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-$ARCH-$CLASH_VERSION.gz +gzip -d clash-linux-amd64-$CLASH_VERSION.gz +sudo mv clash-linux-amd64-$CLASH_VERSION /usr/local/bin/clash +sudo chmod +x /usr/local/bin/clash -https://github.com/zzzgydi/clash-verge/releases/download/v1.3.0/clash-verge_1.3.0_amd64.deb -https://github.com/zzzgydi/clash-verge/releases/download/v1.3.0/clash-verge_1.3.0_amd64.deb -https://github.com/zzzgydi/clash-verge/releases/download/v1.2.0/clash-verge_1.2.0_amd64.deb +# 创建配置文件目录 +sudo mkdir -p /etc/clash +sudo touch /etc/clash/config.yaml +# 可以根据需要修改config.yaml内容 -# 创建 systemd 服务文件 -sudo tee /etc/systemd/system/clash-verge.service > /dev/null < /etc/systemd/system/clash.service [Unit] -Description=Clash Verge Daemon -After=network.target +Description=Clash daemon, A rule-based proxy in Go. +After=network-online.target [Service] Type=simple -ExecStart=/usr/local/bin/clash-verge -d /home/$USER/.config/clash -Restart=on-failure -RestartSec=5s +Restart=always +ExecStart=/usr/local/bin/clash -d /etc/clash [Install] WantedBy=multi-user.target -EOF +EOF' -# 启用并启动 Clash Verge 服务 +# 重载 Systemd 并设置 Clash 开机自动启动 sudo systemctl daemon-reload -sudo systemctl enable clash-verge -sudo systemctl start clash-verge +sudo systemctl enable clash +sudo systemctl start clash + +# 检查 Clash 服务状态 +sudo systemctl status clash + echo -e "\033[46;37mClash Verge 安装和配置完成。 \033[0m" From 5db770bc8700ff1f3c583234104baeef3eb5f560 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 21 May 2024 22:06:18 +0800 Subject: [PATCH 26/80] Update clash --- setup.sh | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/setup.sh b/setup.sh index 525105a..892d864 100755 --- a/setup.sh +++ b/setup.sh @@ -269,49 +269,52 @@ sleep 3 # https://github.com/clashdownload/Clash_Verge/releases -echo -e "\033[46;37minstall clash \033[0m" -# 下载 Clash (使用新的下载地址) +echo -e "\033[46;37minstall clash verge \033[0m" + +# 设置 Clash Verge 版本号和架构 CLASH_VERSION="1.3.0" ARCH="amd64" -# 更新系统并安装必要的软件 -sudo apt update && sudo apt upgrade -y -sudo apt install -y wget gzip +# 下载 Clash Verge (使用新的下载地址) +if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then + wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage +else + wget https://github.com/zzzgydi/clash-verge/releases/download/v${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage +fi -# 下载并解压 Clash 二进制文件 -CLASH_VERSION="v1.18.0" -wget https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-$ARCH-$CLASH_VERSION.gz -gzip -d clash-linux-amd64-$CLASH_VERSION.gz -sudo mv clash-linux-amd64-$CLASH_VERSION /usr/local/bin/clash -sudo chmod +x /usr/local/bin/clash +# 移动并设置权限 +sudo mv clash-verge.AppImage /opt/clash-verge.AppImage +sudo chmod +x /opt/clash-verge.AppImage +sudo chown $USER:$USER /opt/clash-verge.AppImage +sudo ln -fs /opt/clash-verge.AppImage /usr/local/bin/clash-verge -# 创建配置文件目录 -sudo mkdir -p /etc/clash -sudo touch /etc/clash/config.yaml -# 可以根据需要修改config.yaml内容 +# 创建配置目录 +mkdir -p /home/$USER/.config/clash -# 创建 Systemd 服务文件 -sudo bash -c 'cat << EOF > /etc/systemd/system/clash.service +# 设置系统服务文件 +sudo bash -c 'cat > /etc/systemd/system/clash-verge.service < Date: Tue, 21 May 2024 22:15:37 +0800 Subject: [PATCH 27/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 892d864..a52a000 100755 --- a/setup.sh +++ b/setup.sh @@ -272,7 +272,7 @@ sleep 3 echo -e "\033[46;37minstall clash verge \033[0m" # 设置 Clash Verge 版本号和架构 -CLASH_VERSION="1.3.0" +CLASH_VERSION="1.2.0" ARCH="amd64" # 下载 Clash Verge (使用新的下载地址) From df6011563463fd4c118069a4ceb7b08735aaba08 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 21 May 2024 22:36:55 +0800 Subject: [PATCH 28/80] Update setup.sh --- setup.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index a52a000..63f2d38 100755 --- a/setup.sh +++ b/setup.sh @@ -239,22 +239,26 @@ sudo apt install -y git gnome-tweaks gnome-shell-extensions # 下载并安装WhiteSur主题 git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-theme -./install.sh -c dark -c light -t all +./install.sh +cd .. # 下载并安装WhiteSur图标 git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git cd WhiteSur-icon-theme ./install.sh +cd .. # 下载并安装WhiteSur光标 git clone https://github.com/vinceliuice/WhiteSur-cursors.git cd WhiteSur-cursors ./install.sh +cd .. # 安装GNOME扩展 git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-theme -./install.sh --gdm +./install.sh +cd .. # 应用主题和图标 gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" From 471c18cdeb9cc95b1d897f247b4a104c0ff9e935 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 22 May 2024 15:29:07 +0800 Subject: [PATCH 29/80] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=84=9A=E6=9C=AC=203.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6a433ec..6dddab0 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -# UbuntuAutoScript -Linux Auto Configuration Script- Linux 软件自动安装配置脚本 +# Ubuntu 配置脚本 README +## 介绍 -废话不多说,先来一张效果图,没图片你们肯定是不会看下去的。 -简单的运行一下脚本,然后喝杯咖啡,打个游戏,做点其他事情,然后就没有然后了 +欢迎使用 Ubuntu 配置脚本 README。本文件将指导您如何使用 `setup.bash` 脚本来配置您的 Ubuntu 系统,安装各种工具和实用程序。该脚本提供了一种方便的方法来安装一系列的软件包,您可以选择进行完整安装,或者根据需要选择特定的软件包进行安装。 ![Screenshot from 2017-10-23 22-01-52.png](http://upload-images.jianshu.io/upload_images/3127217-5aba480a92e0229e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) @@ -12,7 +11,91 @@ Linux Auto Configuration Script- Linux 软件自动安装配置脚本 ![Screenshot from 2017-10-23 22-01-35.png](http://upload-images.jianshu.io/upload_images/3127217-259258316bcc280f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) -写这个脚本的原因是因为作者手太贱,我有一颗强烈的好奇心,但是同时又有一双︿( ̄︶ ̄)︿非常贱贱的双手,所以当作者在安装了无数个Linux发行版之后,再疲于每一次安装都需要重新安装软件,配置各种环境变量的生活, -简直苦不堪言,时间就是金钱,但是手贱喜欢换系统怎么办, -最后实在受不了了,自己写了一个自动化配置安装软件脚本 +![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/be2bd70f02034279ad6ca2dea364a2bb.png) + +## 脚本概述 + +`setup.bash` 脚本旨在自动化安装和配置各种软件包。您可以通过运行脚本并按照提示进行选择,来轻松地设置开发环境、办公工具、媒体工具等。脚本支持不同的 Ubuntu 版本,并包含多个功能模块,用户可以根据需要选择安装。 + +## 使用说明 + +### 前提条件 + +在运行脚本之前,请确保您的系统满足以下条件: + +1. 运行 Ubuntu 操作系统(支持 14.04、16.04、18.04、20.04、22.04 版本)。 +2. 您具有 sudo 权限。 +3. 系统已连接到互联网。 + +### 下载和运行脚本 + +1. 打开终端。 +2. 下载脚本文件: + ```bash + git clone https://github.com/lovelyyoshino/UbuntuAutoScript.git + ``` +3. 赋予脚本执行权限: + ```bash + cd UbuntuAutoScript + chmod +x setup.bash + ``` +4. 运行脚本: + ```bash + ./setup.bash + ``` + +### 使用脚本 + +运行脚本后,您将看到如下提示: + +``` +请按回车键以全部安装,或者输入您想安装的功能编号(用空格分隔,例如:1 3 8): +``` + +您有两种选择: +1. **直接按回车键**:脚本将自动安装所有功能。 +2. **输入数字选项**:根据您的需要选择要安装的功能模块,数字之间用空格分隔。例如,输入 `1 3 8` 表示安装功能 1、3 和 8。 + +### 可选安装功能列表 + +以下是脚本中可选的安装功能及其对应的数字编号: + +1. **更新系统** +2. **安装基础工具** +3. **安装 Docker** +4. **安装 Terminator 终端** +5. **安装搜狗输入法** +6. **安装系统监视工具** +7. **安装 GIMP 图像编辑器** +8. **安装 VS Code 编辑器** +9. **安装 Sublime Text 编辑器** +10. **安装 Flameshot 截图工具** +11. **安装 Typora Markdown 编辑器** +12. **安装网易云音乐** +13. **安装 Google Chrome 浏览器** +14. **安装 Meld 比较工具** +15. **安装 Kazam 屏幕录制工具** +16. **安装 Figlet** +17. **安装 WhiteSur 主题** +18. **安装 Clash** +19. **安装 CLion** +20. **安装 Miniconda** + +### 示例 + +1. **安装所有功能**: + 运行脚本并直接按回车键。 + + ```bash + ./setup.bash + ``` + +2. **选择性安装功能**: + 运行脚本并输入数字选项,例如只安装更新系统、Docker 和 VS Code: + + ```bash + ./setup.bash 1 3 8 + ``` + +if [ -f "${SOURCE_FILE}" ]; then From e7bdb4ef584869cea128696863a9c826a6225527 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 22 May 2024 15:30:58 +0800 Subject: [PATCH 30/80] =?UTF-8?q?Update=20=E8=87=AA=E5=8A=A8=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E8=84=9A=E6=9C=AC=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 673 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 364 insertions(+), 309 deletions(-) diff --git a/setup.sh b/setup.sh index 63f2d38..834b074 100755 --- a/setup.sh +++ b/setup.sh @@ -1,17 +1,15 @@ -#!/bin/bash +#!/bin/bash echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 2.0.0 #" +echo "# V 3.0.0 #" echo "#######################################################################" echo "" - echo "详细安装可以参考:https://dora-cmon.github.io/posts/bbf09ec7/" echo "额外改进安装可以参考:https://github.com/yxSakana/UbuntuAutoConfigure" - # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 Sources=$(lsb_release -rs) @@ -41,301 +39,245 @@ else exit 0 fi - -#sudo apt install net-tools -#sudo systemctl enable ssh -#systemctl status ssh -#sudo systemctl start ssh -#sudo apt install openssh-server - -# update system -echo -e "\033[46;37mupdate system \033[0m" -sudo apt-get update -y -sudo apt-get upgrade -y -sleep 3 - -# install some tools: -echo -e "\033[46;37minstall git \033[0m" -sudo apt-get install git -y -git config --global user.email "mpl9725440@gmail.com" -git config --global user.name "mpl9725440" -sleep 3 - -echo -e "\033[46;37minstall curl \033[0m" -sudo apt-get install curl -y -sudo apt install -y wget -sleep 3 - -echo -e "\033[46;37minstall gdebi \033[0m" -sudo apt-get install gdebi -y -sleep 3 - -echo -e "\033[46;37minstall vim \033[0m" -sudo apt-get install -y vim -sleep 3 - -echo -e "\033[46;37minstall unzip \033[0m" -sudo apt-get install unzip -y -sleep 3 - - -echo -e "\033[46;37minstall tools start \033[0m" -sudo apt install -y tree -sudo apt install -y htop -sudo apt install -y rar -sudo apt-get install -y ssh -sudo apt install -y sshpass -sudo apt-get install -y okular -sudo apt install -y wmctrl -sudo apt install -y gnome-tweaks -sudo apt-get install -y apt-transport-https -sudo apt install -y compizconfig-settings-manager -sudo apt install -y compiz-plugins-extra -sudo apt-get -y install meld -# Sticky Notes -sudo add-apt-repository ppa:kelebek333/mint-tools -y -sudo apt update -y && sudo apt install sticky -y -echo -e "\033[46;37minstall tools end \033[0m" - - -sudo apt-get remove docker docker-engine docker.io -sudo apt-get update -sudo apt-get install \ - apt-transport-https \ - ca-certificates \ - curl \ - software-properties-common -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - -sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) \ - stable" -sudo apt-get update -echo -e "\033[46;37minstall docker.io \033[0m" -sudo apt-get install docker-ce -sleep 3 - -echo -e "\033[46;37minstall terminator \033[0m" -# https://blog.csdn.net/zack_liu/article/details/120687194 -sudo apt-get install terminator -sleep 3 - -# install sougou -echo -e "\033[46;37minstall sougou \033[0m" -sudo apt-get remove -y fcitx* -sudo apt-get autoremove -echo -e "\033[46;37m 卸载已安装的搜狗输入法 \033[0m" -sudo apt -y --purge remove *fcitx* -sudo apt clean *fcitx* -cd ~ -rm -r .sogouinput -rm -r .config/fcitx -rm -r .config/sogou-qimpanel -rm -r .config/SogouPY -rm -r .config/SogouPY.users -rm -r .config/fcitx-qimpanel - -sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 -sudo apt install libgsettings-qt1 -sudo apt install fcitx-bin -sudo apt-get install fcitx-table -sudo apt install -y im-config fcitx -im-config -n fcitx - -wget https://ime.sogoucdn.com/dl/index/1612260778/sogoupinyin_2.4.0.3469_amd64.deb -echo -e "Install sougoupinyin,Please wait...\c" -sleep 3 -sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb -sudo apt-get --fix-broken install -sudo apt-get -yf install -sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb -sleep 3 - -# 安装系统监视软件sysmonitor -sudo apt-get purge -y unity-webapps-common - -sudo add-apt-repository -y ppa:fossfreedom/indicator-sysmonitor -sudo apt-get update -sudo apt-get install -y indicator-sysmonitor -indicator-sysmonitor & - - -echo -e "\033[46;37minstall picture edit gimp start \033[0m" -sudo apt install gimp -y -echo -e "\033[46;37minstall picture edit gimp end \033[0m" - -# install VS code -echo -e "\033[46;37minstall VS code \033[0m" -curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg -sleep 4 -sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg -sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' -sudo apt-get update -sudo apt-get -y install code -echo -e "\033[46;37m VS code was installed successfully! \033[0m" -echo -e "\033[46;37m (vscode安装成功!) \033[0m" -sleep 3 - -# install sublime -wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - -sleep 2 -sudo apt-get install -y apt-transport-https -echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list -sudo apt-get update -sudo apt-get -y install sublime-text -echo -e "\033[46;37m The sublime text3 was installed successfully! \033[0m" -echo -e "\033[46;37m (sublime安装成功!) \033[0m" -sleep 3 - - -#install flameshot -echo -e "\033[46;37minstall flameshot \033[0m" -sudo apt-get install flameshot -sleep 3 - -#install markdown editor tepora -echo -e "\033[46;37minstall markdown editor Typora \033[0m" -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE -sudo add-apt-repository -y 'deb http://typora.io linux/' -sudo apt-get update -sudo apt-get install -y typora -sleep 3 - -# install -wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb -echo -e "Install netease-cloud-music,Please wait...\c" -sleep 150 -sudo dpkg -i netease-cloud-music* -sudo apt-get -yf install -sudo dpkg -i netease-cloud-music* -sleep 3 - -# chrome 安装 -wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - -sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' -sudo apt-get update -sudo apt-get -y install google-chrome-stable -sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook - -#install meld -echo -e "\033[46;37minstall meld \033[0m" -sudo apt-get install meld -sleep 3 - -# install Kazam -echo -e "\033[46;37minstall kazam \033[0m" -sudo apt install kazam -sleep 3 - - -sudo apt install -y figlet #将字符串在终端生成一个logo的终端工具 - - -# 更新系统并安装必要的依赖 -sudo apt update -sudo apt upgrade -y -sudo apt install -y git gnome-tweaks gnome-shell-extensions - -# 下载并安装WhiteSur主题 -git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git -cd WhiteSur-gtk-theme -./install.sh -cd .. - -# 下载并安装WhiteSur图标 -git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git -cd WhiteSur-icon-theme -./install.sh -cd .. - -# 下载并安装WhiteSur光标 -git clone https://github.com/vinceliuice/WhiteSur-cursors.git -cd WhiteSur-cursors -./install.sh -cd .. - -# 安装GNOME扩展 -git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git -cd WhiteSur-gtk-theme -./install.sh -cd .. - -# 应用主题和图标 -gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" -gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" -gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" -gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" - -# 提示完成 -echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" - -sleep 3 - - -# https://github.com/clashdownload/Clash_Verge/releases -echo -e "\033[46;37minstall clash verge \033[0m" - -# 设置 Clash Verge 版本号和架构 -CLASH_VERSION="1.2.0" -ARCH="amd64" - -# 下载 Clash Verge (使用新的下载地址) -if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then - wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage -else - wget https://github.com/zzzgydi/clash-verge/releases/download/v${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage -fi - -# 移动并设置权限 -sudo mv clash-verge.AppImage /opt/clash-verge.AppImage -sudo chmod +x /opt/clash-verge.AppImage -sudo chown $USER:$USER /opt/clash-verge.AppImage -sudo ln -fs /opt/clash-verge.AppImage /usr/local/bin/clash-verge - -# 创建配置目录 -mkdir -p /home/$USER/.config/clash - -# 设置系统服务文件 -sudo bash -c 'cat > /etc/systemd/system/clash-verge.service < microsoft.gpg + sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg + sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' + sudo apt-get update + sudo apt-get -y install code + echo -e "\033[46;37m VS code was installed successfully! \033[0m" + sleep 3 +} + +# Function to install Sublime Text +install_sublime() { + wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - + sudo apt-get install -y apt-transport-https + echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list + sudo apt-get update + sudo apt-get -y install sublime-text + echo -e "\033[46;37m The sublime text3 was installed successfully! \033[0m" + sleep 3 +} + +# Function to install Flameshot +install_flameshot() { + echo -e "\033[46;37minstall flameshot \033[0m" + sudo apt-get install flameshot -y + sleep 3 +} + +# Function to install Typora +install_typora() { + echo -e "\033[46;37minstall markdown editor Typora \033[0m" + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE + sudo add-apt-repository -y 'deb http://typora.io linux/' + sudo apt-get update + sudo apt-get install -y typora + sleep 3 +} + +# Function to install Netease Cloud Music +install_netease_music() { + wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb + echo -e "Install netease-cloud-music,Please wait...\c" + sleep 3 + sudo dpkg -i netease-cloud-music* + sudo apt-get -yf install -y + sudo dpkg -i netease-cloud-music* + sleep 3 +} + +# Function to install Google Chrome +install_chrome() { + wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - + sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' + sudo apt-get update + sudo apt-get -y install google-chrome-stable + sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook -y +} + +# Function to install Meld +install_meld() { + echo -e "\033[46;37minstall meld \033[0m" + sudo apt-get install meld -y + sleep 3 +} + +# Function to install Kazam +install_kazam() { + echo -e "\033[46;37minstall kazam \033[0m" + sudo apt install kazam -y + sleep 3 +} + +# Function to install Figlet +install_figlet() { + sudo apt install -y figlet +} + +# Function to install WhiteSur theme +install_whitesur_theme() { + sudo apt update + sudo apt upgrade -y + sudo apt install -y git gnome-tweaks gnome-shell-extensions + git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git + cd WhiteSur-gtk-theme + ./install.sh -c dark -c light -t all + git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git + cd WhiteSur-icon-theme + ./install.sh + git clone https://github.com/vinceliuice/WhiteSur-cursors.git + cd WhiteSur-cursors + ./install.sh + git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git + cd WhiteSur-gtk-theme + ./install.sh --gdm + gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" + gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" + gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" + gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" + echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" + sleep 3 +} + +# Function to install Clash +install_clash() { + sudo apt-get install libayatana-indicator3-7 -y + sudo apt --fix-broken install libayatana-appindicator3-1 -y + CLASH_VERSION="1.3.0" + ARCH="amd64" + if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then + wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage + chmod +x clash-verge.AppImage + sudo mv clash-verge.AppImage /usr/local/bin/clash-verge + else + wget https://github.com/zzzgydi/clash-verge/releases/download/v${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.deb -O clash-verge.deb + sudo dpkg -i clash-verge.deb + fi + sudo tee /etc/systemd/system/clash-verge.service > /dev/null < /dev/null < /dev/null <> ~/.bashrc -source ~/.bashrc - -# 清理下载的安装文件 -rm clion.tar.gz - -echo -e "\033[46;37mCLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。 \033[0m" - - -# install miniconda -echo -e "\033[46;37m Miniconda3 暂时没有安装 \033[0m" -# wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -# chmod +x Miniconda3-latest-Linux-x86_64.sh -# ./Miniconda3-latest-Linux-x86_64.sh - + echo 'export PATH=/opt/clion/bin:$PATH' >> ~/.bashrc + source ~/.bashrc + rm clion.tar.gz + echo -e "\033[46;37mCLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。 \033[0m" +} + +# Function to install Miniconda +install_miniconda() { + echo -e "\033[46;37m Miniconda3 暂时没有安装 \033[0m" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh + chmod +x Miniconda3-latest-Linux-x86_64.sh + ./Miniconda3-latest-Linux-x86_64.sh +} + +echo -e "\033[34m 这里是主程序,具体是---------- +1:更新系统 +2:安装基础工具 +3:安装docker +4:安装terminator +5:安装搜狗输入法 +6:安装系统监视器 +7:安装GIMP +8:安装VS Code +9:安装Sublime Text +10:安装Flameshot +11:安装Typora +12:安装网易云音乐 +13:安装Chrome +14:安装Meld +15:安装Kazam +16:安装Figlet +17:安装WhiteSur主题 +18:安装Clash +19:安装CLion +20:安装Miniconda\033[0m" + +echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" +# Prompt user for input +read -p "请输入数字: " input + +# If no input, install all packages +if [ -z "$input" ]; then + install_all +else + # Install selected packages based on user input + for arg in $input; do + case $arg in + 1) + update_system + ;; + 2) + update_system + install_basic_tools + ;; + 3) + update_system + install_docker + ;; + 4) + update_system + install_terminator + ;; + 5) + update_system + install_sougou + ;; + 6) + update_system + install_sysmonitor + ;; + 7) + update_system + install_gimp + ;; + 8) + update_system + install_vscode + ;; + 9) + update_system + install_sublime + ;; + 10) + update_system + install_flameshot + ;; + 11) + update_system + install_typora + ;; + 12) + update_system + install_netease_music + ;; + 13) + update_system + install_chrome + ;; + 14) + update_system + install_meld + ;; + 15) + update_system + install_kazam + ;; + 16) + update_system + install_figlet + ;; + 17) + update_system + install_whitesur_theme + ;; + 18) + update_system + install_clash + ;; + 19) + update_system + install_clion + ;; + 20) + update_system + install_miniconda + ;; + *) + echo "Unknown option: $arg" + ;; + esac + done +fi echo "" echo "#######################################################################" echo "# FINISH!!!!!!!!! #" echo "#######################################################################" echo "" - - From 972fa6cc29fda567cb8bfe79f580d12f2b44fd78 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 22 May 2024 15:32:45 +0800 Subject: [PATCH 31/80] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 6dddab0..9629aa9 100644 --- a/README.md +++ b/README.md @@ -97,5 +97,3 @@ ```bash ./setup.bash 1 3 8 ``` - -if [ -f "${SOURCE_FILE}" ]; then From fc4c13e70b4e37c71d4890950102c9ca3f4bbf23 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 22 May 2024 15:58:29 +0800 Subject: [PATCH 32/80] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Termius?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/setup.sh b/setup.sh index 834b074..0e9d414 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.0 #" +echo "# V 3.0.1 #" echo "#######################################################################" echo "" @@ -60,7 +60,8 @@ install_all() { install_whitesur_theme install_clash install_clion - echo -e "\033[46;37mAll installations completed! \033[0m" + install_termius + echo -e "\033[46;37mAll installations 安装完成。\033[0m" } # Function to update the system @@ -69,6 +70,7 @@ update_system() { sudo apt-get update -y sudo apt-get upgrade -y sleep 3 + echo -e "\033[46;37mupdate system 安装完成。 \033[0m" } # Function to install basic tools @@ -79,10 +81,12 @@ install_basic_tools() { sudo add-apt-repository ppa:kelebek333/mint-tools -y sudo apt update -y && sudo apt install sticky -y sleep 3 + echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" } # Function to install Docker install_docker() { + echo -e "\033[46;37minstall docker \033[0m" sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y @@ -92,6 +96,7 @@ install_docker() { echo -e "\033[46;37minstall docker.io \033[0m" sudo apt-get install docker-ce -y sleep 3 + echo -e "\033[46;37minstall docker-compose 安装完成。 \033[0m" } # Function to install Terminator @@ -99,6 +104,7 @@ install_terminator() { echo -e "\033[46;37minstall terminator \033[0m" sudo apt-get install terminator -y sleep 3 + echo -e "\033[46;37minstall terminator 安装完成。 \033[0m" } # Function to install Sougou @@ -114,22 +120,27 @@ install_sougou() { sudo apt-get -yf install -y sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb sleep 3 + echo -e "\033[46;37minstall sougou 安装完成。 \033[0m" } # Function to install system monitor install_sysmonitor() { + echo -e "\033[46;37minstall system monitor \033[0m" sudo apt-get purge -y unity-webapps-common sudo add-apt-repository -y ppa:fossfreedom/indicator-sysmonitor sudo apt-get update sudo apt-get install -y indicator-sysmonitor indicator-sysmonitor & + sleep 3 + echo -e "\033[46;37minstall system monitor 安装完成。 \033[0m" } # Function to install GIMP install_gimp() { echo -e "\033[46;37minstall picture edit gimp start \033[0m" sudo apt install gimp -y - echo -e "\033[46;37minstall picture edit gimp end \033[0m" + sleep 3 + echo -e "\033[46;37minstall picture edit gimp 安装完成。 \033[0m" } # Function to install VS Code @@ -142,10 +153,12 @@ install_vscode() { sudo apt-get -y install code echo -e "\033[46;37m VS code was installed successfully! \033[0m" sleep 3 + echo -e "\033[46;37minstall VS code 安装完成。 \033[0m" } # Function to install Sublime Text install_sublime() { + echo -e "\033[46;37minstall sublime text \033[0m" wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - sudo apt-get install -y apt-transport-https echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list @@ -153,6 +166,7 @@ install_sublime() { sudo apt-get -y install sublime-text echo -e "\033[46;37m The sublime text3 was installed successfully! \033[0m" sleep 3 + echo -e "\033[46;37minstall sublime text 安装完成。 \033[0m" } # Function to install Flameshot @@ -160,6 +174,7 @@ install_flameshot() { echo -e "\033[46;37minstall flameshot \033[0m" sudo apt-get install flameshot -y sleep 3 + echo -e "\033[46;37minstall flameshot 安装完成。 \033[0m" } # Function to install Typora @@ -170,10 +185,12 @@ install_typora() { sudo apt-get update sudo apt-get install -y typora sleep 3 + echo -e "\033[46;37minstall markdown editor Typora 安装完成。 \033[0m" } # Function to install Netease Cloud Music install_netease_music() { + echo -e "\033[46;37mInstall Netease Cloud Music \033[0m" wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb echo -e "Install netease-cloud-music,Please wait...\c" sleep 3 @@ -181,15 +198,19 @@ install_netease_music() { sudo apt-get -yf install -y sudo dpkg -i netease-cloud-music* sleep 3 + echo -e "\033[46;37m Netease Cloud Music 安装完成。 \033[0m" } # Function to install Google Chrome install_chrome() { + echo -e "\033[46;37mInstall Google Chrome \033[0m" wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' sudo apt-get update sudo apt-get -y install google-chrome-stable sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook -y + sleep 3 + echo -e "\033[46;37m Google Chrome 安装完成。 \033[0m" } # Function to install Meld @@ -197,6 +218,7 @@ install_meld() { echo -e "\033[46;37minstall meld \033[0m" sudo apt-get install meld -y sleep 3 + echo -e "\033[46;37minstall meld 安装完成。 \033[0m" } # Function to install Kazam @@ -204,15 +226,29 @@ install_kazam() { echo -e "\033[46;37minstall kazam \033[0m" sudo apt install kazam -y sleep 3 + echo -e "\033[46;37minstall kazam 安装完成。 \033[0m" } # Function to install Figlet install_figlet() { + echo -e "\033[46;37minstall Figlet \033[0m" sudo apt install -y figlet + sleep 3 + echo -e "\033[46;37mFiglet 安装完成。 \033[0m" +} + +install_termius{ + echo -e "\033[46;37minstall Termius \033[0m" + wget --show-progress -O termius.deb https://autoupdate.termius.com/linux/Termius.deb + sudo apt install -y ./termius.deb + sudo rm ./termius.deb + sleep 3 + echo -e "\033[46;37mTermius 安装完成。 \033[0m" } # Function to install WhiteSur theme install_whitesur_theme() { + echo -e "\033[46;37minstall WhiteSur theme \033[0m" sudo apt update sudo apt upgrade -y sudo apt install -y git gnome-tweaks gnome-shell-extensions @@ -234,10 +270,12 @@ install_whitesur_theme() { gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" sleep 3 + echo -e "\033[46;37mWhiteSur theme 安装完成。 \033[0m" } # Function to install Clash install_clash() { + echo -e "\033[46;37minstall Clash \033[0m" sudo apt-get install libayatana-indicator3-7 -y sudo apt --fix-broken install libayatana-appindicator3-1 -y CLASH_VERSION="1.3.0" @@ -297,10 +335,12 @@ EOF # Function to install Miniconda install_miniconda() { - echo -e "\033[46;37m Miniconda3 暂时没有安装 \033[0m" + echo -e "\033[46;37m Miniconda3 \033[0m" wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh chmod +x Miniconda3-latest-Linux-x86_64.sh ./Miniconda3-latest-Linux-x86_64.sh + sleep 3 + echo -e "\033[46;37m Miniconda3 安装完成。 \033[0m" } echo -e "\033[34m 这里是主程序,具体是---------- @@ -323,7 +363,8 @@ echo -e "\033[34m 这里是主程序,具体是---------- 17:安装WhiteSur主题 18:安装Clash 19:安装CLion -20:安装Miniconda\033[0m" +20:安装Miniconda +21:安装Termius\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" # Prompt user for input @@ -416,6 +457,9 @@ else install_miniconda ;; *) + 21) + update_system + install_termius echo "Unknown option: $arg" ;; esac From 2bec628ca87a0c039bf9f652d857d2286562f1bd Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 22 May 2024 15:58:53 +0800 Subject: [PATCH 33/80] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Termius?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9629aa9..9639ad9 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ 18. **安装 Clash** 19. **安装 CLion** 20. **安装 Miniconda** +21. **安装 Turmius** ### 示例 From a3715b9adad017546bcd0d1f0d2bd690df17dffa Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 30 May 2024 12:40:39 +0800 Subject: [PATCH 34/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 0e9d414..31ba11a 100755 --- a/setup.sh +++ b/setup.sh @@ -237,7 +237,7 @@ install_figlet() { echo -e "\033[46;37mFiglet 安装完成。 \033[0m" } -install_termius{ +install_termius() { echo -e "\033[46;37minstall Termius \033[0m" wget --show-progress -O termius.deb https://autoupdate.termius.com/linux/Termius.deb sudo apt install -y ./termius.deb From 457789cfc139e9c9568710e54a2d58901e482109 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 30 May 2024 12:42:55 +0800 Subject: [PATCH 35/80] Update setup.sh --- setup.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 31ba11a..691012a 100755 --- a/setup.sh +++ b/setup.sh @@ -456,12 +456,14 @@ else update_system install_miniconda ;; - *) 21) update_system install_termius echo "Unknown option: $arg" ;; + *) + install_all + ;; esac done fi From 7c952ce43fdbc6fb89d8dfec1e91e29d97370c3f Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 30 May 2024 12:48:50 +0800 Subject: [PATCH 36/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 691012a..78eba07 100755 --- a/setup.sh +++ b/setup.sh @@ -79,7 +79,7 @@ install_basic_tools() { sudo apt-get install git curl wget gdebi vim unzip -y sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y sudo add-apt-repository ppa:kelebek333/mint-tools -y - sudo apt update -y && sudo apt install sticky -y + sudo apt update -y && sudo apt-get purge sticky -y sleep 3 echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" } From 47ba3dfb144332b43855bc48b7e60c70bb102460 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 30 May 2024 12:50:14 +0800 Subject: [PATCH 37/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 78eba07..ea41dc5 100755 --- a/setup.sh +++ b/setup.sh @@ -79,7 +79,7 @@ install_basic_tools() { sudo apt-get install git curl wget gdebi vim unzip -y sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y sudo add-apt-repository ppa:kelebek333/mint-tools -y - sudo apt update -y && sudo apt-get purge sticky -y + sudo apt update -y && sudo apt-get purge sticky sleep 3 echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" } From 85b5ba9aaa943780cf4d1663bfc2ee74c2ec8a2e Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 9 Jun 2024 12:35:44 +0800 Subject: [PATCH 38/80] Update install_systemback --- setup.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index ea41dc5..d5cc4eb 100755 --- a/setup.sh +++ b/setup.sh @@ -61,6 +61,7 @@ install_all() { install_clash install_clion install_termius + install_systemback echo -e "\033[46;37mAll installations 安装完成。\033[0m" } @@ -343,6 +344,13 @@ install_miniconda() { echo -e "\033[46;37m Miniconda3 安装完成。 \033[0m" } +install_systemback() { +sudo sh -c 'echo "deb [arch=amd64] http://mirrors.bwbot.org/ stable main" > /etc/apt/sources.list.d/systemback.list' +sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 50B2C005A67B264F +sudo apt-get update +sudo apt-get install systemback +} + echo -e "\033[34m 这里是主程序,具体是---------- 1:更新系统 2:安装基础工具 @@ -364,7 +372,8 @@ echo -e "\033[34m 这里是主程序,具体是---------- 18:安装Clash 19:安装CLion 20:安装Miniconda -21:安装Termius\033[0m" +21:安装Termius\033[0m +22: 安装systemback\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" # Prompt user for input From d5e8cc6d27e94b4af2a90d7fe36557d8bef8aa3d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 20 Jun 2024 12:56:38 +0800 Subject: [PATCH 39/80] fix systweemfeedback --- setup.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index d5cc4eb..d73456d 100755 --- a/setup.sh +++ b/setup.sh @@ -372,7 +372,7 @@ echo -e "\033[34m 这里是主程序,具体是---------- 18:安装Clash 19:安装CLion 20:安装Miniconda -21:安装Termius\033[0m +21:安装Termius 22: 安装systemback\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" @@ -468,9 +468,13 @@ else 21) update_system install_termius - echo "Unknown option: $arg" + ;; + 22) + update_system + install_systemback ;; *) + echo "Unknown option: $arg" install_all ;; esac From 3698ab3eabdce1180cb4f2a628c36ffb527d73cf Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 20 Jun 2024 12:59:53 +0800 Subject: [PATCH 40/80] Update setup.sh --- setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.sh b/setup.sh index d73456d..497ed0a 100755 --- a/setup.sh +++ b/setup.sh @@ -349,6 +349,7 @@ sudo sh -c 'echo "deb [arch=amd64] http://mirrors.bwbot.org/ stable main" > /etc sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 50B2C005A67B264F sudo apt-get update sudo apt-get install systemback + echo -e "\033[46;37m 使用教程请参考:https://blog.csdn.net/FourthBro/article/details/131020408 \033[0m" } echo -e "\033[34m 这里是主程序,具体是---------- From 81e2461133b644e104126566aa8614953b6647cd Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Mon, 24 Jun 2024 22:55:18 +0800 Subject: [PATCH 41/80] fix sougou --- setup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.sh b/setup.sh index 497ed0a..0feb3f4 100755 --- a/setup.sh +++ b/setup.sh @@ -120,7 +120,10 @@ install_sougou() { sudo apt-get --fix-broken install -y sudo apt-get -yf install -y sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb + sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ + sudo apt remove --purge ibus sleep 3 + # https://blog.csdn.net/Mr_Sudo/article/details/124874239 echo -e "\033[46;37minstall sougou 安装完成。 \033[0m" } From 114620664e1672324f91950e0e50c67e2a027344 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 6 Jul 2024 20:08:32 +0800 Subject: [PATCH 42/80] fix white sur --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 0feb3f4..17cad05 100755 --- a/setup.sh +++ b/setup.sh @@ -258,7 +258,7 @@ install_whitesur_theme() { sudo apt install -y git gnome-tweaks gnome-shell-extensions git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-theme - ./install.sh -c dark -c light -t all + ./install.sh -c Light -t all git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git cd WhiteSur-icon-theme ./install.sh @@ -267,7 +267,7 @@ install_whitesur_theme() { ./install.sh git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-theme - ./install.sh --gdm + ./install.sh -t all -N glassy -s 220 gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" From b55211a6f93b348ebaf700136108ffb6b1a85777 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sat, 6 Jul 2024 22:35:34 +0800 Subject: [PATCH 43/80] =?UTF-8?q?=E5=9B=BD=E5=86=85=E9=95=9C=E5=83=8Fdocke?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/setup.sh b/setup.sh index 17cad05..edfd989 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.1 #" +echo "# V 3.0.2 #" echo "#######################################################################" echo "" @@ -91,11 +91,22 @@ install_docker() { sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + #curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - + #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable" sudo apt-get update echo -e "\033[46;37minstall docker.io \033[0m" sudo apt-get install docker-ce -y + sudo mkdir -p /etc/docker + sudo tee /etc/docker/daemon.json <<-'EOF' + { + "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com"] + } +EOF + + sudo systemctl daemon-reload + sudo systemctl restart docker sleep 3 echo -e "\033[46;37minstall docker-compose 安装完成。 \033[0m" } @@ -115,11 +126,10 @@ install_sougou() { sudo apt-get autoremove -y sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 libgsettings-qt1 fcitx-bin fcitx-table im-config fcitx -y im-config -n fcitx - wget https://ime.sogoucdn.com/dl/index/1612260778/sogoupinyin_2.4.0.3469_amd64.deb - sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb + wget https://ime-sec.gtimg.com/202407061952/44fd3f78006f9c44b462770713ca46b0/pc/dl/gzindex/1680521603/sogoupinyin_4.2.1.145_amd64.deb + sudo dpkg -i sogoupinyin_4.2.1.145_amd64.deb sudo apt-get --fix-broken install -y sudo apt-get -yf install -y - sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ sudo apt remove --purge ibus sleep 3 @@ -257,7 +267,7 @@ install_whitesur_theme() { sudo apt upgrade -y sudo apt install -y git gnome-tweaks gnome-shell-extensions git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git - cd WhiteSur-gtk-theme + cd WhiteSur-gtk-themea ./install.sh -c Light -t all git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git cd WhiteSur-icon-theme @@ -282,7 +292,7 @@ install_clash() { echo -e "\033[46;37minstall Clash \033[0m" sudo apt-get install libayatana-indicator3-7 -y sudo apt --fix-broken install libayatana-appindicator3-1 -y - CLASH_VERSION="1.3.0" + CLASH_VERSION="1.2.0" ARCH="amd64" if [ "$(printf '%s\n' "$CLASH_VERSION" "1.3.8" | sort -V | head -n1)" = "1.3.8" ] && [ "$CLASH_VERSION" != "1.3.8" ]; then wget https://github.com/clashdownload/Clash_Verge/releases/download/${CLASH_VERSION}/clash-verge_${CLASH_VERSION}_${ARCH}.AppImage -O clash-verge.AppImage From 281ed5c7f03cf711992ca0aa9a95a9643ca4a2b8 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 1 Aug 2024 18:22:43 +0800 Subject: [PATCH 44/80] Update pytcharm --- setup.sh | 54 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/setup.sh b/setup.sh index edfd989..8005558 100755 --- a/setup.sh +++ b/setup.sh @@ -322,7 +322,34 @@ EOF echo -e "\033[46;37mClash Verge 安装和配置完成。 \033[0m" } -# Function to install CLion +# Function to install PyCharm +install_pycharm() { + echo -e "\033[46;37minstall pycharm \033[0m" + PYCHARM_VERSION="2023.3.3" + wget https://download.jetbrains.com/python/pycharm-professional-${PYCHARM_VERSION}.tar.gz -O pycharm.tar.gz + sudo tar -xzf pycharm.tar.gz -C /opt + sudo mv /opt/pycharm-${PYCHARM_VERSION} /opt/pycharm + sudo tee /usr/share/applications/pycharm.desktop > /dev/null <> ~/.bashrc + source ~/.bashrc + rm pycharm.tar.gz + echo -e "\033[46;37mPyCharm 安装完成。你可以通过应用菜单或命令 pycharm 启动 PyCharm。 \033[0m" +} + + + +# Function to install CLion,激活:https://www.javatiku.cn/tools/7646.html install_clion() { echo -e "\033[46;37minstall clion \033[0m" CLION_VERSION="2023.1.1" @@ -366,15 +393,15 @@ sudo apt-get install systemback } echo -e "\033[34m 这里是主程序,具体是---------- -1:更新系统 -2:安装基础工具 -3:安装docker -4:安装terminator -5:安装搜狗输入法 -6:安装系统监视器 -7:安装GIMP -8:安装VS Code -9:安装Sublime Text +1: 更新系统 +2: 安装基础工具 +3: 安装docker +4: 安装terminator +5: 安装搜狗输入法 +6: 安装系统监视器 +7: 安装GIMP +8: 安装VS Code +9: 安装Sublime Text 10:安装Flameshot 11:安装Typora 12:安装网易云音乐 @@ -387,7 +414,8 @@ echo -e "\033[34m 这里是主程序,具体是---------- 19:安装CLion 20:安装Miniconda 21:安装Termius -22: 安装systemback\033[0m" +22: 安装systemback +23: 安装Pycharm\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" # Prompt user for input @@ -487,6 +515,10 @@ else update_system install_systemback ;; + 23) + update_system + install_pycharm + ;; *) echo "Unknown option: $arg" install_all From 0c88b4145657e422853a7f1eaa6f13557a7523b5 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 1 Aug 2024 18:28:27 +0800 Subject: [PATCH 45/80] Update for China area auto download --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 8005558..798a8d0 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.2 #" +echo "# V 3.0.3 #" echo "#######################################################################" echo "" From 178a875cfe881923823e83bc606f89bbc39b5782 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 1 Aug 2024 20:11:13 +0800 Subject: [PATCH 46/80] add jetbra crack --- jetbra/config-jetbrains/dns.conf | 3 + jetbra/config-jetbrains/power.conf | 7 ++ jetbra/config-jetbrains/url.conf | 2 + jetbra/ja-netfilter.jar | Bin 0 -> 48639 bytes jetbra/plugins-jetbrains/dns.jar | Bin 0 -> 4859 bytes jetbra/plugins-jetbrains/hideme.jar | Bin 0 -> 7209 bytes jetbra/plugins-jetbrains/power.jar | Bin 0 -> 9222 bytes jetbra/plugins-jetbrains/url.jar | Bin 0 -> 4529 bytes jetbra/readme.txt | 19 ++++ jetbra/scripts/install-all-users.vbs | 73 ++++++++++++++ jetbra/scripts/install-current-user.vbs | 54 +++++++++++ jetbra/scripts/install.sh | 91 ++++++++++++++++++ jetbra/scripts/uninstall-all-users.vbs | 28 ++++++ jetbra/scripts/uninstall-current-user.vbs | 17 ++++ jetbra/scripts/uninstall.sh | 50 ++++++++++ jetbra/sha1sum.txt | 33 +++++++ jetbra/vmoptions/appcode.vmoptions | 22 +++++ jetbra/vmoptions/clion.vmoptions | 22 +++++ jetbra/vmoptions/datagrip.vmoptions | 22 +++++ jetbra/vmoptions/dataspell.vmoptions | 22 +++++ jetbra/vmoptions/devecostudio.vmoptions | 22 +++++ jetbra/vmoptions/gateway.vmoptions | 22 +++++ jetbra/vmoptions/goland.vmoptions | 22 +++++ jetbra/vmoptions/idea.vmoptions | 22 +++++ jetbra/vmoptions/jetbrains_client.vmoptions | 22 +++++ jetbra/vmoptions/jetbrainsclient.vmoptions | 22 +++++ jetbra/vmoptions/phpstorm.vmoptions | 22 +++++ jetbra/vmoptions/pycharm.vmoptions | 22 +++++ jetbra/vmoptions/rider.vmoptions | 22 +++++ jetbra/vmoptions/rubymine.vmoptions | 22 +++++ jetbra/vmoptions/studio.vmoptions | 22 +++++ jetbra/vmoptions/webide.vmoptions | 22 +++++ jetbra/vmoptions/webstorm.vmoptions | 22 +++++ .../\346\277\200\346\264\273\347\240\201.txt" | 63 ++++++++++++ setup.sh | 5 +- 35 files changed, 818 insertions(+), 1 deletion(-) create mode 100644 jetbra/config-jetbrains/dns.conf create mode 100644 jetbra/config-jetbrains/power.conf create mode 100644 jetbra/config-jetbrains/url.conf create mode 100644 jetbra/ja-netfilter.jar create mode 100644 jetbra/plugins-jetbrains/dns.jar create mode 100644 jetbra/plugins-jetbrains/hideme.jar create mode 100644 jetbra/plugins-jetbrains/power.jar create mode 100644 jetbra/plugins-jetbrains/url.jar create mode 100644 jetbra/readme.txt create mode 100644 jetbra/scripts/install-all-users.vbs create mode 100644 jetbra/scripts/install-current-user.vbs create mode 100755 jetbra/scripts/install.sh create mode 100644 jetbra/scripts/uninstall-all-users.vbs create mode 100644 jetbra/scripts/uninstall-current-user.vbs create mode 100644 jetbra/scripts/uninstall.sh create mode 100644 jetbra/sha1sum.txt create mode 100644 jetbra/vmoptions/appcode.vmoptions create mode 100644 jetbra/vmoptions/clion.vmoptions create mode 100644 jetbra/vmoptions/datagrip.vmoptions create mode 100644 jetbra/vmoptions/dataspell.vmoptions create mode 100644 jetbra/vmoptions/devecostudio.vmoptions create mode 100644 jetbra/vmoptions/gateway.vmoptions create mode 100644 jetbra/vmoptions/goland.vmoptions create mode 100644 jetbra/vmoptions/idea.vmoptions create mode 100644 jetbra/vmoptions/jetbrains_client.vmoptions create mode 100644 jetbra/vmoptions/jetbrainsclient.vmoptions create mode 100644 jetbra/vmoptions/phpstorm.vmoptions create mode 100644 jetbra/vmoptions/pycharm.vmoptions create mode 100644 jetbra/vmoptions/rider.vmoptions create mode 100644 jetbra/vmoptions/rubymine.vmoptions create mode 100644 jetbra/vmoptions/studio.vmoptions create mode 100644 jetbra/vmoptions/webide.vmoptions create mode 100644 jetbra/vmoptions/webstorm.vmoptions create mode 100644 "jetbra/\346\277\200\346\264\273\347\240\201.txt" diff --git a/jetbra/config-jetbrains/dns.conf b/jetbra/config-jetbrains/dns.conf new file mode 100644 index 0000000..090e4e0 --- /dev/null +++ b/jetbra/config-jetbrains/dns.conf @@ -0,0 +1,3 @@ +[DNS] +EQUAL,jetbrains.com +EQUAL,plugin.obroom.com \ No newline at end of file diff --git a/jetbra/config-jetbrains/power.conf b/jetbra/config-jetbrains/power.conf new file mode 100644 index 0000000..2acb915 --- /dev/null +++ b/jetbra/config-jetbrains/power.conf @@ -0,0 +1,7 @@ +[Result] +; Suit 230914 +EQUAL,75888623192465772084955377951198306702135327313062315225563718470653661793801719178647553532410237467495550800187973529202133466238825354135988657390766050197160093050945611087414688022502220060564716139142356429494315004946432334067127515081383336664162877126600357077796107641437507844835265792365885264118815924123978949395829736969354441202826225673948313261585644898954777409621857150971668073862687253868141869122469331021430401371289707681211947592819675200121184556360932201089199282211738120006888533563163642302207579745484728384486428222208213812291528007428530070242454238203928550683105421062331094750845145505608972009635176965215115688208740845303355991059521804735078574469432870400787428253602342729300042328170420659062588195293985517003844343989763104027328569042852690996233875190439074960872926324787157115483523118473430609411096400697894536993294915535905449630056538884982426205451557516203033628658808550799424730131437543420952769712793044255279152357141856290356977839447381244929084411487482957782888343837193520146442780899122074573307925429597225835206724304378622338028349953089952976438255759582568115277066791679931555627913314296216846420738487344812850701846117667234235837952975099539950423673283,65537,860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353->31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193857485407672132882577840295039058621747654642202620767068924079813640067442975 +EQUAL,4567779103874449240239662079205755693310005494862953689035396528991239683757589293624793159086473078120525402705628668311011890736316009197336637618610678228335893871114776326732074651573599517183986646340269857646364268233297330841971478101796167577290403903951299979151237090006996215332833149647379173998334898565513245453314930221017432024042566544774579402202436449192695033949441775713989000390069186056155554036916655795953904286792217740042538667425813361568996822385856479840230242261144865693876294228019553278637298651584820286962308928945030622629481823105481646878879253938847572671471342492590603058305,65537,24156627931985958051017183040835577271803742470193804806479316178045088981962804168393398987646446251087541768081971475544151551235525470790716604369379805327668466429966167642117961353233058515180243264560201783520956161510523416923017697354365782825500659342029196527776056976223174394946371372849906309277537461992299774200098515526818746947230488275456663264920440977381968978227273889068919338259949793686590492904029279861913225794809675826299753284990778166519152326723946780528965868736869495336993456735232755342913885746267768375682771655854436236934171901662660193080235109535758464079136573948168636773471->986236757547332986472011617696226561292849812918563355472727826767720188564083584387121625107510786855734801053524719833194566624465665316622563244215340671405971599343902468620306327831715457360719532421388780770165778156818229863337344187575566725786793391480600129482653072861971002459947277805295727097226389568776499707662505334062639449916265137796823793276300221537201727072401742985542559596685092673521228140822200236743113743661549252453726123450722876929538747702356573783116366629850199080495560991841329893037291900147497007197055572787780928474439121910577036698817920238800419515637284683828672110 + +[Args] +EQUAL,65537,24773058818499217187577663886010908531303294206336895556072197892590450942803807164562754911175164262596715237551312004078542654996496301487027034803410086499747369353221485073240039340641397198525027728751956658900801359887190562885573922317930300068615009483578963467556425525328780085523172495307229112069939166202511721671904748968934606589702999279663332403655662225374084460291376706916679151764149324177444374590606643838366605181996272409014933080082205048098737253668016260658830645459388519595314928290853199112791333551144805347785109465401055719331231478162870216035573012645710763533896540021550083104281->3,24773058818499217187577663886010908531303294206336895556072197892590450942803807164562754911175164262596715237551312004078542654996496301487027034803410086499747369353221485073240039340641397198525027728751956658900801359887190562885573922317930300068615009483578963467556425525328780085523172495307229112069939166202511721671904748968934606589702999279663332403655662225374084460291376706916679151764149324177444374590606643838366605181996272409014933080082205048098737253668016260658830645459388519595314928290853199112791333551144805347785109465401055719331231478162870216035573012645710763533896540021550083104281 \ No newline at end of file diff --git a/jetbra/config-jetbrains/url.conf b/jetbra/config-jetbrains/url.conf new file mode 100644 index 0000000..bb7fab0 --- /dev/null +++ b/jetbra/config-jetbrains/url.conf @@ -0,0 +1,2 @@ +[URL] +PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action \ No newline at end of file diff --git a/jetbra/ja-netfilter.jar b/jetbra/ja-netfilter.jar new file mode 100644 index 0000000000000000000000000000000000000000..b72565a350f502d0e07b0879272cf19d01664268 GIT binary patch literal 48639 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 E54%#Ny8r+H literal 0 HcmV?d00001 diff --git a/jetbra/plugins-jetbrains/dns.jar b/jetbra/plugins-jetbrains/dns.jar new file mode 100644 index 0000000000000000000000000000000000000000..113c6990747325b43e4f0a6affcc4bbc3e0d49e9 GIT binary patch literal 4859 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 b7X9B00Od#V0s#T*$4~EvawO}~&wu|1KF}#u literal 0 HcmV?d00001 diff --git a/jetbra/plugins-jetbrains/url.jar b/jetbra/plugins-jetbrains/url.jar new file mode 100644 index 0000000000000000000000000000000000000000..495804edbaf722bd507e828982879b3dce7ca728 GIT binary patch literal 4529 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 literal 0 HcmV?d00001 diff --git a/jetbra/readme.txt b/jetbra/readme.txt new file mode 100644 index 0000000..ecc6041 --- /dev/null +++ b/jetbra/readme.txt @@ -0,0 +1,19 @@ +Operation guide: + 1. add -javaagent:/path/to/ja-netfilter.jar=jetbrains to your vmoptions (manual or auto) + 2. log out of the jb account in the 'Licenses' window + 3. use key on page https://jetbra.in/5d84466e31722979266057664941a71893322460 + 4. plugin 'mymap' has been deprecated since version 2022.1 + 5. don't care about the activation time, it is a fallback license and will not expire + +Enjoy it~ + +JBR17: + add these 2 lines to your vmoptions file: (for manual, without any whitespace chars) + --add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED + --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +NEW: + Auto configure vmoptions: + macOS or Linux: execute "scripts/install.sh" + Windows: double click to execute "scripts\install-current-user.vbs" (For current user) + "scripts\install-all-users.vbs" (For all users) diff --git a/jetbra/scripts/install-all-users.vbs b/jetbra/scripts/install-all-users.vbs new file mode 100644 index 0000000..6e86328 --- /dev/null +++ b/jetbra/scripts/install-all-users.vbs @@ -0,0 +1,73 @@ +If Not WScript.Arguments.Named.Exists("elevate") Then + CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 10 + WScript.Quit +End If + +Set oShell = CreateObject("WScript.Shell") +Set oEnvSystem = oShell.Environment("SYSTEM") +Set oFS = CreateObject("Scripting.FileSystemObject") + +Dim sBasePath, sJarFile +sBasePath = oFS.GetParentFolderName(oFS.GetParentFolderName(WScript.ScriptFullName)) +sJarFile = sBasePath & "\ja-netfilter.jar" + +If Not oFS.FileExists(sJarFile) Then + MsgBox "ja-netfilter.jar not found", vbOKOnly Or vbCritical + WScript.Quit -1 +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "appcode", "dataspell", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +Set re = New RegExp +re.Global = True +re.IgnoreCase = True +re.Pattern = "^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*" + +Sub RemoveEnv(env) + On Error Resume Next + + For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + env.Remove(sEnvKey) + End If + Next +End Sub + +RemoveEnv oShell.Environment("USER") + +Dim sVmOptionsFile +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sVmOptionsFile = sBasePath & "\vmoptions\" & sPrd & ".vmoptions" + If oFS.FileExists(sVmOptionsFile) Then + ProcessVmOptions sVmOptionsFile + oEnvSystem(sEnvKey) = sVmOptionsFile + End If +Next + +Sub ProcessVmOptions(ByVal file) + Dim sLine, sNewContent, bMatch + Set oFile = oFS.OpenTextFile(file, 1, 0) + + sNewContent = "" + Do Until oFile.AtEndOfStream + sLine = oFile.ReadLine + bMatch = re.Test(sLine) + If Not bMatch Then + sNewContent = sNewContent & sLine & vbLf + End If + Loop + oFile.Close + + sNewContent = sNewContent & "-javaagent:" & sJarFile & "=jetbrains" + Set oFile = oFS.OpenTextFile(file, 2, 0) + oFile.Write sNewContent + oFile.Close +End Sub + +MsgBox "Done." diff --git a/jetbra/scripts/install-current-user.vbs b/jetbra/scripts/install-current-user.vbs new file mode 100644 index 0000000..9939d9e --- /dev/null +++ b/jetbra/scripts/install-current-user.vbs @@ -0,0 +1,54 @@ +Set oShell = CreateObject("WScript.Shell") +Set oEnv = oShell.Environment("USER") +Set oFS = CreateObject("Scripting.FileSystemObject") + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "appcode", "dataspell", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +Set re = New RegExp +re.Global = True +re.IgnoreCase = True +re.Pattern = "^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*" + +Dim sBasePath, sJarFile +sBasePath = oFS.GetParentFolderName(oShell.CurrentDirectory) +sJarFile = sBasePath & "\ja-netfilter.jar" + +If Not oFS.FileExists(sJarFile) Then + MsgBox "ja-netfilter.jar not found", vbOKOnly Or vbCritical + WScript.Quit -1 +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Dim sVmOptionsFile +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sVmOptionsFile = sBasePath & "\vmoptions\" & sPrd & ".vmoptions" + If oFS.FileExists(sVmOptionsFile) Then + ProcessVmOptions sVmOptionsFile + oEnv(sEnvKey) = sVmOptionsFile + End If +Next + +Sub ProcessVmOptions(ByVal file) + Dim sLine, sNewContent, bMatch + Set oFile = oFS.OpenTextFile(file, 1, 0) + + sNewContent = "" + Do Until oFile.AtEndOfStream + sLine = oFile.ReadLine + bMatch = re.Test(sLine) + If Not bMatch Then + sNewContent = sNewContent & sLine & vbLf + End If + Loop + oFile.Close + + sNewContent = sNewContent & "-javaagent:" & sJarFile & "=jetbrains" + Set oFile = oFS.OpenTextFile(file, 2, 0) + oFile.Write sNewContent + oFile.Close +End Sub + +MsgBox "Done." diff --git a/jetbra/scripts/install.sh b/jetbra/scripts/install.sh new file mode 100755 index 0000000..6275b28 --- /dev/null +++ b/jetbra/scripts/install.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +set -e + +OS_NAME=$(uname -s) +JB_PRODUCTS="idea clion phpstorm goland pycharm webstorm webide rider datagrip rubymine appcode dataspell gateway jetbrains_client jetbrainsclient studio devecostudio" + +BASE_PATH=$(dirname $( + cd $(dirname "$0") + pwd +)) + +JAR_FILE_PATH="${BASE_PATH}/ja-netfilter.jar" + +if [ ! -f "${JAR_FILE_PATH}" ]; then + echo 'ja-netfilter.jar not found' + exit -1 +fi + +KDE_ENV_DIR="${HOME}/.config/plasma-workspace/env" +LAUNCH_AGENTS_DIR="${HOME}/Library/LaunchAgents" + +PROFILE_PATH="${HOME}/.profile" +ZSH_PROFILE_PATH="${HOME}/.zshrc" +PLIST_PATH="${LAUNCH_AGENTS_DIR}/jetbrains.vmoptions.plist" + +if [ $OS_NAME = "Darwin" ]; then + BASH_PROFILE_PATH="${HOME}/.bash_profile" + + mkdir -p "${LAUNCH_AGENTS_DIR}" + echo 'Labeljetbrains.vmoptionsProgramArgumentssh-c' >"${PLIST_PATH}" +else + BASH_PROFILE_PATH="${HOME}/.bashrc" + mkdir -p "${KDE_ENV_DIR}" +fi + +touch "${PROFILE_PATH}" +touch "${BASH_PROFILE_PATH}" +touch "${ZSH_PROFILE_PATH}" + +MY_VMOPTIONS_SHELL_NAME="jetbrains.vmoptions.sh" +MY_VMOPTIONS_SHELL_FILE="${HOME}/.${MY_VMOPTIONS_SHELL_NAME}" +echo '#!/bin/sh' >"${MY_VMOPTIONS_SHELL_FILE}" + +EXEC_LINE='___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh"; if [ -f "${___MY_VMOPTIONS_SHELL_FILE}" ]; then . "${___MY_VMOPTIONS_SHELL_FILE}"; fi' + +for PRD in $JB_PRODUCTS; do + VM_FILE_PATH="${BASE_PATH}/vmoptions/${PRD}.vmoptions" + if [ ! -f "${VM_FILE_PATH}" ]; then + continue + fi + + if [ $OS_NAME = "Darwin" ]; then + sed -i '' '/^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*/d' "${VM_FILE_PATH}" + else + sed -i '/^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*/d' "${VM_FILE_PATH}" + fi + + echo "-javaagent:${JAR_FILE_PATH}=jetbrains" >>"${VM_FILE_PATH}" + + ENV_NAME=$(echo $PRD | tr '[a-z]' '[A-Z]')"_VM_OPTIONS" + echo "export ${ENV_NAME}=\"${VM_FILE_PATH}\"" >>"${MY_VMOPTIONS_SHELL_FILE}" + + if [ $OS_NAME = "Darwin" ]; then + launchctl setenv "${ENV_NAME}" "${VM_FILE_PATH}" + echo "launchctl setenv \"${ENV_NAME}\" \"${VM_FILE_PATH}\"" >>"${PLIST_PATH}" + fi +done + +if [ $OS_NAME = "Darwin" ]; then + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + echo 'RunAtLoad' >>"${PLIST_PATH}" +else + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 +fi + +echo "${EXEC_LINE}" >>"${PROFILE_PATH}" +echo "${EXEC_LINE}" >>"${BASH_PROFILE_PATH}" +echo "${EXEC_LINE}" >>"${ZSH_PROFILE_PATH}" + +if [ $OS_NAME = "Darwin" ]; then + echo 'done. the "kill Dock" command can fix the crash issue.' +else + ln -sf "${MY_VMOPTIONS_SHELL_FILE}" "${KDE_ENV_DIR}/${MY_VMOPTIONS_SHELL_NAME}" + echo "done. you'd better log off first!" +fi diff --git a/jetbra/scripts/uninstall-all-users.vbs b/jetbra/scripts/uninstall-all-users.vbs new file mode 100644 index 0000000..e1be5e0 --- /dev/null +++ b/jetbra/scripts/uninstall-all-users.vbs @@ -0,0 +1,28 @@ +If Not WScript.Arguments.Named.Exists("elevate") Then + CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 10 + WScript.Quit +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Sub RemoveEnv(env) + On Error Resume Next + + Dim sEnvKey, sEnvVal, aJBProducts + aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "appcode", "dataspell", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + + For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + env.Remove(sEnvKey) + End If + Next +End Sub + +Set oShell = CreateObject("WScript.Shell") + +RemoveEnv oShell.Environment("USER") +RemoveEnv oShell.Environment("SYSTEM") + +MsgBox "Done." diff --git a/jetbra/scripts/uninstall-current-user.vbs b/jetbra/scripts/uninstall-current-user.vbs new file mode 100644 index 0000000..34be3f1 --- /dev/null +++ b/jetbra/scripts/uninstall-current-user.vbs @@ -0,0 +1,17 @@ +Set oShell = CreateObject("WScript.Shell") +Set oEnv = oShell.Environment("USER") + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "appcode", "dataspell", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + oEnv.Remove(sEnvKey) + End If +Next + +MsgBox "Done." diff --git a/jetbra/scripts/uninstall.sh b/jetbra/scripts/uninstall.sh new file mode 100644 index 0000000..4de2fce --- /dev/null +++ b/jetbra/scripts/uninstall.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +OS_NAME=$(uname -s) +JB_PRODUCTS="idea clion phpstorm goland pycharm webstorm webide rider datagrip rubymine appcode dataspell gateway jetbrains_client jetbrainsclient studio devecostudio" + +KDE_ENV_DIR="${HOME}/.config/plasma-workspace/env" + +PROFILE_PATH="${HOME}/.profile" +ZSH_PROFILE_PATH="${HOME}/.zshrc" +PLIST_PATH="${HOME}/Library/LaunchAgents/jetbrains.vmoptions.plist" + +if [ $OS_NAME = "Darwin" ]; then + BASH_PROFILE_PATH="${HOME}/.bash_profile" +else + BASH_PROFILE_PATH="${HOME}/.bashrc" +fi + +touch "${PROFILE_PATH}" +touch "${BASH_PROFILE_PATH}" +touch "${ZSH_PROFILE_PATH}" + +MY_VMOPTIONS_SHELL_NAME="jetbrains.vmoptions.sh" +MY_VMOPTIONS_SHELL_FILE="${HOME}/.${MY_VMOPTIONS_SHELL_NAME}" + +rm -rf "${MY_VMOPTIONS_SHELL_FILE}" + +if [ $OS_NAME = "Darwin" ]; then + for PRD in $JB_PRODUCTS; do + ENV_NAME=$(echo $PRD | tr '[a-z]' '[A-Z]')"_VM_OPTIONS" + + launchctl unsetenv "${ENV_NAME}" + done + + rm -rf "${PLIST_PATH}" + + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + echo 'done.' +else + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + rm -rf "${KDE_ENV_DIR}/${MY_VMOPTIONS_SHELL_NAME}" + echo "done. you'd better log off first!" +fi diff --git a/jetbra/sha1sum.txt b/jetbra/sha1sum.txt new file mode 100644 index 0000000..47b04f5 --- /dev/null +++ b/jetbra/sha1sum.txt @@ -0,0 +1,33 @@ +2a723c2ef30be4a5c167c6639bf9ec0b9c7e7ca2 ja-netfilter.jar +06777a6f603fa3c4eb83b4a9eca76331e40006f4 README.pdf +67c0745960d407921cf8f65f4e1417aaf9f2704b readme.txt +4e8693b5a7a3837cf7f6db0c4f1316f376d34721 plugins-jetbrains/dns.jar +729d00e4fa04ca49c00b5b6aa60706dfadd5644e plugins-jetbrains/hideme.jar +26ee7577969265ff77a7fd786bcb707fe21a3d6b plugins-jetbrains/power.jar +b1bebbee8d98218db5794f596001b8b7427ae0c7 plugins-jetbrains/url.jar +84fc47685c4768eff051361777664bb764d5b844 config-jetbrains/dns.conf +0ce951cdf37a178c18440e85a0f3806ed2d09415 config-jetbrains/power.conf +0b219cc137a185439fb9bd99d85b8fe320967507 config-jetbrains/url.conf +46194b9c7ac66a5446afbcf172ffd7743b53da44 scripts/install-all-users.vbs +6825df9e07cf9febf0f9d2ff812fdc261f7ba72c scripts/install-current-user.vbs +32eb21a4fd2a0ae3ead868dd550d30b64409a883 scripts/install.sh +e8ec2bd8883202b9e44783ca7b5831c0df35d4db scripts/uninstall-all-users.vbs +f3a9237f31085c7945e41930eb11ac5c86abfc4d scripts/uninstall-current-user.vbs +437f66132747f12edaa30d81052b08f8ce99e7ed scripts/uninstall.sh +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/appcode.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/clion.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/datagrip.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/dataspell.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/devecostudio.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/gateway.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/goland.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/idea.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/jetbrains_client.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/jetbrainsclient.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/phpstorm.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/pycharm.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/rider.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/rubymine.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/studio.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/webide.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/webstorm.vmoptions diff --git a/jetbra/vmoptions/appcode.vmoptions b/jetbra/vmoptions/appcode.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/appcode.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/clion.vmoptions b/jetbra/vmoptions/clion.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/clion.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/datagrip.vmoptions b/jetbra/vmoptions/datagrip.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/datagrip.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/dataspell.vmoptions b/jetbra/vmoptions/dataspell.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/dataspell.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/devecostudio.vmoptions b/jetbra/vmoptions/devecostudio.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/devecostudio.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/gateway.vmoptions b/jetbra/vmoptions/gateway.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/gateway.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/goland.vmoptions b/jetbra/vmoptions/goland.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/goland.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/idea.vmoptions b/jetbra/vmoptions/idea.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/idea.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/jetbrains_client.vmoptions b/jetbra/vmoptions/jetbrains_client.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/jetbrains_client.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/jetbrainsclient.vmoptions b/jetbra/vmoptions/jetbrainsclient.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/jetbrainsclient.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/phpstorm.vmoptions b/jetbra/vmoptions/phpstorm.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/phpstorm.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/pycharm.vmoptions b/jetbra/vmoptions/pycharm.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/pycharm.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/rider.vmoptions b/jetbra/vmoptions/rider.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/rider.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/rubymine.vmoptions b/jetbra/vmoptions/rubymine.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/rubymine.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/studio.vmoptions b/jetbra/vmoptions/studio.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/studio.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/webide.vmoptions b/jetbra/vmoptions/webide.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/webide.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git a/jetbra/vmoptions/webstorm.vmoptions b/jetbra/vmoptions/webstorm.vmoptions new file mode 100644 index 0000000..cc5c66c --- /dev/null +++ b/jetbra/vmoptions/webstorm.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + +-javaagent:/home/ld/UbuntuAutoScript/jetbra/ja-netfilter.jar=jetbrains diff --git "a/jetbra/\346\277\200\346\264\273\347\240\201.txt" "b/jetbra/\346\277\200\346\264\273\347\240\201.txt" new file mode 100644 index 0000000..89ed409 --- /dev/null +++ "b/jetbra/\346\277\200\346\264\273\347\240\201.txt" @@ -0,0 +1,63 @@ +jetbra(ja-netfilter-all) 2023.x (2023/09/14) +JetBrains产品永久激活插件,支持激活 2023.2.x 或后续小版本 +可激活 Code With Me 插件及最大程度激活市场所有付费插件! + +============= +公众号【小油柑软件测试面试资源】 +============= + +注:jetbra路径不要含空格,如有其它破解插件要移除! + +1)将永久激活插件 jetbra(ja-netfilter-all) 放固定位置 +例如:D:\jetbra\ja-netfilter.jar + +2)右键以管理员身份运行脚本自动配置VM自定义选项 +jetbra\script\install-all-users.vbs + +3)启动JetBrains产品,许可证激活选择激活码方式(Activate code) +jetbra插件JetBrains产品激活码页面主站新地址 https://3.jetbra.in + +JetBrains部分常用产品最新激活码,需要配合jetbra破解插件使用。 + +【IntelliJ IDEA 2023.2.x】 +29VRVXKXEQ-eyJsaWNlbnNlSWQiOiIyOVZSVlhLWEVRIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQQ1dNUCIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQREIiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMTIwMjMwOTE0UFNBWDAwMDAwNSIsImhhc2giOiJUUklBTDoxNjQ5MDU4NzE5IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-YKRuMTrLQcfyWisYF1q6RhCN+Ub13VOCayGGc6tklGA97oxRM1HCIR0oI5yfTjL7UQYDbNMokT0U0ZQ2obYaUx+MMf7+3FfUYp5dYzP7G9YrEehrGWQ4O8ENrDLDAClB8o8jud9cafW9WTx9hDNd9j2FfjwSaRibClwGBRdO5fSkWlKGhx4tV0K9IyotNYDQzT1QCDRWSxHYGqfDAQI2k+ZAqzNEHValupSM3TKw813kFGKIQndMfw57B6uMzgN6PvuuLpBlghdO3imrgKYj0Q59JYbuXRUpHhPnNLY1XmewdlfcJkvTiRwueCPMNEW/CQEh8X/Als92WCr2H3uFRA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + + +【PhpStorm 2023.2.x】 +NKODKLY1H7-eyJsaWNlbnNlSWQiOiJOS09ES0xZMUg3IiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUFMiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQQ1dNUCIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTMzNjQ2MzkzMiIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-BCXVtVZ06e8JxsN30wd2Yr8HWyh2nuchiAR401HnmfeEA2166BL9SEF7KhQlCAjArMs3i1qS+uIBhDedzJ3TlSLJWF3k35rbRW1++OXPTFzhaU59VauLz/VMSX0to6WfPQTxDnHJbKNZQOgKxHabFFLBY1FoxXIEeCG7UlHoW9yk6Gf6hQxJU6uqXrytF8xqvEFTt61AXWqRW48678RHzAQ47dVZ7BCrVI7tbo7QDd9uy4fVG4dRIof9+NDv+BVf07EK6lAdhEViMKZgDrvLEvdwwiZACG96Sb5PTO731qLb99TwWbkfj47d4acm3vEaKA5IuQod4lJxeh+lmpYh6w==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【PyCharm 2023.2.x】 +T7USULHBNF-eyJsaWNlbnNlSWQiOiJUN1VTVUxIQk5GIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBDIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6NzM4MzY4NjQ0IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-cjtPn2BDgvquYqMu8jD//otufahQs2q1uOxdPwcb0JAeMRa3dIeZ6u8FJd2L3VFU2Qc4187i7SwjPVh5Xx/D0in47mPvPqxp2lPtaBOYaVUKRrudBf+9WC49Ggw9SyKgx2XkGF429ZHD6OSAQnzy6RxlJNc0IHS3p2B9u9aYc5vLkOYEluUBjdctPDbrhWQmuAd/1qMj/LRGZzdOcCHIems7igEjJvaDH9zukxMrTYCtya63uivmRFCqG7frptThq4UI9HhAWfEIkFbJDoneU/6MGRR+4mDL+wEuetnZ1oPgGFkTpQs/OQLjXDKQgqpaD+hu5bmyZhpaaWgrHhR1Ig==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + + +【WebStorm 2023.2.x】 +MOUGH5FKDV-eyJsaWNlbnNlSWQiOiJNT1VHSDVGS0RWIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTE5MjAyMDQyODkiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-SyFXaP9+YSd0DAiRk/53HYJfAGdZkg0Ulwux2wvCAxuNocmHatN53wlQch3CYJlI2vPP6iHjxjSN84p+wS8jEfJhJRyP5HZ2SW+e0DwupGhiE3OScoJ2TQ9KlWojf2XwLj6slNkVDmlvYaySi33rUB/S0ReY69KoOIjEye1S7mqaFakRHS3T1/pIbpqIeEnQGSlxhfFWg3zB0WKX10zjeEVGXz5FG/0HBYlxiKqYGoLX/XfpU/bkRQm6o2Kci0UWjh1NthmSnjFWGDMBqeoKHUrqs93R5Cus7wY2rPlFYPcqGloepWAK+3lyv2/XmW6+WQk7LH+3scTY9h0/BUXfVw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【Rider 2023.2.x】 +ZWBDJRTHKV-eyJsaWNlbnNlSWQiOiJaV0JESlJUSEtWIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJSRCIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMzA5MTRQU0FYMDAwMDA1IiwiaGFzaCI6IlRSSUFMOi0xNjM1MjE2NTc4IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-Mb+qI6ozErk6qbMtkeq7NenqveZQzdNS2YceRW1Scve7hT5n6flotCzd0x0CEi4gtuaO8OxOUfJ+4jHoieUkF1i5MRMKOy2/fxxtX9F7nYL9MEEVxrs2MqAnj6pDE++KfB2AduB5Ggs37o8X3sPpTleYZh9Xpn/glOyo19bY9p/m43/OjaKkPVD8eS2ROwnB7wFNc3wVlM9B8w500KmkrTPLb3Jnz0b8EnAj/dL6LYO+Faz1GjDRmvFsVASCDWVnZngwQ9Gq6sDBwapCjL0I4b7lKia0Q/LZ/Gkjtzid7GLMciM5T4VqiEu/8Pqki+Je7maJEQrRsETQw741A8JLPA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【CLion 2023.2.x】 +N598DDQN09-eyJsaWNlbnNlSWQiOiJONTk4RERRTjA5IiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQ0wiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQQ1dNUCIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTE0ODUyMDI1MzYiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-LwjiTvOpsziVPKZPl8hT7e8zkjOlFJ75esaYYWJ9EUdOQVc9Xx2BhIFdc7jIiM/GaHEuIhZ5MeaeLeFXkfmgYZDTiVmEnlmaiO4hjwXYWmj8MfU1UnXbY4PEGyrwhNAj8aayPa5C59zvbPl0zPVgvLKYwkTDtZBg9GvBPiBLYWESRTqiCQCFggwIU1OeRoNxTUEyVK4ESlybfpcFKZ1N2j5rrfb+UNFbqDVB1k4BLnidtz0j3X5TZdDB+BXX2WmERO2WtogJkJ6HrdUBZkmeSFUDiiX2QmcpT5/V7K24LtKiLev9F3EZiEKxRfMYHwcwJr7BcC2rOmvsuKs51hXieQ==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【DataGrip 2023.2.x】 +6E26WZCE14-eyJsaWNlbnNlSWQiOiI2RTI2V1pDRTE0IiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMzA5MTRQU0FYMDAwMDA1IiwiaGFzaCI6IlRSSUFMOi0yMDE0NjMyMjM1IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-V6xNxshWwoyNJwOrXQ3NAsVSEjxZFKTT+c52asybvhxtTKvMP0ApRwwSrhZYrxlaTeBhd5te25GXofZpBkn3/SbKmkkzFRfO0//m1rpBgeFAClJgeaG6Az2/lcLodHiM3x1amD+MJrAzg0o1rztQWOXJ4DhusfMHvqTbYKOsiUKRGyuFiKoYvgQqnvwAWAP8F8IiqKln/BlTxe9KoKi32HA5nnBhSJ66SZ5GM61t0mzgrkY3wqIe5PpJTOwn2sCo1QWs1YFABcqiCBQhC0w8HDmrdcpWJ91dYOhGim9K6IobE8xud3HGKrRS4Yo0s4p19xKkuDMYHT/rgJXK4T9XLA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【RubyMine 2023.2.x】 +BSM45BHVVS-eyJsaWNlbnNlSWQiOiJCU000NUJIVlZTIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTYxMzUyMDMxNCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-O3mjZIYQuRoGrG821FiC58TGd5EQgmzsXqdv5tfw56Ycglke8GUZ4FLObNPB/up4UdQRqYSppjITQScB2gZEBRVA45fUPnxrwqiKjec2nD82s8x/BE+jPMFokkUx/reOjNx+rYZ/gwbaB4T929DCBshRVPBibaZnN0KfAmUzegKArIY5BeH1pVqr98VAkLdloXgu6jMMKVm3ZR6mjyaWAV3EFzTP1QRsKRP0mBeYHJzSBEt2Ghp0ee1ygYFz9X4sqaCcNtaxxDNnsJfafgTJkRXEDDND7rygP7WzgqONKTc6Mw0UYdkxiUYf+LNKocnVTcsCZYT476Vd3K9p47GhUA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【GoLand 2023.2.x】 +7GC5726T07-eyJsaWNlbnNlSWQiOiI3R0M1NzI2VDA3IiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IkdPIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6MTgwNTI0OTc5MyIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-J1Q4R07G0iNZjbMTc0vLPT7NszraBLfLcYiscK+h1wq5EPTDgwgnFyU6Lu3rGFmHLETmcsIyQNbF6yXItJN4ccXgWYxWhezALkQcAnoH7wMOn5WVcKkdPVzN9ZiV9LC+VOJ8GFwh6PwBkxniyF/JIbxFYOLa71Yl0ivU+ASFpqtSKfSajO14O76J8HplVeA9cbhQdCKzZ0QkOfzVoREbgUhr68TkGW+j5wjAcGbcx+TPkQ6FQ81+kF9pfBcp7lTt3dWUzEmtTVjPrPbUYkLCKozfX+22GBZu5s3lh8lbj83lY146ifHf383LWrjwnQTJ9TDtPd7jMSHX5Kbfi71gMQ==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【DataSpell 2023.2.x】 +9BUS8OPT9R-eyJsaWNlbnNlSWQiOiI5QlVTOE9QVDlSIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiRFMiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMzA5MTRQU0FYMDAwMDA1IiwiaGFzaCI6IlRSSUFMOi01MTAyNjI5OCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-Y6gtFIc1wTpgik7wTLxLU/GXujGiWvRPFje7W3+ErS7+GDV4+d6v7N/PAl2vAfa5bjISEe8by5BP/ZkRuE5f5+JP+nefnJzsF1/mz8jNiokjDiXvR9Ju6QUWEfuKX9FiTY6MnsoVkmnrrIxte+Dla7XrzdGDnoYbO+sgRjEMQbppyPemH16OS9ccSsxhGcRsyxY6UtyOCUsPfJ5c+M9flZHz91Tbc9mPSSBVaAg0qsy9wZPVRdYQC1Qwt4behN7q8bQBYMVikblCUUtNkE1sS9sTjHJeYN4RMuMHC/b8s3DXL87NRYc7y5zPlgSClNRtaMTZXwDCReP9hvoR4EabEw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + + +【dotCover 2023.2.x】 +ZBS99ARUD2-eyJsaWNlbnNlSWQiOiJaQlM5OUFSVUQyIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6MTEzMzU0MjgzNCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-VXGe3blHDiiBDw7VaHTZsAtNjvOoNF3KogEinSTve2kyJNSn+kQImEljk4MP/YCsUcmtLRZrMIMlhHwiTIqPa/T7+7yCIjTKIePY4P1nTIqqD1K44PZPY6BHPx/oyXsdSruUYZI5Sq85w4h4PqI4z4kdhNAGwR7/E7E9V+eQYeqyXT2iwJ0Bjv/Pty7ggA2lpQB7YKAdJY25/JOQ9XSvA0YZFdZ6bncPgjtr9b7cHit3kiI7dY47wZCaw1ujC7M540EGC8W6CGrI8RWZtjpj98osQInlP5GSBbugJ0dPjvXU6RljMuBcr2PGj2dvYOG90Ds2UhXOReMifDJzVzbwOg==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【dotTrace 2023.2.x】 +7RV2S35R9X-eyJsaWNlbnNlSWQiOiI3UlYyUzM1UjlYIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiRFBOIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiRFAiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMTIwMjMwOTE0UFNBWDAwMDAwNSIsImhhc2giOiJUUklBTDotMjA5MzIwMjY1MSIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-EyP0EnGOaNwmG0u7DUSfr3e1xJ8hFLyn8Dpzw1z+ZFSBcM76Yao1qYM+vIZ98Z17RebmqmUV1epDV6NwkfMsRaVulPE/xxSHdMak0ifPKsvrL+IoYseiH8zCXCIK+S8bY/67O4Raf61ldUMqs+IJt5oA1MV2q2znZo7vzZg6z6E8xLAI9PG90Cd7/4mCJl1thV9ZqX+z9qDiB2pnQXpsYa3dQb3vkTq499YXzAu7mm4s7xHGSWUgGRc2kguOH2jwLUuqAaK9oR7aySTTVXlCrr/1FtzjgS2vtvImkg3wgyF3u44u4qjv5yqdzYZFXMg/lUk2Xg7dtpKTG5f0n0U3cA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + + + 【dotMemory 2023.2.x】 + HXJSRGZ98Z-eyJsaWNlbnNlSWQiOiJIWEpTUkdaOThaIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiRE0iLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTE1MzQxMTg0MTIiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-KjTWFiazmCpRfjwhFWiqwqDmA2HZfnWP6AspuL8bsDQUfMuE4neMSBSB7gw3ZFO1ej4jCbL/BKy0ptX+kmm/3XdKCqtA3GYr3+4tdD5i02XlAMoo6N3wlIQtgGcjftDcq4bvMxz2AjGvJmpdKo9/snyvAVGH4CV4kksKYYmWDfglNYY70G+oPb0o3F5v4c6rJ9zd7Q5yHyuC8rQiQoCefHTDSs+piKAv+8fELm8ua406hQ01UHTYUUQizVnvRDhCWEDAoAmLYy9HpknAVtSOwsikWFCXLdVP9N1YhXznrSnBBuRz26FHQ/l5EjHR18TrQLro96Uq1gYjEqS+QVZjLw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD diff --git a/setup.sh b/setup.sh index 798a8d0..0183d5b 100755 --- a/setup.sh +++ b/setup.sh @@ -342,6 +342,7 @@ Terminal=false StartupWMClass=pycharm EOF echo 'export PATH=/opt/pycharm/bin:$PATH' >> ~/.bashrc + sudo ln -s /opt/pycharm/bin/pycharm.sh /usr/local/bin/pycharm source ~/.bashrc rm pycharm.tar.gz echo -e "\033[46;37mPyCharm 安装完成。你可以通过应用菜单或命令 pycharm 启动 PyCharm。 \033[0m" @@ -349,7 +350,8 @@ EOF -# Function to install CLion,激活:https://www.javatiku.cn/tools/7646.html +# Function to install CLion: https://blog.idejihuo.com/jetbrains/pycharm-2024-1-3-activation-code-latest-crack-tutorial-crack-tool.html +# 激活:http://jets.idejihuo.com/v2/ install_clion() { echo -e "\033[46;37minstall clion \033[0m" CLION_VERSION="2023.1.1" @@ -369,6 +371,7 @@ Terminal=false StartupWMClass=clion EOF echo 'export PATH=/opt/clion/bin:$PATH' >> ~/.bashrc + sudo ln -s /opt/clion/bin/clion.sh /usr/local/bin/clion source ~/.bashrc rm clion.tar.gz echo -e "\033[46;37mCLion 安装完成。你可以通过应用菜单或命令 clion 启动 CLion。 \033[0m" From 0ebebbab5cf10608ea0f01ea68a907289ab3ee22 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 1 Aug 2024 20:17:06 +0800 Subject: [PATCH 47/80] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9639ad9..ba78c3b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Ubuntu 配置脚本 README +# Ubuntu 配置脚本 全功能美化一键安装 ## 介绍 From 81afcb667f4c6230ecf907ab7b41443613f14cfc Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 2 Aug 2024 15:55:57 +0800 Subject: [PATCH 48/80] add some WhiteSur setting --- setup.sh | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/setup.sh b/setup.sh index 0183d5b..2f57f22 100755 --- a/setup.sh +++ b/setup.sh @@ -260,7 +260,7 @@ install_termius() { echo -e "\033[46;37mTermius 安装完成。 \033[0m" } -# Function to install WhiteSur theme +# Function to install WhiteSur theme: https://www.cnblogs.com/Undefined443/p/18133703 install_whitesur_theme() { echo -e "\033[46;37minstall WhiteSur theme \033[0m" sudo apt update @@ -268,20 +268,34 @@ install_whitesur_theme() { sudo apt install -y git gnome-tweaks gnome-shell-extensions git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git cd WhiteSur-gtk-themea - ./install.sh -c Light -t all + ./install.sh -t all -N glassy -s 220 # 运行安装脚本 + sudo ./tweaks.sh -g # 添加主题 + cd .. git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git cd WhiteSur-icon-theme ./install.sh + cd .. git clone https://github.com/vinceliuice/WhiteSur-cursors.git cd WhiteSur-cursors ./install.sh - git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git - cd WhiteSur-gtk-theme - ./install.sh -t all -N glassy -s 220 + cd .. + wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.0/Meslo.tar.xz + tar -xJvf Meslo.tar.xz + sudo mkdir /usr/local/share/fonts/Meslo + sudo mv MesloLG* /usr/local/share/fonts/Meslo + sudo fc-cache -fv + cd .. + wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.0/Meslo.tar.xz + tar -xJvf Meslo.tar.xz + sudo mkdir /usr/local/share/fonts/Meslo + sudo mv MesloLG* /usr/local/share/fonts/Meslo + sudo fc-cache -fv + cd .. gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-dark" gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" + gsettings set com.canonical.Unity.Launcher launcher-position Bottom echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" sleep 3 echo -e "\033[46;37mWhiteSur theme 安装完成。 \033[0m" From 244855f010e3473372cc5f5022638f0801600843 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 2 Aug 2024 16:04:36 +0800 Subject: [PATCH 49/80] Update setup.sh --- setup.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/setup.sh b/setup.sh index 2f57f22..b49f9c7 100755 --- a/setup.sh +++ b/setup.sh @@ -279,10 +279,9 @@ install_whitesur_theme() { cd WhiteSur-cursors ./install.sh cd .. - wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.0/Meslo.tar.xz - tar -xJvf Meslo.tar.xz - sudo mkdir /usr/local/share/fonts/Meslo - sudo mv MesloLG* /usr/local/share/fonts/Meslo + wget https://font.download/dl/font/helvetica-255.zip + sudo mkdir /usr/local/share/fonts/Helvetica + sudo unzip helvetica-255.zip -d /usr/local/share/fonts/Helvetica sudo fc-cache -fv cd .. wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.0/Meslo.tar.xz @@ -295,6 +294,14 @@ install_whitesur_theme() { gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" + # 设置界面字体为 Inter Regular + gsettings set org.gnome.desktop.interface font-name 'SF Pro Regular ' + # 设置文档字体为 Inter Regular + gsettings set org.gnome.desktop.interface document-font-name 'Helvetica Normal' + # 设置等宽字体为 Roboto Mono Regular + gsettings set org.gnome.desktop.interface monospace-font-name 'MesloLGM Nerd Font Regular' + # 设置窗口标题字体为 Inter Bold + gsettings set org.gnome.desktop.wm.preferences titlebar-font 'SF Pro Bold' gsettings set com.canonical.Unity.Launcher launcher-position Bottom echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" sleep 3 From 59d0067f74edea03b7aceeffe82eab751a70b752 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 2 Aug 2024 16:33:38 +0800 Subject: [PATCH 50/80] fix theme like mac --- setup.sh | 61 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/setup.sh b/setup.sh index b49f9c7..816f92f 100755 --- a/setup.sh +++ b/setup.sh @@ -295,14 +295,18 @@ install_whitesur_theme() { gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" # 设置界面字体为 Inter Regular - gsettings set org.gnome.desktop.interface font-name 'SF Pro Regular ' + gsettings set org.gnome.desktop.interface font-name 'Ubuntu Regular 10' # 设置文档字体为 Inter Regular - gsettings set org.gnome.desktop.interface document-font-name 'Helvetica Normal' + gsettings set org.gnome.desktop.interface document-font-name 'Helvetica Normal 10' # 设置等宽字体为 Roboto Mono Regular - gsettings set org.gnome.desktop.interface monospace-font-name 'MesloLGM Nerd Font Regular' + gsettings set org.gnome.desktop.interface monospace-font-name 'MesloLGM Nerd Font Regular 10' # 设置窗口标题字体为 Inter Bold - gsettings set org.gnome.desktop.wm.preferences titlebar-font 'SF Pro Bold' - gsettings set com.canonical.Unity.Launcher launcher-position Bottom + gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Ubuntu Bold 10' + # https://www.sohu.com/a/411567625_495675 + gsettings set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM + gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false + gsettings set org.gnome.shell.extensions.dash-to-dock show-apps-at-top true + gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.3 echo "GNOME WhiteSur主题安装和配置完成,请重新启动系统以应用更改。" sleep 3 echo -e "\033[46;37mWhiteSur theme 安装完成。 \033[0m" @@ -417,34 +421,33 @@ sudo apt-get install systemback } echo -e "\033[34m 这里是主程序,具体是---------- -1: 更新系统 -2: 安装基础工具 -3: 安装docker -4: 安装terminator -5: 安装搜狗输入法 -6: 安装系统监视器 -7: 安装GIMP -8: 安装VS Code -9: 安装Sublime Text -10:安装Flameshot -11:安装Typora -12:安装网易云音乐 -13:安装Chrome -14:安装Meld -15:安装Kazam -16:安装Figlet -17:安装WhiteSur主题 -18:安装Clash -19:安装CLion -20:安装Miniconda -21:安装Termius -22: 安装systemback -23: 安装Pycharm\033[0m" +1: 更新系统 +2: 安装基础工具 +3: 安装docker +4: 安装terminator +5: 安装搜狗输入法 +6: 安装系统监视器 +7: 安装GIMP +8: 安装VS Code +9: 安装Sublime Text +10: 安装Flameshot +11: 安装Typora +12: 安装网易云音乐 +13: 安装Chrome +14: 安装Meld +15: 安装Kazam +16: 安装Figlet +17: 安装WhiteSur主题 +18: 安装Clash +19: 安装CLion +20: 安装Miniconda +21: 安装Termius +22: 安装systemback +23: 安装Pycharm\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" # Prompt user for input read -p "请输入数字: " input - # If no input, install all packages if [ -z "$input" ]; then install_all From 931300fc82758ff9a174610849b98a8983327621 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 8 Aug 2024 17:08:02 +0800 Subject: [PATCH 51/80] Update fish terminal tools --- setup.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.sh b/setup.sh index 816f92f..badfa28 100755 --- a/setup.sh +++ b/setup.sh @@ -81,6 +81,8 @@ install_basic_tools() { sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y sudo add-apt-repository ppa:kelebek333/mint-tools -y sudo apt update -y && sudo apt-get purge sticky + sudo apt-get install fish #fish 自动补全工具,不需要zsh了 + echo 'exec fish' >> ~/.bashrc sleep 3 echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" } From b86640e040a417633e93d7d5aacc8ba70f07e983 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 8 Aug 2024 17:23:49 +0800 Subject: [PATCH 52/80] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20disk=20usage=20analy?= =?UTF-8?q?zer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index badfa28..09aa800 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.3 #" +echo "# V 3.0.4 #" echo "#######################################################################" echo "" @@ -83,6 +83,7 @@ install_basic_tools() { sudo apt update -y && sudo apt-get purge sticky sudo apt-get install fish #fish 自动补全工具,不需要zsh了 echo 'exec fish' >> ~/.bashrc + sudo apt install baobab # disk usage analyzer sleep 3 echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" } From f4e7f8fd03b0e6b564be601d19270ef0f7613c4c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 8 Aug 2024 17:35:43 +0800 Subject: [PATCH 53/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0clion=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.sh b/setup.sh index 09aa800..db94bfb 100755 --- a/setup.sh +++ b/setup.sh @@ -380,6 +380,7 @@ EOF # Function to install CLion: https://blog.idejihuo.com/jetbrains/pycharm-2024-1-3-activation-code-latest-crack-tutorial-crack-tool.html # 激活:http://jets.idejihuo.com/v2/ +# 在线激活:https://justsoso.fun/other/JetBrains-License-Server.html install_clion() { echo -e "\033[46;37minstall clion \033[0m" CLION_VERSION="2023.1.1" From 0c0cf47bd07f0b081c161f20ad0cbc9024aeb555 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 8 Aug 2024 18:09:31 +0800 Subject: [PATCH 54/80] =?UTF-8?q?Update=20install=20=E7=A0=B4=E8=A7=A3?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jetbra/scripts/install.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/jetbra/scripts/install.sh b/jetbra/scripts/install.sh index 6275b28..5593462 100755 --- a/jetbra/scripts/install.sh +++ b/jetbra/scripts/install.sh @@ -89,3 +89,27 @@ else ln -sf "${MY_VMOPTIONS_SHELL_FILE}" "${KDE_ENV_DIR}/${MY_VMOPTIONS_SHELL_NAME}" echo "done. you'd better log off first!" fi + +#!/bin/bash + +# 计算脚本的基础路径 +BASE_PATH=$(dirname $( + cd $(dirname "$0") + pwd +)) + +# 目标路径(使用绝对路径) +TARGET_PATH="$HOME/linux-clion/linux2022-2023/ja-netfilter.jar" +TARGET_DIR="$(dirname "$TARGET_PATH")" # 获取目标文件的目录 + +# 检查源文件是否存在 +if [ -f "$BASE_PATH/ja-netfilter.jar" ]; then + # 创建目标目录(如果不存在) + mkdir -p "$TARGET_DIR" + + # 拷贝文件 + cp "$BASE_PATH/ja-netfilter.jar" "$TARGET_PATH" + echo "File copied to $TARGET_PATH" +else + echo "File $BASE_PATH/ja-netfilter.jar does not exist." +fi From 3c4a88a783f9e7ec1ed641676b5851333c6cb019 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 9 Aug 2024 10:06:28 +0800 Subject: [PATCH 55/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index db94bfb..e36e5c2 100755 --- a/setup.sh +++ b/setup.sh @@ -81,7 +81,7 @@ install_basic_tools() { sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y sudo add-apt-repository ppa:kelebek333/mint-tools -y sudo apt update -y && sudo apt-get purge sticky - sudo apt-get install fish #fish 自动补全工具,不需要zsh了 + sudo apt-get install fish #fish 自动补全工具,不需要zsh了。这里还可以通过fish_config完成环境配置 echo 'exec fish' >> ~/.bashrc sudo apt install baobab # disk usage analyzer sleep 3 From 352659efa238f557efcf9b6108582d4f652d4a4c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Sep 2024 16:11:01 +0800 Subject: [PATCH 56/80] Update setup.sh --- setup.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/setup.sh b/setup.sh index e36e5c2..4fc5708 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.4 #" +echo "# V 3.0.5 #" echo "#######################################################################" echo "" @@ -297,14 +297,14 @@ install_whitesur_theme() { gsettings set org.gnome.desktop.interface icon-theme "WhiteSur" gsettings set org.gnome.desktop.interface cursor-theme "WhiteSur-cursors" gsettings set org.gnome.desktop.wm.preferences theme "WhiteSur-dark" - # 设置界面字体为 Inter Regular - gsettings set org.gnome.desktop.interface font-name 'Ubuntu Regular 10' - # 设置文档字体为 Inter Regular - gsettings set org.gnome.desktop.interface document-font-name 'Helvetica Normal 10' - # 设置等宽字体为 Roboto Mono Regular - gsettings set org.gnome.desktop.interface monospace-font-name 'MesloLGM Nerd Font Regular 10' - # 设置窗口标题字体为 Inter Bold - gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Ubuntu Bold 10' +# # 设置界面字体为 Inter Regular +# gsettings set org.gnome.desktop.interface font-name 'Ubuntu Regular 11' +# # 设置文档字体为 Inter Regular +# gsettings set org.gnome.desktop.interface document-font-name 'Sans Regular 11' +# # 设置等宽字体为 Roboto Mono Regular +# gsettings set org.gnome.desktop.interface monospace-font-name 'Sans Regular 11' +# # 设置窗口标题字体为 Inter Bold +# gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Ubuntu Bold 13' # https://www.sohu.com/a/411567625_495675 gsettings set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false From c305f16e7afde79e7ca2e4fb095de45622f5167c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Sep 2024 16:35:59 +0800 Subject: [PATCH 57/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=AE=89=E8=A3=85=E7=9A=84=E8=BD=AF=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 4fc5708..d3d0424 100755 --- a/setup.sh +++ b/setup.sh @@ -3,12 +3,13 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.0.5 #" +echo "# V 3.1.0 #" echo "#######################################################################" echo "" echo "详细安装可以参考:https://dora-cmon.github.io/posts/bbf09ec7/" echo "额外改进安装可以参考:https://github.com/yxSakana/UbuntuAutoConfigure" +echo "Ubuntu 其他比较好的脚本:https://github.com/alicfeng/note/blob/master/Linux/%E9%82%A3%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84Linux%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6%E6%B8%85%E5%8D%95.md" # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 Sources=$(lsb_release -rs) @@ -62,6 +63,7 @@ install_all() { install_clion install_termius install_systemback + install_drawio echo -e "\033[46;37mAll installations 安装完成。\033[0m" } @@ -77,6 +79,8 @@ update_system() { # Function to install basic tools install_basic_tools() { echo -e "\033[46;37minstall basic tools \033[0m" + sudo apt-get install vlc + sudo apt-get install bleachbit -y sudo apt-get install git curl wget gdebi vim unzip -y sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y sudo add-apt-repository ppa:kelebek333/mint-tools -y @@ -376,7 +380,20 @@ EOF echo -e "\033[46;37mPyCharm 安装完成。你可以通过应用菜单或命令 pycharm 启动 PyCharm。 \033[0m" } +install_kdenlive(){ + sudo apt-get install kdenlive +} +install_drawio(){ + # 下载 draw.io 的 .deb 文件 + wget https://github.com/jgraph/drawio-desktop/releases/download/v13.7.9/draw.io-amd64-13.7.9.deb -O draw.io.deb + # 安装 draw.io + sudo dpkg -i draw.io.deb + # 处理依赖关系 + sudo apt-get install -f + # 删除下载的 .deb 文件 + rm draw.io.deb +} # Function to install CLion: https://blog.idejihuo.com/jetbrains/pycharm-2024-1-3-activation-code-latest-crack-tutorial-crack-tool.html # 激活:http://jets.idejihuo.com/v2/ @@ -447,7 +464,9 @@ echo -e "\033[34m 这里是主程序,具体是---------- 20: 安装Miniconda 21: 安装Termius 22: 安装systemback -23: 安装Pycharm\033[0m" +23: 安装Drawio +24: 安装Pycharm(Python编辑器,默认不安装) +25: 安装Kdenlive(视频剪辑,默认不安装)\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" # Prompt user for input @@ -547,9 +566,17 @@ else install_systemback ;; 23) + update_system + install_drawio + ;; + 24) update_system install_pycharm ;; + 25) + update_system + install_kdenlive + ;; *) echo "Unknown option: $arg" install_all From c597a056aa50eac3fb815b98d0c95c214ecb677c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Sep 2024 16:39:00 +0800 Subject: [PATCH 58/80] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ba78c3b..227e0a8 100644 --- a/README.md +++ b/README.md @@ -76,12 +76,17 @@ 13. **安装 Google Chrome 浏览器** 14. **安装 Meld 比较工具** 15. **安装 Kazam 屏幕录制工具** -16. **安装 Figlet** +16. **安装 Figlet生成大尺寸字母图形** 17. **安装 WhiteSur 主题** 18. **安装 Clash** 19. **安装 CLion** 20. **安装 Miniconda** 21. **安装 Turmius** +22. **安装 systemback系统回退模块** +23. **安装drawio绘图软件** +24. **安装pycharm(默认不装)** +25. **安装kdenlive视频剪辑软件(默认不装)** + ### 示例 From a63f100bc447b8a6e7c15859065a3c0a6aae73c5 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 10 Oct 2024 22:19:55 +0800 Subject: [PATCH 59/80] Update setup.sh --- setup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index d3d0424..1810b26 100755 --- a/setup.sh +++ b/setup.sh @@ -425,10 +425,11 @@ EOF # Function to install Miniconda install_miniconda() { - echo -e "\033[46;37m Miniconda3 \033[0m" + echo -e "\033[46;37m Miniconda3 直接全部回车即可 \033[0m" wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh chmod +x Miniconda3-latest-Linux-x86_64.sh ./Miniconda3-latest-Linux-x86_64.sh + echo 'export PATH=$HOME/miniconda3/bin:$PATH' >> ~/.bashrc sleep 3 echo -e "\033[46;37m Miniconda3 安装完成。 \033[0m" } From 902d7b3a0661bec26bd49662385e0a8ad334bf0c Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Thu, 5 Dec 2024 10:21:29 +0800 Subject: [PATCH 60/80] use new clion --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 1810b26..20b7028 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.1.0 #" +echo "# V 3.1.1 #" echo "#######################################################################" echo "" @@ -400,7 +400,7 @@ install_drawio(){ # 在线激活:https://justsoso.fun/other/JetBrains-License-Server.html install_clion() { echo -e "\033[46;37minstall clion \033[0m" - CLION_VERSION="2023.1.1" + CLION_VERSION="2024.2.3" wget https://download.jetbrains.com/cpp/CLion-${CLION_VERSION}.tar.gz -O clion.tar.gz sudo tar -xzf clion.tar.gz -C /opt sudo mv /opt/clion-${CLION_VERSION} /opt/clion From a7e458c5b4baab41983da03927c4f269767340d3 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 11 Mar 2025 23:41:40 +0800 Subject: [PATCH 61/80] Update new clash --- setup.sh | 182 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 156 insertions(+), 26 deletions(-) diff --git a/setup.sh b/setup.sh index 20b7028..f5b958b 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.1.1 #" +echo "# V 3.2.0 #" echo "#######################################################################" echo "" @@ -14,31 +14,7 @@ echo "Ubuntu 其他比较好的脚本:https://github.com/alicfeng/note/blob/ma # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 Sources=$(lsb_release -rs) -if [ "${Sources}" == "22.04" ]; then - SOURCE_FILE="source22.04.list" -elif [ "${Sources}" == "20.04" ]; then - SOURCE_FILE="source20.04.list" -elif [ "${Sources}" == "18.04" ]; then - SOURCE_FILE="source18.04.list" -elif [ "${Sources}" == "16.04" ]; then - SOURCE_FILE="source16.04.list" -elif [ "${Sources}" == "14.04" ]; then - SOURCE_FILE="source14.04.list" -else - echo -e "\033[41;37m The system version is not supported! \033[0m" | tee -a errorinit.log - echo -e "\033[41;37m (系统版本不支持!) \033[0m" | tee -a errorinit.log - echo -e "\033[41;37m 暂时默认支持16.04、18.04、20.04、22.04版本!这里默认替换了22.04版本 \033[0m" | tee -a errorinit.log - SOURCE_FILE="source22.04.list" -fi -if [ -f "${SOURCE_FILE}" ]; then - echo -e "\033[46;37mBegin copy \033[0m" - sudo cp "${SOURCE_FILE}" /etc/apt/sources.list -else - echo -e "\033[41;37m The sources file which contains Tsinghua sources does not exist! \033[0m" | tee -a errorinit.log - echo -e "\033[41;37m (包含清华的源文件不存在!请检查仓库目录下文件是否完整.) \033[0m" | tee -a errorinit.log - exit 0 -fi # Function to install all tools install_all() { @@ -341,7 +317,7 @@ After=network.target [Service] Type=simple -ExecStart=/usr/local/bin/clash-verge -d /home/$USER/.config/clash +ExecStart=/usr/bin/clash-verge -d /home/$USER/.config/clash Restart=on-failure RestartSec=5s @@ -354,6 +330,160 @@ EOF echo -e "\033[46;37mClash Verge 安装和配置完成。 \033[0m" } +install_clash_nyanpasu() { + echo -e "\033[46;37mInstalling Clash Nyanpasu... \033[0m" + echo -e "\033[46;37m 如果需要解决分流问题,可以参考:https://lainbo.dev/clash-config \033[0m" + # 下载最新的AppImage文件 + CLASH_VERSION="1.6.1" + APPIMAGE_URL="https://github.com/libnyanpasu/clash-nyanpasu/releases/download/v${CLASH_VERSION}/clash-nyanpasu_${CLASH_VERSION}_amd64.deb" + + wget $APPIMAGE_URL -O clash-nyanpasu.deb + if [ $? -ne 0 ]; then + echo -e "\033[41;37mFailed to download Clash Nyanpasu. Please check the URL.\033[0m" + return 1 + fi + + # 赋予执行权限 + chmod +x clash-nyanpasu.deb + sudo dpkg -i clash-nyanpasu.deb + if [ $? -ne 0 ]; then + sudo apt install libwebkit2gtk-4.0-dev + echo -e "\033[46;37m Installing dependencies by https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/dependencies ...\033[0m" + # 下载并安装 libjavascriptcoregtk-4.0-18 + wget http://archive.ubuntu.com/ubuntu/pool/universe/liba/libayatana-indicator/libayatana-indicator3-7_0.6.3-1_amd64.deb -O libayatana-indicator3-7_amd64.deb + sudo dpkg -i libayatana-indicator3-7_amd64.deb + rm libayatana-indicator3-7_amd64.deb + + wget http://ftp.de.debian.org/debian/pool/main/liba/libayatana-appindicator/libayatana-appindicator3-1_0.5.92-1_amd64.deb -O libayatana-appindicator3-1_amd64.deb + sudo dpkg -i libayatana-appindicator3-1_amd64.deb + rm libayatana-appindicator3-1_amd64.deb + sudo dpkg -i clash-nyanpasu.deb + fi + rm clash-nyanpasu.deb + + + # 定义库文件的路径 + LIB_DIR="/usr/lib/x86_64-linux-gnu" + LIB_CRYPTO_V3="libcrypto.so.3" + LIB_SSL_V3="libssl.so.3" + LIB_CRYPTO_V1_1="libcrypto.so.1.1" + LIB_SSL_V1_1="libssl.so.1.1" + + # 检查 libcrypto.so.3 是否存在 + if [ ! -f "$LIB_DIR/$LIB_CRYPTO_V3" ]; then + echo "$LIB_CRYPTO_V3 不存在,检查 libcrypto.so.1.1" + if [ -f "$LIB_DIR/$LIB_CRYPTO_V1_1" ]; then + echo "创建符号链接 $LIB_CRYPTO_V3 -> $LIB_CRYPTO_V1_1" + sudo ln -s "$LIB_DIR/$LIB_CRYPTO_V1_1" "$LIB_DIR/$LIB_CRYPTO_V3" + else + echo "目标库 $LIB_CRYPTO_V1_1 不存在,无法创建链接。" + fi + else + echo "$LIB_CRYPTO_V3 已存在。" + fi + + # 检查 libssl.so.3 是否存在 + if [ ! -f "$LIB_DIR/$LIB_SSL_V3" ]; then + echo "$LIB_SSL_V3 不存在,检查 libssl.so.1.1" + if [ -f "$LIB_DIR/$LIB_SSL_V1_1" ]; then + echo "创建符号链接 $LIB_SSL_V3 -> $LIB_SSL_V1_1" + sudo ln -s "$LIB_DIR/$LIB_SSL_V1_1" "$LIB_DIR/$LIB_SSL_V3" + else + echo "目标库 $LIB_SSL_V1_1 不存在,无法创建链接。" + fi + else + echo "$LIB_SSL_V3 已存在。" + fi + + # 创建 systemd 服务 + sudo tee /etc/systemd/system/clash-nyanpasu.service > /dev/null < /dev/null < Date: Mon, 17 Mar 2025 17:31:24 +0800 Subject: [PATCH 62/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20vscode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.sh b/setup.sh index f5b958b..080db0b 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.0 #" +echo "# V 3.2.1 #" echo "#######################################################################" echo "" @@ -140,7 +140,7 @@ install_gimp() { echo -e "\033[46;37minstall picture edit gimp 安装完成。 \033[0m" } -# Function to install VS Code +# Function to install VS Code:https://code.visualstudio.com/docs/supporting/faq#_previous-release-versions install_vscode() { echo -e "\033[46;37minstall VS code \033[0m" curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg @@ -150,7 +150,7 @@ install_vscode() { sudo apt-get -y install code echo -e "\033[46;37m VS code was installed successfully! \033[0m" sleep 3 - echo -e "\033[46;37minstall VS code 安装完成。 \033[0m" + echo -e "\033[46;37minstall VS code 安装完成。如果无法使用请手动下载deb版本,填入对应version即可: https://update.code.visualstudio.com/{version}/linux-deb-x64/stable \033[0m" } # Function to install Sublime Text From 9cf87e465c2a98a4ddcf08ace962a89c7516d722 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 4 May 2025 21:57:57 +0800 Subject: [PATCH 63/80] Update setup.sh --- setup.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/setup.sh b/setup.sh index 080db0b..b0fdaf3 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.1 #" +echo "# V 3.2.3 #" echo "#######################################################################" echo "" @@ -14,7 +14,9 @@ echo "Ubuntu 其他比较好的脚本:https://github.com/alicfeng/note/blob/ma # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 Sources=$(lsb_release -rs) - +UBUNTU_VERSION=$(lsb_release -rs) +UBUNTU_MAJOR=$(echo $UBUNTU_VERSION | cut -d. -f1) +UBUNTU_MINOR=$(echo $UBUNTU_VERSION | cut -d. -f2) # Function to install all tools install_all() { @@ -35,7 +37,15 @@ install_all() { install_kazam install_figlet install_whitesur_theme - install_clash + # 如果版本是20.04或更低版本则使用install_clash + if (( UBUNTU_MAJOR < 20 )) || (( UBUNTU_MAJOR == 20 && UBUNTU_MINOR <= 4 )); then + echo -e "\033[46;37m检测到Ubuntu $UBUNTU_VERSION (<=20.04),使用install_clash函数\033[0m" + install_clash + else + echo -e "\033[46;37m检测到Ubuntu $UBUNTU_VERSION (>20.04),使用install_clash_nyanpasu函数\033[0m" + install_clash_nyanpasu + fi +# install_clash install_clion install_termius install_systemback From 358224d550a089ce547d79109dbb3c479308a57f Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 4 May 2025 22:18:02 +0800 Subject: [PATCH 64/80] Update setup.sh --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index b0fdaf3..c55885f 100755 --- a/setup.sh +++ b/setup.sh @@ -119,7 +119,7 @@ install_sougou() { sudo apt-get autoremove -y sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 libgsettings-qt1 fcitx-bin fcitx-table im-config fcitx -y im-config -n fcitx - wget https://ime-sec.gtimg.com/202407061952/44fd3f78006f9c44b462770713ca46b0/pc/dl/gzindex/1680521603/sogoupinyin_4.2.1.145_amd64.deb + wget https://benson80.eu.org/sogoupinyin_4.2.1.145_amd64.deb sudo dpkg -i sogoupinyin_4.2.1.145_amd64.deb sudo apt-get --fix-broken install -y sudo apt-get -yf install -y From 8c5cb387e52d491933ccde3a00a5ca6de31c527b Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Mon, 5 May 2025 12:45:50 +0800 Subject: [PATCH 65/80] add jetbra 2024 --- jetbra-2024/.DS_Store | Bin 0 -> 6148 bytes jetbra-2024/config-jetbrains/dns.conf | 3 + jetbra-2024/config-jetbrains/power.conf | 7 ++ jetbra-2024/config-jetbrains/url.conf | 3 + jetbra-2024/ja-netfilter.jar | Bin 0 -> 48639 bytes jetbra-2024/plugins-jetbrains/dns.jar | Bin 0 -> 4859 bytes jetbra-2024/plugins-jetbrains/hideme.jar | Bin 0 -> 7209 bytes jetbra-2024/plugins-jetbrains/power.jar | Bin 0 -> 9222 bytes jetbra-2024/plugins-jetbrains/url.jar | Bin 0 -> 4529 bytes jetbra-2024/scripts/install-all-users.vbs | 73 ++++++++++++++ jetbra-2024/scripts/install-current-user.vbs | 54 +++++++++++ jetbra-2024/scripts/install.sh | 91 ++++++++++++++++++ jetbra-2024/scripts/uninstall-all-users.vbs | 28 ++++++ .../scripts/uninstall-current-user.vbs | 17 ++++ jetbra-2024/scripts/uninstall.sh | 50 ++++++++++ jetbra-2024/sha1sum.txt | 34 +++++++ jetbra-2024/vmoptions/aqua.vmoptions | 21 ++++ jetbra-2024/vmoptions/clion.vmoptions | 21 ++++ jetbra-2024/vmoptions/datagrip.vmoptions | 21 ++++ jetbra-2024/vmoptions/dataspell.vmoptions | 21 ++++ jetbra-2024/vmoptions/devecostudio.vmoptions | 21 ++++ jetbra-2024/vmoptions/gateway.vmoptions | 21 ++++ jetbra-2024/vmoptions/goland.vmoptions | 21 ++++ jetbra-2024/vmoptions/idea.vmoptions | 21 ++++ .../vmoptions/jetbrains_client.vmoptions | 21 ++++ .../vmoptions/jetbrainsclient.vmoptions | 21 ++++ jetbra-2024/vmoptions/phpstorm.vmoptions | 21 ++++ jetbra-2024/vmoptions/pycharm.vmoptions | 21 ++++ jetbra-2024/vmoptions/rider.vmoptions | 21 ++++ jetbra-2024/vmoptions/rubymine.vmoptions | 21 ++++ jetbra-2024/vmoptions/rustrover.vmoptions | 21 ++++ jetbra-2024/vmoptions/studio.vmoptions | 21 ++++ jetbra-2024/vmoptions/webide.vmoptions | 21 ++++ jetbra-2024/vmoptions/webstorm.vmoptions | 21 ++++ .../\346\277\200\346\264\273\347\240\201.txt" | 59 ++++++++++++ jetbra/.DS_Store | Bin 0 -> 6148 bytes jetbra/vmoptions/aqua.vmoptions | 21 ++++ jetbra/vmoptions/rustrover.vmoptions | 21 ++++ 38 files changed, 839 insertions(+) create mode 100644 jetbra-2024/.DS_Store create mode 100644 jetbra-2024/config-jetbrains/dns.conf create mode 100644 jetbra-2024/config-jetbrains/power.conf create mode 100644 jetbra-2024/config-jetbrains/url.conf create mode 100644 jetbra-2024/ja-netfilter.jar create mode 100644 jetbra-2024/plugins-jetbrains/dns.jar create mode 100644 jetbra-2024/plugins-jetbrains/hideme.jar create mode 100644 jetbra-2024/plugins-jetbrains/power.jar create mode 100644 jetbra-2024/plugins-jetbrains/url.jar create mode 100644 jetbra-2024/scripts/install-all-users.vbs create mode 100644 jetbra-2024/scripts/install-current-user.vbs create mode 100644 jetbra-2024/scripts/install.sh create mode 100644 jetbra-2024/scripts/uninstall-all-users.vbs create mode 100644 jetbra-2024/scripts/uninstall-current-user.vbs create mode 100644 jetbra-2024/scripts/uninstall.sh create mode 100644 jetbra-2024/sha1sum.txt create mode 100644 jetbra-2024/vmoptions/aqua.vmoptions create mode 100644 jetbra-2024/vmoptions/clion.vmoptions create mode 100644 jetbra-2024/vmoptions/datagrip.vmoptions create mode 100644 jetbra-2024/vmoptions/dataspell.vmoptions create mode 100644 jetbra-2024/vmoptions/devecostudio.vmoptions create mode 100644 jetbra-2024/vmoptions/gateway.vmoptions create mode 100644 jetbra-2024/vmoptions/goland.vmoptions create mode 100644 jetbra-2024/vmoptions/idea.vmoptions create mode 100644 jetbra-2024/vmoptions/jetbrains_client.vmoptions create mode 100644 jetbra-2024/vmoptions/jetbrainsclient.vmoptions create mode 100644 jetbra-2024/vmoptions/phpstorm.vmoptions create mode 100644 jetbra-2024/vmoptions/pycharm.vmoptions create mode 100644 jetbra-2024/vmoptions/rider.vmoptions create mode 100644 jetbra-2024/vmoptions/rubymine.vmoptions create mode 100644 jetbra-2024/vmoptions/rustrover.vmoptions create mode 100644 jetbra-2024/vmoptions/studio.vmoptions create mode 100644 jetbra-2024/vmoptions/webide.vmoptions create mode 100644 jetbra-2024/vmoptions/webstorm.vmoptions create mode 100644 "jetbra-2024/\346\277\200\346\264\273\347\240\201.txt" create mode 100644 jetbra/.DS_Store create mode 100644 jetbra/vmoptions/aqua.vmoptions create mode 100644 jetbra/vmoptions/rustrover.vmoptions diff --git a/jetbra-2024/.DS_Store b/jetbra-2024/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..228be86d0ee75a3fe120e5cbd3b69bf1e9295066 GIT binary patch literal 6148 zcmeHK%}yIJ5dPdof;N|wQ>$L~0SF-x53r54J)!mx!8uI=geV)Yk`1D_J@(iO@4^%C z5S6<_zb+Z49K_J!WbG0oZ|8KJHisbX<1-3KkE+0I!^51zy94MCe~3j zn(GmLW%J0ce%yT9EN=3wxMccxj3K+iCnT6-%{|Gmc-Wb0nN4mtiz;wy-+eLMHs~+b zId)Ho%=7yv{I;;-%q__-;eK0~rCo6;c+`x$(Y#Lm5w#G^!SAV{;)OW2@#`%W3D@yp_ug*>k*? zeFl66@)>w>V31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193857485407672132882577840295039058621747654642202620767068924079813640067442975 +EQUAL,18334983902317920056407822076363704637127511531538667546454397384237002307773468304678083268940125026889850144873377524086979381177447338726740515125485990255804943597229646061638739889766127330669573122850717958841899404955081920145521154771305144425440057732333493057842144190570008851861105129783440041663779514287133102203234622617071230933765542056696346242481464904964506696247983144941959930402082784396824311315073713284265519582655262360264508170809532574071410971740082846089152772578790836229920359729093453981067609164052947062747210374015835086399513848397669153177129004699260465730470356144424062305576,65537,24156627931985958051017183040835577271803742470193804806479316178045088981962804168393398987646446251087541768081971475544151551235525470790716604369379805327668466429966167642117961353233058515180243264560201783520956161510523416923017697354365782825500659342029196527776056976223174394946371372849906309277537461992299774200098515526818746947230488275456663264920440977381968978227273889068919338259949793686590492904029279861913225794809675826299753284990778166519152326723946780528965868736869495336993456735232755342913885746267768375682771655854436236934171901662660193080235109535758464079136573948168636773471->986236757547332986472011617696226561292849812918563355472727826767720188564083584387121625107510786855734801053524719833194566624465665316622563244215340671405971599343902468620306327831715457360719532421388780770165778156818229863337344187575566725786793391480600129482653072861971002459947277805295727097226389568776499707662505334062639449916265137796823793276300221537201727072401742985542559596685092673521228140822200236743113743661549252453726123450722876929538747702356573783116366629850199080495560991841329893037291900147497007197055572787780928474439121996761454121550126010635197320122603857735547407 + +[Args] +EQUAL,65537,24773058818499217187577663886010908531303294206336895556072197892590450942803807164562754911175164262596715237551312004078542654996496301487027034803410086499747369353221485073240039340641397198525027728751956658900801359887190562885573922317930300068615009483578963467556425525328780085523172495307229112069939166202511721671904748968934606589702999279663332403655662225374084460291376706916679151764149324177444374590606643838366605181996272409014933080082205048098737253668016260658830645459388519595314928290853199112791333551144805347785109465401055719331231478162870216035573012645710763533896540021550083104281->3,24773058818499217187577663886010908531303294206336895556072197892590450942803807164562754911175164262596715237551312004078542654996496301487027034803410086499747369353221485073240039340641397198525027728751956658900801359887190562885573922317930300068615009483578963467556425525328780085523172495307229112069939166202511721671904748968934606589702999279663332403655662225374084460291376706916679151764149324177444374590606643838366605181996272409014933080082205048098737253668016260658830645459388519595314928290853199112791333551144805347785109465401055719331231478162870216035573012645710763533896540021550083104281 \ No newline at end of file diff --git a/jetbra-2024/config-jetbrains/url.conf b/jetbra-2024/config-jetbrains/url.conf new file mode 100644 index 0000000..5b730d2 --- /dev/null +++ b/jetbra-2024/config-jetbrains/url.conf @@ -0,0 +1,3 @@ +[URL] +PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action +PREFIX,https://account.jetbrains.com.cn/lservice/rpc/validateKey.action \ No newline at end of file diff --git a/jetbra-2024/ja-netfilter.jar b/jetbra-2024/ja-netfilter.jar new file mode 100644 index 0000000000000000000000000000000000000000..b72565a350f502d0e07b0879272cf19d01664268 GIT binary patch literal 48639 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 E54%#Ny8r+H literal 0 HcmV?d00001 diff --git a/jetbra-2024/plugins-jetbrains/dns.jar b/jetbra-2024/plugins-jetbrains/dns.jar new file mode 100644 index 0000000000000000000000000000000000000000..113c6990747325b43e4f0a6affcc4bbc3e0d49e9 GIT binary patch literal 4859 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 b7X9B00Od#V0s#T*$4~EvawO}~&wu|1KF}#u literal 0 HcmV?d00001 diff --git a/jetbra-2024/plugins-jetbrains/url.jar b/jetbra-2024/plugins-jetbrains/url.jar new file mode 100644 index 0000000000000000000000000000000000000000..495804edbaf722bd507e828982879b3dce7ca728 GIT binary patch literal 4529 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 literal 0 HcmV?d00001 diff --git a/jetbra-2024/scripts/install-all-users.vbs b/jetbra-2024/scripts/install-all-users.vbs new file mode 100644 index 0000000..60d95fb --- /dev/null +++ b/jetbra-2024/scripts/install-all-users.vbs @@ -0,0 +1,73 @@ +If Not WScript.Arguments.Named.Exists("elevate") Then + CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 10 + WScript.Quit +End If + +Set oShell = CreateObject("WScript.Shell") +Set oEnvSystem = oShell.Environment("SYSTEM") +Set oFS = CreateObject("Scripting.FileSystemObject") + +Dim sBasePath, sJarFile +sBasePath = oFS.GetParentFolderName(oFS.GetParentFolderName(WScript.ScriptFullName)) +sJarFile = sBasePath & "\ja-netfilter.jar" + +If Not oFS.FileExists(sJarFile) Then + MsgBox "ja-netfilter.jar not found", vbOKOnly Or vbCritical + WScript.Quit -1 +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "dataspell", "aqua", "rustrover", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +Set re = New RegExp +re.Global = True +re.IgnoreCase = True +re.Pattern = "^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*" + +Sub RemoveEnv(env) + On Error Resume Next + + For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + env.Remove(sEnvKey) + End If + Next +End Sub + +RemoveEnv oShell.Environment("USER") + +Dim sVmOptionsFile +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sVmOptionsFile = sBasePath & "\vmoptions\" & sPrd & ".vmoptions" + If oFS.FileExists(sVmOptionsFile) Then + ProcessVmOptions sVmOptionsFile + oEnvSystem(sEnvKey) = sVmOptionsFile + End If +Next + +Sub ProcessVmOptions(ByVal file) + Dim sLine, sNewContent, bMatch + Set oFile = oFS.OpenTextFile(file, 1, 0) + + sNewContent = "" + Do Until oFile.AtEndOfStream + sLine = oFile.ReadLine + bMatch = re.Test(sLine) + If Not bMatch Then + sNewContent = sNewContent & sLine & vbLf + End If + Loop + oFile.Close + + sNewContent = sNewContent & "-javaagent:" & sJarFile & "=jetbrains" + Set oFile = oFS.OpenTextFile(file, 2, 0) + oFile.Write sNewContent + oFile.Close +End Sub + +MsgBox "Done." diff --git a/jetbra-2024/scripts/install-current-user.vbs b/jetbra-2024/scripts/install-current-user.vbs new file mode 100644 index 0000000..a79952c --- /dev/null +++ b/jetbra-2024/scripts/install-current-user.vbs @@ -0,0 +1,54 @@ +Set oShell = CreateObject("WScript.Shell") +Set oEnv = oShell.Environment("USER") +Set oFS = CreateObject("Scripting.FileSystemObject") + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "dataspell", "aqua", "rustrover", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +Set re = New RegExp +re.Global = True +re.IgnoreCase = True +re.Pattern = "^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*" + +Dim sBasePath, sJarFile +sBasePath = oFS.GetParentFolderName(oShell.CurrentDirectory) +sJarFile = sBasePath & "\ja-netfilter.jar" + +If Not oFS.FileExists(sJarFile) Then + MsgBox "ja-netfilter.jar not found", vbOKOnly Or vbCritical + WScript.Quit -1 +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Dim sVmOptionsFile +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sVmOptionsFile = sBasePath & "\vmoptions\" & sPrd & ".vmoptions" + If oFS.FileExists(sVmOptionsFile) Then + ProcessVmOptions sVmOptionsFile + oEnv(sEnvKey) = sVmOptionsFile + End If +Next + +Sub ProcessVmOptions(ByVal file) + Dim sLine, sNewContent, bMatch + Set oFile = oFS.OpenTextFile(file, 1, 0) + + sNewContent = "" + Do Until oFile.AtEndOfStream + sLine = oFile.ReadLine + bMatch = re.Test(sLine) + If Not bMatch Then + sNewContent = sNewContent & sLine & vbLf + End If + Loop + oFile.Close + + sNewContent = sNewContent & "-javaagent:" & sJarFile & "=jetbrains" + Set oFile = oFS.OpenTextFile(file, 2, 0) + oFile.Write sNewContent + oFile.Close +End Sub + +MsgBox "Done." diff --git a/jetbra-2024/scripts/install.sh b/jetbra-2024/scripts/install.sh new file mode 100644 index 0000000..1f66443 --- /dev/null +++ b/jetbra-2024/scripts/install.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +set -e + +OS_NAME=$(uname -s) +JB_PRODUCTS="idea clion phpstorm goland pycharm webstorm webide rider datagrip rubymine dataspell aqua rustrover gateway jetbrains_client jetbrainsclient studio devecostudio" + +BASE_PATH=$(dirname $( + cd $(dirname "$0") + pwd +)) + +JAR_FILE_PATH="${BASE_PATH}/ja-netfilter.jar" + +if [ ! -f "${JAR_FILE_PATH}" ]; then + echo 'ja-netfilter.jar not found' + exit -1 +fi + +KDE_ENV_DIR="${HOME}/.config/plasma-workspace/env" +LAUNCH_AGENTS_DIR="${HOME}/Library/LaunchAgents" + +PROFILE_PATH="${HOME}/.profile" +ZSH_PROFILE_PATH="${HOME}/.zshrc" +PLIST_PATH="${LAUNCH_AGENTS_DIR}/jetbrains.vmoptions.plist" + +if [ $OS_NAME = "Darwin" ]; then + BASH_PROFILE_PATH="${HOME}/.bash_profile" + + mkdir -p "${LAUNCH_AGENTS_DIR}" + echo 'Labeljetbrains.vmoptionsProgramArgumentssh-c' >"${PLIST_PATH}" +else + BASH_PROFILE_PATH="${HOME}/.bashrc" + mkdir -p "${KDE_ENV_DIR}" +fi + +touch "${PROFILE_PATH}" +touch "${BASH_PROFILE_PATH}" +touch "${ZSH_PROFILE_PATH}" + +MY_VMOPTIONS_SHELL_NAME="jetbrains.vmoptions.sh" +MY_VMOPTIONS_SHELL_FILE="${HOME}/.${MY_VMOPTIONS_SHELL_NAME}" +echo '#!/bin/sh' >"${MY_VMOPTIONS_SHELL_FILE}" + +EXEC_LINE='___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh"; if [ -f "${___MY_VMOPTIONS_SHELL_FILE}" ]; then . "${___MY_VMOPTIONS_SHELL_FILE}"; fi' + +for PRD in $JB_PRODUCTS; do + VM_FILE_PATH="${BASE_PATH}/vmoptions/${PRD}.vmoptions" + if [ ! -f "${VM_FILE_PATH}" ]; then + continue + fi + + if [ $OS_NAME = "Darwin" ]; then + sed -i '' '/^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*/d' "${VM_FILE_PATH}" + else + sed -i '/^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*/d' "${VM_FILE_PATH}" + fi + + echo "-javaagent:${JAR_FILE_PATH}=jetbrains" >>"${VM_FILE_PATH}" + + ENV_NAME=$(echo $PRD | tr '[a-z]' '[A-Z]')"_VM_OPTIONS" + echo "export ${ENV_NAME}=\"${VM_FILE_PATH}\"" >>"${MY_VMOPTIONS_SHELL_FILE}" + + if [ $OS_NAME = "Darwin" ]; then + launchctl setenv "${ENV_NAME}" "${VM_FILE_PATH}" + echo "launchctl setenv \"${ENV_NAME}\" \"${VM_FILE_PATH}\"" >>"${PLIST_PATH}" + fi +done + +if [ $OS_NAME = "Darwin" ]; then + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + echo 'RunAtLoad' >>"${PLIST_PATH}" +else + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 +fi + +echo "${EXEC_LINE}" >>"${PROFILE_PATH}" +echo "${EXEC_LINE}" >>"${BASH_PROFILE_PATH}" +echo "${EXEC_LINE}" >>"${ZSH_PROFILE_PATH}" + +if [ $OS_NAME = "Darwin" ]; then + echo 'done. the "kill Dock" command can fix the crash issue.' +else + ln -sf "${MY_VMOPTIONS_SHELL_FILE}" "${KDE_ENV_DIR}/${MY_VMOPTIONS_SHELL_NAME}" + echo "done. you'd better log off first!" +fi diff --git a/jetbra-2024/scripts/uninstall-all-users.vbs b/jetbra-2024/scripts/uninstall-all-users.vbs new file mode 100644 index 0000000..f067438 --- /dev/null +++ b/jetbra-2024/scripts/uninstall-all-users.vbs @@ -0,0 +1,28 @@ +If Not WScript.Arguments.Named.Exists("elevate") Then + CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 10 + WScript.Quit +End If + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +Sub RemoveEnv(env) + On Error Resume Next + + Dim sEnvKey, sEnvVal, aJBProducts + aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "dataspell", "aqua", "rustrover", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + + For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + env.Remove(sEnvKey) + End If + Next +End Sub + +Set oShell = CreateObject("WScript.Shell") + +RemoveEnv oShell.Environment("USER") +RemoveEnv oShell.Environment("SYSTEM") + +MsgBox "Done." diff --git a/jetbra-2024/scripts/uninstall-current-user.vbs b/jetbra-2024/scripts/uninstall-current-user.vbs new file mode 100644 index 0000000..97553dc --- /dev/null +++ b/jetbra-2024/scripts/uninstall-current-user.vbs @@ -0,0 +1,17 @@ +Set oShell = CreateObject("WScript.Shell") +Set oEnv = oShell.Environment("USER") + +Dim sEnvKey, sEnvVal, aJBProducts +aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "dataspell", "aqua", "rustrover", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio") + +MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!" + +For Each sPrd in aJBProducts + sEnvKey = UCase(sPrd) & "_VM_OPTIONS" + sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%") + If sEnvVal <> ("%" & sEnvKey & "%") Then + oEnv.Remove(sEnvKey) + End If +Next + +MsgBox "Done." diff --git a/jetbra-2024/scripts/uninstall.sh b/jetbra-2024/scripts/uninstall.sh new file mode 100644 index 0000000..24b69e0 --- /dev/null +++ b/jetbra-2024/scripts/uninstall.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +OS_NAME=$(uname -s) +JB_PRODUCTS="idea clion phpstorm goland pycharm webstorm webide rider datagrip rubymine dataspell aqua rustrover gateway jetbrains_client jetbrainsclient studio devecostudio" + +KDE_ENV_DIR="${HOME}/.config/plasma-workspace/env" + +PROFILE_PATH="${HOME}/.profile" +ZSH_PROFILE_PATH="${HOME}/.zshrc" +PLIST_PATH="${HOME}/Library/LaunchAgents/jetbrains.vmoptions.plist" + +if [ $OS_NAME = "Darwin" ]; then + BASH_PROFILE_PATH="${HOME}/.bash_profile" +else + BASH_PROFILE_PATH="${HOME}/.bashrc" +fi + +touch "${PROFILE_PATH}" +touch "${BASH_PROFILE_PATH}" +touch "${ZSH_PROFILE_PATH}" + +MY_VMOPTIONS_SHELL_NAME="jetbrains.vmoptions.sh" +MY_VMOPTIONS_SHELL_FILE="${HOME}/.${MY_VMOPTIONS_SHELL_NAME}" + +rm -rf "${MY_VMOPTIONS_SHELL_FILE}" + +if [ $OS_NAME = "Darwin" ]; then + for PRD in $JB_PRODUCTS; do + ENV_NAME=$(echo $PRD | tr '[a-z]' '[A-Z]')"_VM_OPTIONS" + + launchctl unsetenv "${ENV_NAME}" + done + + rm -rf "${PLIST_PATH}" + + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '' '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + echo 'done.' +else + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${BASH_PROFILE_PATH}" >/dev/null 2>&1 + sed -i '/___MY_VMOPTIONS_SHELL_FILE="${HOME}\/\.jetbrains\.vmoptions\.sh"; if /d' "${ZSH_PROFILE_PATH}" >/dev/null 2>&1 + + rm -rf "${KDE_ENV_DIR}/${MY_VMOPTIONS_SHELL_NAME}" + echo "done. you'd better log off first!" +fi diff --git a/jetbra-2024/sha1sum.txt b/jetbra-2024/sha1sum.txt new file mode 100644 index 0000000..19d7761 --- /dev/null +++ b/jetbra-2024/sha1sum.txt @@ -0,0 +1,34 @@ +2a723c2ef30be4a5c167c6639bf9ec0b9c7e7ca2 ja-netfilter.jar +06777a6f603fa3c4eb83b4a9eca76331e40006f4 README.pdf +67c0745960d407921cf8f65f4e1417aaf9f2704b readme.txt +4e8693b5a7a3837cf7f6db0c4f1316f376d34721 plugins-jetbrains/dns.jar +729d00e4fa04ca49c00b5b6aa60706dfadd5644e plugins-jetbrains/hideme.jar +26ee7577969265ff77a7fd786bcb707fe21a3d6b plugins-jetbrains/power.jar +b1bebbee8d98218db5794f596001b8b7427ae0c7 plugins-jetbrains/url.jar +84fc47685c4768eff051361777664bb764d5b844 config-jetbrains/dns.conf +63e34a637babf1ba1eb8f37c494c964c3bf5c08d config-jetbrains/power.conf +0b219cc137a185439fb9bd99d85b8fe320967507 config-jetbrains/url.conf +d78dcc913ab0bb4fde9f415bc30e671ca7a0e3b2 scripts/install-all-users.vbs +75a91f13c9679f6e73d5e1c19f6c604ad5b9661b scripts/install-current-user.vbs +5d60fd44d72b1517a23459930173429ba522fdd5 scripts/install.sh +9849b148c6ad577c6a634fe1cee0386ea0227516 scripts/uninstall-all-users.vbs +a0851ee0ff972267ba41c69e9eefffe5f220365c scripts/uninstall-current-user.vbs +ed6ed033e8726fda006887beba0ffde73d178faf scripts/uninstall.sh +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/aqua.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/clion.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/datagrip.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/dataspell.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/devecostudio.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/gateway.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/goland.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/idea.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/jetbrains_client.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/jetbrainsclient.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/phpstorm.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/pycharm.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/rider.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/rubymine.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/rustrover.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/studio.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/webide.vmoptions +1a3698a91fbf5817433023a147adb0c715066b9f vmoptions/webstorm.vmoptions diff --git a/jetbra-2024/vmoptions/aqua.vmoptions b/jetbra-2024/vmoptions/aqua.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/aqua.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/clion.vmoptions b/jetbra-2024/vmoptions/clion.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/clion.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/datagrip.vmoptions b/jetbra-2024/vmoptions/datagrip.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/datagrip.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/dataspell.vmoptions b/jetbra-2024/vmoptions/dataspell.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/dataspell.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/devecostudio.vmoptions b/jetbra-2024/vmoptions/devecostudio.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/devecostudio.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/gateway.vmoptions b/jetbra-2024/vmoptions/gateway.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/gateway.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/goland.vmoptions b/jetbra-2024/vmoptions/goland.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/goland.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/idea.vmoptions b/jetbra-2024/vmoptions/idea.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/idea.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/jetbrains_client.vmoptions b/jetbra-2024/vmoptions/jetbrains_client.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/jetbrains_client.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/jetbrainsclient.vmoptions b/jetbra-2024/vmoptions/jetbrainsclient.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/jetbrainsclient.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/phpstorm.vmoptions b/jetbra-2024/vmoptions/phpstorm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/phpstorm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/pycharm.vmoptions b/jetbra-2024/vmoptions/pycharm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/pycharm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/rider.vmoptions b/jetbra-2024/vmoptions/rider.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/rider.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/rubymine.vmoptions b/jetbra-2024/vmoptions/rubymine.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/rubymine.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/rustrover.vmoptions b/jetbra-2024/vmoptions/rustrover.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/rustrover.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/studio.vmoptions b/jetbra-2024/vmoptions/studio.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/studio.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/webide.vmoptions b/jetbra-2024/vmoptions/webide.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/webide.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/jetbra-2024/vmoptions/webstorm.vmoptions b/jetbra-2024/vmoptions/webstorm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/jetbra-2024/vmoptions/webstorm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git "a/jetbra-2024/\346\277\200\346\264\273\347\240\201.txt" "b/jetbra-2024/\346\277\200\346\264\273\347\240\201.txt" new file mode 100644 index 0000000..392f0f1 --- /dev/null +++ "b/jetbra-2024/\346\277\200\346\264\273\347\240\201.txt" @@ -0,0 +1,59 @@ + +##########教程和专属激活码########## + +最新破解教程:https://blog.idejihuo.com/jetbrains/intellij-idea-2025-1-latest-version-activation-code-permanent-activation-tutorial-cracking-tool.html + +专属激活码(打开复制复制对应IDE激活码,需和破解工具一起使用):http://jets.idejihuo.com/v3 + + +##########临时激活码 时效性无法保证 长期免费更新########## + +免费激活码1:http://www.idejihuo.cn +免费激活码2:http://www.idejihuo.com + + +##########激活工具 免费获取########## + +激活工具和激活码会随版本持续更新,均免费获取,可以关注公众号「终码一生」,回复【永久激活】获取 + + + +注:jetbra路径不要含空格,如有其它破解插件要移除! + +1)将永久激活插件 jetbra(ja-netfilter-all) 放固定位置 +例如:D:\jetbra\ja-netfilter.jar + +2)右键以管理员身份运行脚本自动配置VM自定义选项 +jetbra\script\install-all-users.vbs + +3)启动JetBrains产品,许可证激活选择激活码方式(Activate code) +jetbra插件JetBrains产品激活码页面主站新地址 https://3.jetbra.in + +JetBrains部分常用产品最新激活码,需要配合jetbra破解插件使用。 + +【IntelliJ IDEA 2024.2.x】 +FV8EM46DQYC5AW9-eyJsaWNlbnNlSWQiOiJGVjhFTTQ2RFFZQzVBVzkiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUlIiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJJSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9XSwibWV0YWRhdGEiOiIwMjIwMjQwNzAyUFNBWDAwMDAwNVgiLCJoYXNoIjoiMTIzNDU2NzgvMC01NDE4MTY2MjkiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwidHJpYWwiOmZhbHNlLCJhaUFsbG93ZWQiOnRydWV9-cH8qBniG31nF8954hthJJuzF6Fk4RQ9T03IfNxsFkuxUcwaAGHKOcRudvBZIAbLwDDFw63q2QZsnpwthBb/6IqBYnJrjRC83a8wkYKGN8HqAyDtbqdLOxLjcaiAiSKzektfAXn6nGNfDeygcFr/WzMfI0on/43ByuwxmSrjwYc4M8SCR0nkDAi0XwXNnFp3vSp0gJQd+lJtkSHO2KR7gUyNDZOPVduljJGbdLJUK6UcUjrlAd6NrTNqpu5P7hcYRaNzjoJ0KeIx5k9KmMCdcfQBia/zSHUbwZiecFsyjxqtIU0C3TDaX1OM4siJVDpgrXi+ocY86hiiYE79ygJf2IA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【PhpStorm 2024.2.x】 +LK57VMVACTAYXFP-eyJsaWNlbnNlSWQiOiJMSzU3Vk1WQUNUQVlYRlAiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wOTIwNDIzMTY5IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsInRyaWFsIjpmYWxzZSwiYWlBbGxvd2VkIjp0cnVlfQ==-giMzZfCCESsBnJddcEgB017IbEg9bfmvITIA+KzajF26fvSBLHtN5qGuPNtAFuB1hPoRvAb4Xqj8rSrIfD0sDxF2ZwS4rkTsqbVRFz70y5+j1yFg7L2Z0g6pw5RNt2fkaYJ2s2T6522tWGcNKEQYDEOaH4JftAB3b66ht7kymV+fdNsD3ffa0TZUke+GfK0wcrJxUtePCUHQV3DsbKxLPERLLoGp19si57cDrZNZwMEUPDphDW5nesd0SAWgYEQSx2CN/0CJOZE9wCvyHETmpBShyOt5Lgq02Ve9jIfn/ARTFEeFXtbVrYSbTOARabhJ9duWKs+v2CiwcuEKLV9mrg==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【PyCharm 2024.2.x】 +GAJWL09BT5RSXDR-eyJsaWNlbnNlSWQiOiJHQUpXTDA5QlQ1UlNYRFIiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQQyIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wLTQ2MTc4NjQwOSIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJ0cmlhbCI6ZmFsc2UsImFpQWxsb3dlZCI6dHJ1ZX0=-UeOCCiS72PGvOIS9go0yIhDFVmPBvbKM56D9w0adVaGcYLtC7YxNr/5MQ/3+Mr05tQQAhMz12vBTb9sjJAXBo+HBzCv1o9IFZnJK2rf3pCXl83ulriBUQ6M0H6GUUy+Mc1fl0EGWquoNExZMujCkReWoeabxwwKPNCvHqHqkW1rU/+cwiVKjVfbIgQW9aChIwyYwexzSlM0TlHvQGfncEzI0+uYNxjRQUjemLlGJooYD0ycSMMTyTvM95QHi25DZjmQRkdzIhDA2l4uPp+C+XEAIdIST2rjEPolvJGcVu7P/DI77LDDqZwLtD8mFXh9lFqMEw9titvy4mYFlYp/xaw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【WebStorm 2024.2.x】 +1Z9RTLFFQRXP923-eyJsaWNlbnNlSWQiOiIxWjlSVExGRlFSWFA5MjMiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJXUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wNzY0Njg1NzM3IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsInRyaWFsIjpmYWxzZSwiYWlBbGxvd2VkIjp0cnVlfQ==-bDIQ6Ihy8nWMd6+TEQxRYY2FDAO5yhA1knCEpdqRbstNWI78rmC/WTYm8PFmDK2QEEE7uawIblm6c2FAXLrLzkA7R+V3G+q/xZyYPGftNp4n7mW+VT35+t131R5UvTIoQNzf3dCJDFBD2fiJwDNgUzdwEKEjagjNLlSk5HQam3wZh8+x8aao2yEzgoBHgGrs+8Y8BHKecS9eZImboDJ+e8cT+JI92nNCx1IhPgVJDieNKlbYbCxJ9HgvHFUMSrkh0MPORn9IxmKLt6ssMU2kEMWR4HqcQjUgGRzt8cWJh0nihrqBlDFZwfKQj25oK07vAu22ysN4CkcNRyMcJBBP9A==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【Rider 2024.2.x】 +0H5PC974JDMA7B0-eyJsaWNlbnNlSWQiOiIwSDVQQzk3NEpETUE3QjAiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlJEIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUERCIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMjIwMjQwNzAyUFNBWDAwMDAwNVgiLCJoYXNoIjoiMTIzNDU2NzgvMC0xODc3MTIwNzU2IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsInRyaWFsIjpmYWxzZSwiYWlBbGxvd2VkIjp0cnVlfQ==-YTG7LSYI79iFNfKNuHw85uQexHaQ1PMFTv5aBVxkrf2xcHmtX/oJZG9sE2bi32OVyMCnPfTV+SFkArsEw0jKNfGcCmjHIT3HctA+epp3POhEk2rN9DdmMnq0bEHXBJwAtsq47QqJLsBQVFKm4+JzjLXIdQTzQpJY9CIv1lAAWfCsw+hTEDduA8FRgnAhr7YMuJ7GNmZDWsgBiXY9zAHsJRLH2asLazoFJ5myio9k79Ga2leRzXVfm482DzhMJrPAxDlCPoN7me6lSYkVmVy5A2YjW4Zitl1HIQQoyu+Hd7WXcXgZsoFfrvx3Xghe9qw7JZaHzynldocUoW/H2rAzOQ==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【CLion 2024.2.x】 +I1EKS18DJA9M4KU-eyJsaWNlbnNlSWQiOiJJMUVLUzE4REpBOU00S1UiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wMzMxNTgxNTM4IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsInRyaWFsIjpmYWxzZSwiYWlBbGxvd2VkIjp0cnVlfQ==-aBxu18kI8ObI+2malKBqZXqpCPT2T7+0adYDU0HBQMeY1J+M/lDGpdQjpDnlDWW3W7wb4QbES3TXl8kKRrVG8LgtwVg9DhtNSWcolfL0R5x73smRjZQB5Jfv4fwBtBu+I4fTrkP9HAwciOIKO3iyI8wsH8HVGR9AXgpl/wTLCSlj8/7IBAFz6wN8mgSdxV6ReEGSjQSDSevdQUbsFkq3LVYG9EXVvleltbdFq7wqVCmvmcnW1idgfDKzJrwlxtJRiLZoZIoEFJ/PXcivuKTJyiqKlDfOuaPt6wZU+aqw/xB5dBS51rzD8UwoLcnN5zlG5WwQPWZja1/UwTokUxR8Gw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【DataGrip 2024.2.x】 +54H0PAD972IO7OS-eyJsaWNlbnNlSWQiOiI1NEgwUEFEOTcySU83T1MiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMjIwMjQwNzAyUFNBWDAwMDAwNVgiLCJoYXNoIjoiMTIzNDU2NzgvMC00MTI3ODYxMTYiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwidHJpYWwiOmZhbHNlLCJhaUFsbG93ZWQiOnRydWV9-kOcI3r7/OB1foH2R44HwHoAZJfdfTo0y7c1AZF/I9SBxiyNErjzyyFslUgkOD7XqHzhBgy53J2edgvSVy0DhmNswVK8V5YSXO+SLQc0RrQkZy43fb1fbLK26+LHj8gUUkFZuUwlDaXIb3D6SWyWx6tXAFet0ot6O7+lwZ/vGrRDXVdpaL/LBuCVt1pz2a77orzxWKbtgLNmVLVRGi7sFpUgv5syvGDgWG0gClSZHiAyEDzvoGdAJ3e8Y4LDBInHxrGwZYx7uY50lRBewjLvitbfzFm9dVz5bM9+3g+jSlXzKF5aZ9x2TyeGiOy9snk0QpnyGkudLECvI5vM8drRIIw==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【RubyMine 2024.2.x】 +3PZMNOLHULXID52-eyJsaWNlbnNlSWQiOiIzUFpNTk9MSFVMWElENTIiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI2LTA5LTE0IiwicGFpZFVwVG8iOiIyMDI2LTA5LTE0IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlJNIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjpmYWxzZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wODg1OTA3NTUiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwidHJpYWwiOmZhbHNlLCJhaUFsbG93ZWQiOnRydWV9-Gw4PbXUwvDcHyuCc3xGpt3BRpRRCxGCmOS4rQIJ/N0Aj0aHsf56ne8oMF593cz4KnDAgeacqGSi9+BrIXTEW52BOiogh5xukZSxHhd8FoKmuaBBYsM3ydaZPWhYL1rp65c0AZ5niIULRbb1hReiz1khjdkiGJqs9VHaR6/rF7HGmU1oagPhCw1u8+3nQM1oMiwl/2lxefZGAAk+/+7kRM/uZjg7TsF6a7UCvjYCAoCLxso58r45WWCIVU7Ofec2rFAIFjwflojDv3HjUdjw7ehSS529fJ4c7wqf6Z2o9o+G//po4eco5Sd5xw3dhocj6XX1Q7phz0VeL97UjwLQ8VQ==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD + +【GoLand 2024.2.x】 +BPTY4JK1CO0P29R-eyJsaWNlbnNlSWQiOiJCUFRZNEpLMUNPMFAyOVIiLCJsaWNlbnNlZU5hbWUiOiJtZW5vcmFoIHBhcmFwZXQiLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNi0wOS0xNCIsInBhaWRVcFRvIjoiMjAyNi0wOS0xNCIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjYtMDktMTQiLCJwYWlkVXBUbyI6IjIwMjYtMDktMTQiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAyMjAyNDA3MDJQU0FYMDAwMDA1WCIsImhhc2giOiIxMjM0NTY3OC8wLTIxMzg4MjAwMjAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwidHJpYWwiOmZhbHNlLCJhaUFsbG93ZWQiOnRydWV9-OhYvoISC/Bq2JPS8zO7RMvG6+V3z3Cw2tIhUfU0rpcWF5H8LimtMCO4Vdw69OYo3VfeBJkoDm0Lu4fwPOllxlx5gbpwerW2pJCubD/TnfDlxK+gt9rUSihL2mCU4k66VB+8NOLdYSH7zukG8ghtbNoeE4BuAiFP6BLTSEipOy2SKKybEzQ1JArnqJyXa66SrxTegCkz8QSwqaBAtJHaBIJ+1MmnQ8y5wjBXXQJ/+9W8AyaxKM14dKvqYxxcf71PDfgzl12taubbpyL4DzGYUiu5cAdjfpqdx2ZEoalj+IW3M3FWB+2eTzHZ+wvgFMqPt1+GiaC2kZwFbeyD9bDF62Q==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD diff --git a/jetbra/.DS_Store b/jetbra/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..228be86d0ee75a3fe120e5cbd3b69bf1e9295066 GIT binary patch literal 6148 zcmeHK%}yIJ5dPdof;N|wQ>$L~0SF-x53r54J)!mx!8uI=geV)Yk`1D_J@(iO@4^%C z5S6<_zb+Z49K_J!WbG0oZ|8KJHisbX<1-3KkE+0I!^51zy94MCe~3j zn(GmLW%J0ce%yT9EN=3wxMccxj3K+iCnT6-%{|Gmc-Wb0nN4mtiz;wy-+eLMHs~+b zId)Ho%=7yv{I;;-%q__-;eK0~rCo6;c+`x$(Y#Lm5w#G^!SAV{;)OW2@#`%W3D@yp_ug*>k*? zeFl66@)>w>V Date: Wed, 7 May 2025 15:02:01 +0800 Subject: [PATCH 66/80] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dubuntu22=20chrome?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=B8=AD=E6=96=87=E8=BE=93=E5=85=A5=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index c55885f..79f564d 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.3 #" +echo "# V 3.2.4 #" echo "#######################################################################" echo "" @@ -210,11 +210,17 @@ install_netease_music() { # Function to install Google Chrome install_chrome() { + CHROME_VERSION="134.0.6998.117" + DEB_URL="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}-1_amd64.deb" + #sudo apt remove google-chrome-stable + #sudo apt purge google-chrome-stable echo -e "\033[46;37mInstall Google Chrome \033[0m" wget -q -O - http://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' sudo apt-get update - sudo apt-get -y install google-chrome-stable + wget ${DEB_URL} -O chrome.deb + sudo apt-mark hold google-chrome-stable + sudo dpkg -i chrome.deb sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook -y sleep 3 echo -e "\033[46;37m Google Chrome 安装完成。 \033[0m" From 20fa72926814dd5cb8de25afd92d315af23d6175 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 May 2025 15:46:41 +0800 Subject: [PATCH 67/80] =?UTF-8?q?=E5=A2=9E=E5=8A=A0docker=E9=95=9C?= =?UTF-8?q?=E5=83=8F=EF=BC=8C=E9=81=BF=E5=85=8D=E4=B8=8B=E8=BD=BD=E8=BF=87?= =?UTF-8?q?=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 79f564d..0f261c3 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.4 #" +echo "# V 3.2.5 #" echo "#######################################################################" echo "" @@ -94,7 +94,11 @@ install_docker() { sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { - "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com"] + "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com", + "https://docker.m.daocloud.io", + "https://noohub.ru", + "https://huecker.io", + "https://dockerhub.timeweb.cloud"] } EOF From 75c267b28dbab4c235e68d7b9095afb3bfc1c5c6 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Wed, 7 May 2025 16:45:32 +0800 Subject: [PATCH 68/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0Cursor=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=A1=8C=E9=9D=A2=E5=9B=BE=E6=A0=87=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 7 deletions(-) diff --git a/setup.sh b/setup.sh index 0f261c3..9ab2310 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.5 #" +echo "# V 3.2.3 #" echo "#######################################################################" echo "" @@ -94,11 +94,7 @@ install_docker() { sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { - "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com", - "https://docker.m.daocloud.io", - "https://noohub.ru", - "https://huecker.io", - "https://dockerhub.timeweb.cloud"] + "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com"] } EOF @@ -592,6 +588,61 @@ sudo apt-get install systemback echo -e "\033[46;37m 使用教程请参考:https://blog.csdn.net/FourthBro/article/details/131020408 \033[0m" } +install_cursor() { + APPIMAGE_PATH="/opt/cursor.AppImage" + + # 检查 Cursor AppImage 是否已安装 + if [ ! -f $APPIMAGE_PATH ]; then + # 提示用户手动下载 Cursor AppImage + echo -e "\033[46;37m请访问 $CURSOR_URL 下载 Cursor AppImage,并将其保存为 $APPIMAGE_PATH \033[0m" + echo -e "\033[46;37m下载完成后,请确保文件可执行: \033[0m" + echo -e "\033[46;37msudo mv Cursor-xxxx-x86_64.AppImage /opt/cursor.AppImage \033[0m" + echo -e "\033[46;37msudo chmod +x $APPIMAGE_PATH \033[0m" + echo -e "\033[46;37m然后再次运行此脚本以完成安装。 \033[0m" + return + fi + + echo -e "\033[46;37m正在安装 Cursor AI IDE... \033[0m" + sudo apt-get install -y fuse libfuse2 + # Cursor AppImage 和图标的下载链接 + CURSOR_URL="https://www.cursor.com/cn/downloads" # 更新为正确的下载页面 + ICON_URL="https://www.cursor.com/apple-touch-icon.png" + + # 安装路径 + ICON_PATH="/opt/cursor.png" + DESKTOP_ENTRY_PATH="/usr/share/applications/cursor.desktop" + + # 检查 curl 是否已安装 + if ! command -v curl &> /dev/null; then + echo -e "\033[46;37mcurl 未安装,正在安装... \033[0m" + sudo apt-get update + sudo apt-get install -y curl + fi + + # 下载 Cursor 图标 + echo -e "\033[46;37m正在下载 Cursor 图标... \033[0m" + sudo wget sudo wget $ICON_URL -O $ICON_PATH + + # 检查 AppImage 文件是否存在,如果存在则创建桌面入口 + if [ -f $APPIMAGE_PATH ]; then + echo -e "\033[46;37m正在创建 Cursor 的 .desktop 入口... \033[0m" + sudo bash -c "cat > $DESKTOP_ENTRY_PATH" < Date: Wed, 7 May 2025 16:56:05 +0800 Subject: [PATCH 69/80] =?UTF-8?q?=E6=9B=B4=E6=96=B0docker=20=E9=95=9C?= =?UTF-8?q?=E5=83=8F=EF=BC=8C=E6=94=AF=E6=8C=81docker=20composed=E5=AE=89?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 9ab2310..07b3828 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.2.3 #" +echo "# V 3.3.1 #" echo "#######################################################################" echo "" @@ -94,7 +94,20 @@ install_docker() { sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { - "registry-mirrors": ["https://nol6uuul.mirror.aliyuncs.com"] + "registry-mirrors": [ + "https://do.nark.eu.org", + "https://dc.j8.work", + "https://docker.m.daocloud.io", + "https://dockerproxy.com", + "https://docker.mirrors.ustc.edu.cn", + "https://docker.nju.edu.cn" + ], + "runtimes": { + "nvidia": { + "args": [], + "path": "nvidia-container-runtime" + } + } } EOF From febb22f51f0a6a4482bb5f73cf2ec0ff53befcfb Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Jun 2025 16:48:54 +0800 Subject: [PATCH 70/80] Update setup.sh --- setup.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 9 deletions(-) diff --git a/setup.sh b/setup.sh index 07b3828..788b678 100755 --- a/setup.sh +++ b/setup.sh @@ -31,7 +31,7 @@ install_all() { install_sublime install_flameshot install_typora - install_netease_music + # install_netease_music install_chrome install_meld install_kazam @@ -211,14 +211,50 @@ install_typora() { # Function to install Netease Cloud Music install_netease_music() { echo -e "\033[46;37mInstall Netease Cloud Music \033[0m" - wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb - echo -e "Install netease-cloud-music,Please wait...\c" - sleep 3 - sudo dpkg -i netease-cloud-music* - sudo apt-get -yf install -y - sudo dpkg -i netease-cloud-music* + + # Check if the packaging script exists + SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" + NETEASE_SCRIPT="$SCRIPT_DIR/netease-cloud-music_deb.sh" + + if [ -f "$NETEASE_SCRIPT" ]; then + echo "使用自定义打包方式安装网易云音乐..." + # Make the script executable + chmod +x "$NETEASE_SCRIPT" + + # Run the packaging script to create a custom package + bash "$NETEASE_SCRIPT" + + # Get the package name + NETEASE_DEB="$SCRIPT_DIR/custom_netease-cloud-music.deb" + + # Check if the package was created successfully + if [ -f "$NETEASE_DEB" ]; then + echo "自定义网易云音乐包创建成功,开始安装..." + sudo dpkg -i "$NETEASE_DEB" + sudo apt-get -f install -y + echo -e "\033[46;37m Netease Cloud Music 安装完成。 \033[0m" + else + echo -e "\033[41;37m自定义网易云音乐包创建失败,尝试使用官方包...\033[0m" + # Fallback to direct download + wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb + sudo dpkg -i netease-cloud-music*.deb + sudo apt-get -f install -y + rm -f netease-cloud-music*.deb + fi + else + echo -e "\033[41;37m找不到打包脚本,使用官方包安装...\033[0m" + # Direct download if script doesn't exist + wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb + echo -e "Install netease-cloud-music,Please wait...\c" + sudo dpkg -i netease-cloud-music* + sudo apt-get -yf install -y + sudo dpkg -i netease-cloud-music* + sleep 3 + rm -f netease-cloud-music*.deb + fi + sleep 3 - echo -e "\033[46;37m Netease Cloud Music 安装完成。 \033[0m" + echo -e "\033[46;37m网易云音乐安装完成。\033[0m" } # Function to install Google Chrome @@ -654,6 +690,16 @@ EOL fi } +# Function to install ROS +install_ros() { + echo -e "\033[46;37mInstalling ROS via FishROS script\033[0m" + wget http://fishros.com/install -O fishros + chmod +x fishros + . ./fishros + rm fishros + echo -e "\033[46;37mROS installation completed. Please check the above output for any issues.\033[0m" +} + echo -e "\033[34m 这里是主程序,具体是---------- @@ -682,7 +728,8 @@ echo -e "\033[34m 这里是主程序,具体是---------- 23: 安装Drawio 24: 安装Pycharm(Python编辑器,默认不安装) 25: 安装Kdenlive(视频剪辑,默认不安装) -26: 安装 Cursor可视化图标(VsCode进阶版,无法通过直接安装,需要手动下载,然后运行该脚本,默认不安装)\033[0m" +26: 安装 Cursor可视化图标(VsCode进阶版,无法通过直接安装,需要手动下载,然后运行该脚本,默认不安装) +27: 安装 ROS (机器人操作系统)\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" @@ -797,6 +844,10 @@ else 26) install_cursor ;; + 27) + update_system + install_ros + ;; *) echo "Unknown option: $arg" install_all From 2117e6c4ea9ff92ffeec46a57f421862fa4299ba Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Jun 2025 16:49:29 +0800 Subject: [PATCH 71/80] Create netease-cloud-music_deb.sh --- netease-cloud-music_deb.sh | 125 +++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 netease-cloud-music_deb.sh diff --git a/netease-cloud-music_deb.sh b/netease-cloud-music_deb.sh new file mode 100644 index 0000000..d05f462 --- /dev/null +++ b/netease-cloud-music_deb.sh @@ -0,0 +1,125 @@ +#!/bin/bash +set -e +HERE=$(realpath $(dirname $0)) +TMP=$(mktemp -d) +NEW_PKG="custom_netease-cloud-music" +USAGE_LIBS=( + libdouble-conversion.so.1 + libgconf-2.so.4 + libicudata.so.60 + libicui18n.so.60 + libicuuc.so.60 + libqcef.so + libqcef.so.1 + libqcef.so.1.1.4 + libQt5Core.so.5 + libQt5DBus.so.5 + libQt5EglFSDeviceIntegration.so.5 + libQt5Gui.so.5 + libQt5Network.so.5 + libQt5Qml.so.5 + libQt5Svg.so.5 + libQt5WebChannel.so.5 + libQt5Widgets.so.5 + libQt5X11Extras.so.5 + libQt5XcbQpa.so.5 + libQt5Xml.so.5 + libssl.so.1.1 + libcrypto.so.1.1 + qcef + ) + +cd "$TMP" +sudo sed -i 's/#[ \t]*deb-src/deb-src/g' /etc/apt/sources.list +sudo apt update +#报错请参考:https://blog.csdn.net/weixin_38634889/article/details/97941817 +apt source vlc +sudo apt install libmpg123-dev libflac-dev libmpeg2-4-dev libgnutls28-dev libsoxr-dev libsamplerate0-dev libasound2-dev automake build-essential libssl-dev +cd vlc-3* +cat > ncm.patch <= 300) + return NULL; + ++ if(res->path){ ++ char *suffix = "\0"; ++ for(int i = (int) (strlen(res->path) - 1); i >= 0; --i){ ++ if(res->path[i] == '.'){ ++ suffix = res->path + i + 1; ++ break; ++ } ++ } ++ if(strcmp(suffix, "flac") == 0) ++ return strdup("audio/flac"); ++ } ++ + const char *type = vlc_http_msg_get_header(res->response, "Content-Type"); + return (type != NULL) ? strdup(type) : NULL; + } +EOF + +patch -p1 /dev/null || true +done + +# Add OpenSSL libraries if they don't exist in the original package +if [ ! -f libssl.so.1.1 ] || [ ! -f libcrypto.so.1.1 ]; then + cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 . + cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 . +fi + +mv "$TMP"/vlc-ins/usr/lib/* . +rm -rf ../bak pkgconfig +find . -name "*.la" | xargs rm -rf + +mkdir qcef/swiftshader/ && cd qcef/swiftshader/ +ln -s /usr/lib/x86_64-linux-gnu/libEGL.so.1 libEGL.so +ln -s /usr/lib/x86_64-linux-gnu/libGLESv2.so.2 libGLESv2.so + +cd "$TMP" +rm -rf "$NEW_PKG"/DEBIAN/{md5sums,shlibs} + +dpkg -b "$NEW_PKG" +mv "$NEW_PKG.deb" "$HERE"/ +rm -rf "$TMP" From a853afed68014ab8d1c8a3855f83540712fbf4de Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Fri, 6 Jun 2025 17:21:06 +0800 Subject: [PATCH 72/80] Update no misic netease --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 788b678..0ef1612 100755 --- a/setup.sh +++ b/setup.sh @@ -214,7 +214,7 @@ install_netease_music() { # Check if the packaging script exists SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" - NETEASE_SCRIPT="$SCRIPT_DIR/netease-cloud-music_deb.sh" + NETEASE_SCRIPT="$SCRIPT_DIR/netease-cloud-music_deb_none.sh" if [ -f "$NETEASE_SCRIPT" ]; then echo "使用自定义打包方式安装网易云音乐..." From cfcaecd5eeb55cfd78d413e15a3fced71e2c4957 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Sun, 8 Jun 2025 14:39:08 +0800 Subject: [PATCH 73/80] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=AE=89=E8=A3=85=E5=8C=85=EF=BC=8C=E8=80=8C=E6=98=AF?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8deb=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 0ef1612..8b1acd7 100755 --- a/setup.sh +++ b/setup.sh @@ -216,7 +216,7 @@ install_netease_music() { SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" NETEASE_SCRIPT="$SCRIPT_DIR/netease-cloud-music_deb_none.sh" - if [ -f "$NETEASE_SCRIPT" ]; then + if [ ! -f "$NETEASE_SCRIPT" ]; then echo "使用自定义打包方式安装网易云音乐..." # Make the script executable chmod +x "$NETEASE_SCRIPT" @@ -242,7 +242,7 @@ install_netease_music() { rm -f netease-cloud-music*.deb fi else - echo -e "\033[41;37m找不到打包脚本,使用官方包安装...\033[0m" + echo -e "\033[41;37m默认不使用打包脚本,使用官方包安装...\033[0m" # Direct download if script doesn't exist wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb echo -e "Install netease-cloud-music,Please wait...\c" From 113aa54fd97ba05b34032d181fc6c1ece0717d8d Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Mon, 9 Jun 2025 18:30:42 +0800 Subject: [PATCH 74/80] WRONG WORD --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 8b1acd7..383ab79 100755 --- a/setup.sh +++ b/setup.sh @@ -315,7 +315,7 @@ install_whitesur_theme() { sudo apt upgrade -y sudo apt install -y git gnome-tweaks gnome-shell-extensions git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git - cd WhiteSur-gtk-themea + cd WhiteSur-gtk-theme ./install.sh -t all -N glassy -s 220 # 运行安装脚本 sudo ./tweaks.sh -g # 添加主题 cd .. From 7b11362199b3515dbd4c6bf35726ff9b6ae1977e Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 10 Jun 2025 11:31:19 +0800 Subject: [PATCH 75/80] =?UTF-8?q?=E5=A4=A7=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0zsh=EF=BC=8CSticky=20Notes?= =?UTF-8?q?=20compizconfig=20Variety=20Neofetch=20retext=20mplayer=20prelo?= =?UTF-8?q?ad=20kchviewer=20lsb-core=20uget=20aria2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 290 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 192 insertions(+), 98 deletions(-) diff --git a/setup.sh b/setup.sh index 383ab79..b602cc3 100755 --- a/setup.sh +++ b/setup.sh @@ -3,13 +3,14 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 3.3.1 #" +echo "# V 4.0.0 #" echo "#######################################################################" echo "" echo "详细安装可以参考:https://dora-cmon.github.io/posts/bbf09ec7/" echo "额外改进安装可以参考:https://github.com/yxSakana/UbuntuAutoConfigure" echo "Ubuntu 其他比较好的脚本:https://github.com/alicfeng/note/blob/master/Linux/%E9%82%A3%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84Linux%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6%E6%B8%85%E5%8D%95.md" +echo "Ubuntu 分版本的安装脚本:https://github.com/MABIY/shell/blob/master/ubuntu_20.04_init_install_update.sh" # https://github.com/starFalll/Ubuntu_Init/blob/5f1ab6056b92e846a052efcb1dfdb5b7f9807d50/Linux_Init.sh#L2 Sources=$(lsb_release -rs) @@ -30,8 +31,8 @@ install_all() { install_vscode install_sublime install_flameshot - install_typora - # install_netease_music + install_retext + install_mplayer_smplayer install_chrome install_meld install_kazam @@ -45,11 +46,13 @@ install_all() { echo -e "\033[46;37m检测到Ubuntu $UBUNTU_VERSION (>20.04),使用install_clash_nyanpasu函数\033[0m" install_clash_nyanpasu fi -# install_clash install_clion install_termius install_systemback - install_drawio + install_compizconfig + install_stickynotes + install_peek + echo -e "\033[46;37mAll installations 安装完成。\033[0m" } @@ -68,11 +71,20 @@ install_basic_tools() { sudo apt-get install vlc sudo apt-get install bleachbit -y sudo apt-get install git curl wget gdebi vim unzip -y - sudo apt-get install tree htop rar ssh sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y + sudo apt-get install tree htop net-tools uget aria2 rar ssh tmux sshpass okular wmctrl gnome-tweaks apt-transport-https compizconfig-settings-manager compiz-plugins-extra meld -y + # LSB is keep distribution to keep the organizational structure of the Linux Foundation to standardize the software system structure + sudo apt-get install -y lsb-core || echo "--------------lsb-core install error" sudo add-apt-repository ppa:kelebek333/mint-tools -y sudo apt update -y && sudo apt-get purge sticky + # 使用kchmviewer来避免中文乱码 + sudo apt-get install kchmviewer -y + # 使用preload来加速应用程序的启动 + sudo apt-get install preload -y + # 安装ttf-wqy-microhei作为中文字体 + sudo apt-get install ttf-wqy-microhei -y + sudo apt-get install fish #fish 自动补全工具,不需要zsh了。这里还可以通过fish_config完成环境配置 - echo 'exec fish' >> ~/.bashrc + echo '# exec fish' >> ~/.bashrc sudo apt install baobab # disk usage analyzer sleep 3 echo -e "\033[46;37minstall basic tools 安装完成。 \033[0m" @@ -189,72 +201,28 @@ install_sublime() { echo -e "\033[46;37minstall sublime text 安装完成。 \033[0m" } -# Function to install Flameshot +# Function to install Flameshot, 参考:https://blog.csdn.net/qq_62737390/article/details/148225833 install_flameshot() { echo -e "\033[46;37minstall flameshot \033[0m" sudo apt-get install flameshot -y sleep 3 - echo -e "\033[46;37minstall flameshot 安装完成。 \033[0m" + echo -e "\033[46;37minstall flameshot 安装完成。设置快捷键在设置->键盘->键盘快捷键->查看及自定义快捷键->自定义快捷键 \033[0m" } -# Function to install Typora -install_typora() { - echo -e "\033[46;37minstall markdown editor Typora \033[0m" - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE - sudo add-apt-repository -y 'deb http://typora.io linux/' - sudo apt-get update - sudo apt-get install -y typora +# Function to install retext (安装 ReText) +install_retext() { + echo -e "\033[46;37m安装 markdown 编辑器 ReText \033[0m" + sudo apt install -y retext sleep 3 - echo -e "\033[46;37minstall markdown editor Typora 安装完成。 \033[0m" + echo -e "\033[46;37mReText 安装完成。 \033[0m" } -# Function to install Netease Cloud Music -install_netease_music() { - echo -e "\033[46;37mInstall Netease Cloud Music \033[0m" - - # Check if the packaging script exists - SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" - NETEASE_SCRIPT="$SCRIPT_DIR/netease-cloud-music_deb_none.sh" - - if [ ! -f "$NETEASE_SCRIPT" ]; then - echo "使用自定义打包方式安装网易云音乐..." - # Make the script executable - chmod +x "$NETEASE_SCRIPT" - - # Run the packaging script to create a custom package - bash "$NETEASE_SCRIPT" - - # Get the package name - NETEASE_DEB="$SCRIPT_DIR/custom_netease-cloud-music.deb" - - # Check if the package was created successfully - if [ -f "$NETEASE_DEB" ]; then - echo "自定义网易云音乐包创建成功,开始安装..." - sudo dpkg -i "$NETEASE_DEB" - sudo apt-get -f install -y - echo -e "\033[46;37m Netease Cloud Music 安装完成。 \033[0m" - else - echo -e "\033[41;37m自定义网易云音乐包创建失败,尝试使用官方包...\033[0m" - # Fallback to direct download - wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb - sudo dpkg -i netease-cloud-music*.deb - sudo apt-get -f install -y - rm -f netease-cloud-music*.deb - fi - else - echo -e "\033[41;37m默认不使用打包脚本,使用官方包安装...\033[0m" - # Direct download if script doesn't exist - wget -q http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb - echo -e "Install netease-cloud-music,Please wait...\c" - sudo dpkg -i netease-cloud-music* - sudo apt-get -yf install -y - sudo dpkg -i netease-cloud-music* - sleep 3 - rm -f netease-cloud-music*.deb - fi - - sleep 3 - echo -e "\033[46;37m网易云音乐安装完成。\033[0m" +# Function to install mplayer and smplayer (replaces Netease Cloud Music) +install_mplayer_smplayer() { + echo -e "\033[46;37mInstall mplayer and smplayer \033[0m" + sudo apt install -y mplayer + sudo apt install -y smplayer + echo -e "\033[46;37mmplayer 和 smplayer 安装完成。\033[0m" } # Function to install Google Chrome @@ -270,9 +238,12 @@ install_chrome() { wget ${DEB_URL} -O chrome.deb sudo apt-mark hold google-chrome-stable sudo dpkg -i chrome.deb + sudo apt-get purge firefox firefox-locale* unity-scope-firefoxbook -y sleep 3 - echo -e "\033[46;37m Google Chrome 安装完成。 \033[0m" + echo -e "\033[46;37m Google Chrome 安装完成。如果无法打开则需要参考两个操作 \033[0m" + echo -e "\033[46;37m 1. 彻底卸载谷歌浏览器,尝试是否因为安装最新的chrome导致的缓存,无法降级。 参考链接:https://blog.csdn.net/Gochan_Tao/article/details/142451263 \033[0m" + echo -e "\033[46;37m 2. 如果无法打开,则需要输入google-chrome,然后看问题,这种情况一般就是chromedriver版本不对,则需要驱动安装。 参考链接:https://blog.csdn.net/weixin_44523262/article/details/137971666 \033[0m" } # Function to install Meld @@ -485,7 +456,26 @@ EOF echo -e "\033[46;37mClash Nyanpasu 安装和配置完成。\033[0m" } +install_compizconfig(){ + echo -e "\033[46;37minstall compizconfig \033[0m" + sudo apt-get install compizconfig-settings-manager + sudo apt-get install compiz-plugins compiz-plugins-extra + echo -e "\033[46;37mCompizConfig 安装完成。 \033[0m" +} +install_stickynotes() { + echo -e "\033[46;37minstall stickynotes \033[0m" + sudo add-apt-repository ppa:umang/indicator-stickynotes -y + sudo apt-get install -y indicator-stickynotes + echo -e "\033[46;37mSticky Notes 安装完成。 \033[0m" +} + +install_peek() { + echo -e "\033[46;37minstall Peek (动图截图工具) \033[0m" + sudo add-apt-repository ppa:peek-developers/stable -y + sudo apt install -y peek + echo -e "\033[46;37mPeek 安装完成。\033[0m" +} install_clash_verge() { echo -e "\033[46;37mInstalling Clash Verge...\033[0m" @@ -698,38 +688,114 @@ install_ros() { . ./fishros rm fishros echo -e "\033[46;37mROS installation completed. Please check the above output for any issues.\033[0m" + # 写入为了在conda deactivate时不影响PATH。可以直接找到ros版本 + echo 'export PATH=$(echo $PATH | tr ":" "\n" | grep -v "miniconda" | paste -sd:)' >> ~/.bashrc } +# Function to install Neofetch +install_neofetch() { + echo -e "\033[46;37mInstall Neofetch \033[0m" + sudo add-apt-repository ppa:dawidd0811/neofetch -y + sudo apt-get install neofetch -y + sleep 2 + echo -e "\033[46;37mNeofetch 安装完成。 \033[0m" +} +# Function to install Tailscale (解决没有公网IP问题) +install_tailscale() { + sudo apt install openssh-server -y + sudo service ssh start + sudo systemctl enable ssh + sudo service ssh status + echo -e "\033[46;37m安装并配置 Tailscale (内网穿透):https://zhuanlan.zhihu.com/p/1912191578182756128\033[0m" + # 安装Tailscale + curl -fsSL https://tailscale.com/install.sh | sh + # 启动并获取认证链接 + sudo tailscale up + # 创建开机自启脚本 + cat > ~/tailscale-startup.sh << 'EOF' +#!/bin/bash +echo " 启动Tailscale..." +sudo tailscale up +echo "✅ Tailscale已启动" +echo " 设备IP: $(tailscale ip -4)" +EOF + chmod +x ~/tailscale-startup.sh + # 添加到bashrc + if ! grep -q 'tailscale-startup.sh' ~/.bashrc; then + echo '~/tailscale-startup.sh' >> ~/.bashrc + fi + # 设置 systemd 自启(如支持) + sudo systemctl enable tailscaled 2>/dev/null || true + echo -e "\033[46;37mTailscale 安装完成。请根据提示完成认证。\033[0m" + echo -e "\033[46;37m如需注册账号请访问:https://tailscale.com/\033[0m" + echo -e "\033[46;37m认证完成后,可通过 tailscale ip -4 查看分配的内网IP。\033[0m" +} + +install_zsh_ohmyzsh_aliases() { + echo -e "\033[46;37m安装 zsh start \033[0m" + sudo apt-get install -y zsh || echo -e "\033[46;------------zsh install error \033[0m" + echo -e "\033[46;37minstall oh my zsh \033[0m" + echo ji | sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + echo -e "\033[46;37minput custom alias export \033[0m" + sudo sh -c "cat >> /home/lh/.zshrc < Date: Tue, 10 Jun 2025 11:37:42 +0800 Subject: [PATCH 76/80] fix some note wrong --- README.md | 59 ++++++++++++++++++++++++++++++++----------------------- setup.sh | 2 +- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 227e0a8..0cab126 100644 --- a/README.md +++ b/README.md @@ -61,31 +61,40 @@ 以下是脚本中可选的安装功能及其对应的数字编号: -1. **更新系统** -2. **安装基础工具** -3. **安装 Docker** -4. **安装 Terminator 终端** -5. **安装搜狗输入法** -6. **安装系统监视工具** -7. **安装 GIMP 图像编辑器** -8. **安装 VS Code 编辑器** -9. **安装 Sublime Text 编辑器** -10. **安装 Flameshot 截图工具** -11. **安装 Typora Markdown 编辑器** -12. **安装网易云音乐** -13. **安装 Google Chrome 浏览器** -14. **安装 Meld 比较工具** -15. **安装 Kazam 屏幕录制工具** -16. **安装 Figlet生成大尺寸字母图形** -17. **安装 WhiteSur 主题** -18. **安装 Clash** -19. **安装 CLion** -20. **安装 Miniconda** -21. **安装 Turmius** -22. **安装 systemback系统回退模块** -23. **安装drawio绘图软件** -24. **安装pycharm(默认不装)** -25. **安装kdenlive视频剪辑软件(默认不装)** +1. **系统更新** +2. **基础工具(如 git、vim、curl、tree、htop、fish、字体等)** +3. **Docker** +4. **Terminator 终端** +5. **搜狗输入法** +6. **系统监视器** +7. **GIMP 图像处理** +8. **VS Code** +9. **Sublime Text** +10. **Flameshot 截图** +11. **Retext Markdown 编辑器** +12. **mplayer/smplayer 视频播放器** +13. **Chrome 浏览器** +14. **Meld 文件比较** +15. **Kazam 屏幕录像** +16. **Figlet 命令行艺术字体** +17. **WhiteSur 主题美化** +18. **Clash/Clash Nyanpasu 代理工具** +19. **CLion C/C++ IDE** +20. **Miniconda** +21. **Termius SSH 客户端** +22. **systemback 系统备份** +23. **CompizConfig 窗口增强** +24. **Sticky Notes 便签** +25. **Peek 动图截图** +26. **Drawio 流程图编辑器** +27. **PyCharm Python IDE** +28. **Kdenlive 视频剪辑** +29. **Cursor AI IDE(需手动下载 AppImage 后运行本脚本)** +30. **ROS 机器人操作系统(FishROS 脚本)** +31. **Neofetch 系统信息展示** +32. **Tailscale 内网穿透** +33. **zsh + oh-my-zsh + 常用 alias** +34. **Variety 动态壁纸** ### 示例 diff --git a/setup.sh b/setup.sh index b602cc3..feeefc3 100755 --- a/setup.sh +++ b/setup.sh @@ -772,7 +772,7 @@ echo -e "\033[34m 这里是主程序,具体是---------- 8: 安装VS Code(代码编辑器,默认安装) 9: 安装Sublime Text(代码编辑器,默认安装) 10: 安装Flameshot(截图工具,默认安装) -11: 安装Typora(Markdown编辑器,默认安装) +11: 安装ReText(Markdown编辑器,默认安装) 12: 安装mplayer和smplayer(默认安装,视频播放器) 13: 安装Chrome(谷歌浏览器,默认安装) 14: 安装Meld(文件比较工具,默认安装) From a966db63ea1558a6f6f586866a0d43d059c5d061 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 10 Jun 2025 11:51:41 +0800 Subject: [PATCH 77/80] cuda script added --- nvidia_cuda11.8_install.sh | 76 ++++++++++++++++++++++++++++++++++ nvidia_cuda12.2_install.sh | 84 ++++++++++++++++++++++++++++++++++++++ setup.sh | 33 ++++++++++++++- 3 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 nvidia_cuda11.8_install.sh create mode 100644 nvidia_cuda12.2_install.sh diff --git a/nvidia_cuda11.8_install.sh b/nvidia_cuda11.8_install.sh new file mode 100644 index 0000000..1cc8e94 --- /dev/null +++ b/nvidia_cuda11.8_install.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +### steps #### +# verify the system has a cuda-capable gpu +# download and install the nvidia cuda toolkit and cudnn +# setup environmental variables +# verify the installation +### + +### to verify your gpu is cuda enable check +lspci | grep -i nvidia + +### If you have previous installation remove it first. +sudo apt purge nvidia* -y +sudo apt remove nvidia-* -y +sudo rm /etc/apt/sources.list.d/cuda* +sudo apt autoremove -y && sudo apt autoclean -y +sudo rm -rf /usr/local/cuda* + +# system update +sudo apt update && sudo apt upgrade -y + +# install other import packages +sudo apt install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev + +# first get the PPA repository driver +sudo add-apt-repository ppa:graphics-drivers/ppa +sudo apt update + +# find recommended driver versions for you +ubuntu-drivers devices + +# install nvidia driver with dependencies +sudo apt install libnvidia-common-515 libnvidia-gl-515 nvidia-driver-515 -y + +# reboot +sudo reboot now + +# verify that the following command works +nvidia-smi + +sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin +sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 +sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub +sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" + +# Update and upgrade +sudo apt update && sudo apt upgrade -y + + # installing CUDA-11.8 +sudo apt install cuda-11-8 -y + +# setup your paths +echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc +echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc +source ~/.bashrc +sudo ldconfig + +# install cuDNN v11.8 +# First register here: https://developer.nvidia.com/developer-program/signup + +CUDNN_TAR_FILE="cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz" +sudo wget https://developer.download.nvidia.com/compute/redist/cudnn/v8.7.0/local_installers/11.8/cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz +sudo tar -xvf ${CUDNN_TAR_FILE} +sudo mv cudnn-linux-x86_64-8.7.0.84_cuda11-archive cuda + +# copy the following files into the cuda toolkit directory. +sudo cp -P cuda/include/cudnn*.h /usr/local/cuda-11.8/include +sudo cp -P cuda/lib/libcudnn* /usr/local/cuda-11.8/lib64/ +sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn* + +# Finally, to verify the installation, check +nvidia-smi +nvcc -V + +cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 diff --git a/nvidia_cuda12.2_install.sh b/nvidia_cuda12.2_install.sh new file mode 100644 index 0000000..19e5ca9 --- /dev/null +++ b/nvidia_cuda12.2_install.sh @@ -0,0 +1,84 @@ +# 1. 移除旧驱动和 CUDA +sudo apt-get purge nvidia* +sudo apt remove nvidia-* +sudo rm /etc/apt/sources.list.d/cuda* +sudo apt-get autoremove && sudo apt-get autoclean +sudo rm -rf /usr/local/cuda* + +# 2. 检查显卡 +lspci | grep -i nvidia + +# 3. 系统更新 +sudo apt-get update +sudo apt-get upgrade + +# 4. 安装依赖 +sudo apt-get install gcc g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev + +# 5. 添加驱动源并安装驱动(以535为例,建议根据实际情况选择最新驱动) +sudo add-apt-repository ppa:graphics-drivers/ppa +sudo apt update +sudo apt install nvidia-driver-535 + +# 6. 下载并安装 CUDA 12.2 Toolkit +mkdir ~/cuda_package +cd ~/cuda_package +wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run +sudo sh cuda_12.2.0_535.54.03_linux.run + +# 7. 配置环境变量 +echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc +echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc +echo 'export LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LIBRARY_PATH' >> ~/.bashrc +source ~/.bashrc +sudo ldconfig + + +# Install cuDNN new +# 参考链接:https://developer.nvidia.com/rdp/cudnn-archive +sudo apt-get install libfreeimage3 libfreeimage-dev +wget https://developer.download.nvidia.com/compute/cudnn/9.2.1/local_installers/cudnn-local-repo-ubuntu2004-9.2.1_1.0-1_amd64.deb +sudo dpkg -i cudnn-local-repo-ubuntu2004-9.2.1_1.0-1_amd64.deb +sudo cp /var/cudnn-local-repo-ubuntu2004-9.2.1/cudnn-*-keyring.gpg /usr/share/keyrings/ +sudo apt-get update +sudo apt-get -y install cudnn-cuda-11 +cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 + + +# Finally, you can verify you installation +# But you might need to reboot first to use the command. +#nvidia-smi显示的CUDA版本:这代表了你的NVIDIA驱动内置支持的CUDA版本。这是驱动程序级别的支持,主要影响的是GPU的识别和基础驱动层面的CUDA兼容性。 +#nvcc -V显示的CUDA Toolkit版本:这代表了安装在你的系统上的CUDA Toolkit的版本。CUDA Toolkit包括了开发和运行CUDA应用所需的编译器、库和工具。 +nvidia-smi +nvcc -V + +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ +conda config --set show_channel_urls yes +conda create -n pytorch python=3.9 +conda activate pytorch +pip3 install torch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 --index-url https://mirror.sjtu.edu.cn/pytorch-wheels/cu117 + + +#!/bin/bash + +# 创建一个临时Python脚本文件 +cat < verify_cuda.py +# 验证cuda安装 +import torch +print(torch.cuda.is_available()) # 返回True则说明已经安装了cuda +# 验证cuDNN安装 +from torch.backends import cudnn +print(cudnn.is_available()) # 返回True说明已经安装了cuDNN +import torch +print(torch.__version__) +print(torch.cuda.is_available()) +EOL + +# 运行Python脚本 +python3 verify_cuda.py + +# 删除临时Python脚本文件 +rm verify_cuda.py \ No newline at end of file diff --git a/setup.sh b/setup.sh index feeefc3..e3d461c 100755 --- a/setup.sh +++ b/setup.sh @@ -761,6 +761,29 @@ install_variety() { echo -e "\033[46;37mVariety 安装完成。\033[0m" } +install_cuda118() { + echo -e "\033[46;37m开始安装 CUDA 11.8 ...\033[0m" + SCRIPT_PATH="$(dirname "$0")/nvidia_cuda11.8_install.sh" + if [ -f "$SCRIPT_PATH" ]; then + bash "$SCRIPT_PATH" + echo -e "\033[46;37mCUDA 11.8 安装完成。\033[0m" + else + echo -e "\033[41;37m未找到 nvidia_cuda11.8_install.sh,请将其放在本脚本同目录下。\033[0m" + fi +} + +# 新增 CUDA 12.2 安装函数 +install_cuda122() { + echo -e "\033[46;37m开始安装 CUDA 12.2 ...\033[0m" + SCRIPT_PATH="$(dirname "$0")/nvidia_cuda12.2_install.sh" + if [ -f "$SCRIPT_PATH" ]; then + bash "$SCRIPT_PATH" + echo -e "\033[46;37mCUDA 12.2 安装完成。\033[0m" + else + echo -e "\033[41;37m未找到 nvidia_cuda12.2_install.sh,请将其放在本脚本同目录下。\033[0m" + fi +} + echo -e "\033[34m 这里是主程序,具体是---------- 1: 更新系统(默认安装) 2: 安装基础工具(默认安装) @@ -795,7 +818,9 @@ echo -e "\033[34m 这里是主程序,具体是---------- 31: 安装 Neofetch (!!!系统信息展示工具,默认不安装) 32: 安装 Tailscale (!!!内网穿透/远程访问,默认不安装) 33: 安装 zsh + oh-my-zsh + 常用 alias (可选) -34: 安装 Variety(动态壁纸工具,可选)\033[0m" +34: 安装 Variety(动态壁纸工具,可选) +35: 安装 CUDA 11.8 (可选,支持TensorRT8.7和cudnn 8.7) +36: 安装 CUDA 12.2 (可选)\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" @@ -942,6 +967,12 @@ else update_system install_variety ;; + 35) + install_cuda118 + ;; + 36) + install_cuda122 + ;; *) echo "Unknown option: $arg" install_all From 352df973840899f301d53b30270a7905dc039f28 Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 10 Jun 2025 15:22:05 +0800 Subject: [PATCH 78/80] fix pcl build bug --- nvidia_cuda11.8_install.sh | 1 + 1 file changed, 1 insertion(+) mode change 100644 => 100755 nvidia_cuda11.8_install.sh diff --git a/nvidia_cuda11.8_install.sh b/nvidia_cuda11.8_install.sh old mode 100644 new mode 100755 index 1cc8e94..5b9c6bc --- a/nvidia_cuda11.8_install.sh +++ b/nvidia_cuda11.8_install.sh @@ -53,6 +53,7 @@ sudo apt install cuda-11-8 -y # setup your paths echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc +echo 'export CPATH=/usr/local/cuda-11.8/targets/x86_64-linux/include:$CPATH' >> ~/.bashrc source ~/.bashrc sudo ldconfig From db492fcbabb427f4e457b2e34f3e27d80b7d03df Mon Sep 17 00:00:00 2001 From: lovelyyoshino Date: Tue, 10 Jun 2025 16:44:13 +0800 Subject: [PATCH 79/80] chrome driver added --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index e3d461c..2ef5d50 100755 --- a/setup.sh +++ b/setup.sh @@ -243,7 +243,7 @@ install_chrome() { sleep 3 echo -e "\033[46;37m Google Chrome 安装完成。如果无法打开则需要参考两个操作 \033[0m" echo -e "\033[46;37m 1. 彻底卸载谷歌浏览器,尝试是否因为安装最新的chrome导致的缓存,无法降级。 参考链接:https://blog.csdn.net/Gochan_Tao/article/details/142451263 \033[0m" - echo -e "\033[46;37m 2. 如果无法打开,则需要输入google-chrome,然后看问题,这种情况一般就是chromedriver版本不对,则需要驱动安装。 参考链接:https://blog.csdn.net/weixin_44523262/article/details/137971666 \033[0m" + echo -e "\033[46;37m 2. 如果无法打开,则需要输入google-chrome,然后看问题,这种情况一般就是chromedriver版本不对,则需要驱动安装。 参考链接:https://blog.csdn.net/weixin_44523262/article/details/137971666 下载路径为:https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.117/linux64/chromedriver-linux64.zip\033[0m" } # Function to install Meld From 106b0514a86401accb3895bdec1d8f3d3a999578 Mon Sep 17 00:00:00 2001 From: "mpl9725440@163.com" Date: Tue, 8 Jul 2025 09:11:38 +0800 Subject: [PATCH 80/80] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8E=8B=E5=8A=9B?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=A8=A1=E5=9D=97=E3=80=81btop=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 2ef5d50..dfa743d 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ echo "" echo "#######################################################################" echo "# Start to configurate! #" -echo "# V 4.0.0 #" +echo "# V 4.0.1 #" echo "#######################################################################" echo "" @@ -52,6 +52,8 @@ install_all() { install_compizconfig install_stickynotes install_peek + install_stress + install_btop echo -e "\033[46;37mAll installations 安装完成。\033[0m" } @@ -784,6 +786,49 @@ install_cuda122() { fi } +# Function to install stress (Linux压力测试工具) +install_stress() { + echo -e "\033[46;37minstall stress (Linux压力测试工具) \033[0m" + sudo apt-get install stress -y + # 同时安装 stress-ng (stress的扩展版本) + sudo apt-get install stress-ng -y + sleep 2 + echo -e "\033[46;37mstress 和 stress-ng 安装完成。\033[0m" + echo -e "\033[46;37m使用方法:\033[0m" + echo -e "\033[46;37m stress --cpu 4 --timeout 10s # CPU压力测试\033[0m" + echo -e "\033[46;37m stress --vm 2 --vm-bytes 1G --timeout 10s # 内存压力测试\033[0m" + echo -e "\033[46;37m stress-ng --cpu 4 --io 2 --timeout 10s # 综合压力测试\033[0m" +} + +# Function to install btop (美观的系统监控工具) +install_btop() { + echo -e "\033[46;37minstall btop (美观的系统监控工具) \033[0m" + + # 检查Ubuntu版本,22.04及以上可以直接用apt安装 + if (( UBUNTU_MAJOR >= 22 )); then + sudo apt-get install btop -y + else + # 对于较老的Ubuntu版本,从GitHub下载二进制文件 + echo -e "\033[46;37m检测到Ubuntu $UBUNTU_VERSION,从GitHub下载btop二进制文件\033[0m" + BTOP_VERSION="1.2.13" + wget https://github.com/aristocratos/btop/releases/download/v${BTOP_VERSION}/btop-x86_64-linux-musl.tbz -O btop.tbz + if [ $? -eq 0 ]; then + tar -xjf btop.tbz + sudo mv btop/bin/btop /usr/local/bin/btop + sudo chmod +x /usr/local/bin/btop + rm -rf btop btop.tbz + else + echo -e "\033[41;37m下载失败,尝试从snap安装\033[0m" + sudo snap install btop + fi + fi + + sleep 2 + echo -e "\033[46;37mbtop 安装完成。\033[0m" + echo -e "\033[46;37m使用方法:直接运行 btop 命令\033[0m" + echo -e "\033[46;37m快捷键:1-CPU 2-内存 3-网络 4-进程 p-切换预设 q-退出\033[0m" +} + echo -e "\033[34m 这里是主程序,具体是---------- 1: 更新系统(默认安装) 2: 安装基础工具(默认安装) @@ -820,7 +865,9 @@ echo -e "\033[34m 这里是主程序,具体是---------- 33: 安装 zsh + oh-my-zsh + 常用 alias (可选) 34: 安装 Variety(动态壁纸工具,可选) 35: 安装 CUDA 11.8 (可选,支持TensorRT8.7和cudnn 8.7) -36: 安装 CUDA 12.2 (可选)\033[0m" +36: 安装 CUDA 12.2 (可选) +37: 安装 stress (Linux压力测试工具,默认安装) +38: 安装 btop (美观的系统监控工具,默认安装)\033[0m" echo -e "\033[34m 请根据需要输入对应的数字,多个数字之间用空格隔开,回车默认安装所有工具\033[0m" @@ -973,6 +1020,14 @@ else 36) install_cuda122 ;; + 37) + update_system + install_stress + ;; + 38) + update_system + install_btop + ;; *) echo "Unknown option: $arg" install_all