博客¶
『从C到Java』零 - 3. 初见包与访问控制修饰符
T18:12:00+08:00
一、包
包 是一种为了更好地组织类与代码而产生的机制。
还记得我们用 IntelliJ IDEA 创建的项目初始的样子么?
在 IDEA 的 Project 视图 下,src/
目录下有一个看起来像是名为 com.azurice
的文件夹,而在其中的 Main.java
开头也有一句 package com.azurice;
。
实际上,com.azurice
并不是 一个 文件夹,而是 com/azurice/
这样 两个套着的 文件夹,这个 com.azurice
就是一个包。
通过 包,你可以将相同功能或同一模块的类放在一个包;你可以在两个包中写两个名字相同的类,而这两个名字相同的类可以由包名区分开,进行导入与使用。
1.1 定义包
包名 是与 路径 一一对应的。
定义一个包的方法:
Java | |
---|---|
例如 Main.java
中的那句 package com.azurice
它规定这个文件属于 com.azurice
包,而它就在 com/azruice/
目录下,这个包被称作 Base Package 基包,一般其他的包都创建于这个包之下,来其名称来自于创建项目时的设定。
1.2 引入包
引入一个包的方法:
java 中有一个 java.util
包,其中包含了很多实用工具,其中就包含一个方便日期操作的 Date
类,我们可以借助它来编写一个打印当前日期的程序。
Java | |
---|---|
在 new Date()
创建对象时,会以当前日期对其属性进行初始化。
1.3 我们来写一个包吧
比如创建一个 com.azurice.util
包(创建文件夹):
在这个包中创建一个 TimeUtil.java
文件。
在其中实现了一个 TimeUtil
类 并实现了一个用来打印当前时间的方法 printTime():
Java | |
---|---|
然后我们就可以在 主类 中使用它了:
Java | |
---|---|
什么?报错了?
这里就要引入 修饰符 的概念了。
二、访问控制修饰符
Java中,可以使用 访问控制修饰符 来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
- default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口(以后会讲)、变量、方法。
- private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
- public : 对所有类可见。使用对象:类、接口、变量、方法
- protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
修饰符 | 当前类中 | 同一包内 | 其他包 |
---|---|---|---|
public |
Y | Y | Y |
protected |
Y | Y | N |
default |
Y | Y | N |
private |
Y | N | N |
2.1 public
我们在 com.azurice
包中能够使用 com.azurice.util
包中的类,就是因为这个类是 public
修饰的,因为 printTime()
函数没有加修饰符,所以其实它只能在同一包以及当前类中访问。我们为它加上 public
修饰的,顾名思义“公共的”。
- 一个文件中只能有一个
public
类,且其名字要与文件名相同
Java | |
---|---|
可以发现,报错消失了。
运行得到输出:
Text Only | |
---|---|
2.2 private
如果加上 private
那么在就只有当前类中能够访问。
2.3 protected
这个,以后再讲~
三、static
修饰方法以及属性
static 意为 静态,何为 静态?就是不涉及 this
(对象自身)。
一个 static
修饰的方法被称作 静态方法他被允许在对象没有被创建的情况下被调用。
我们刚刚写的函数其实并没有涉及到 TimeUtil 类型对象自身,所以我们可以把它写成静态方法:
Java | |
---|---|
这样在主方法中可以不创建对象的情况下,直接使用 类名.方法名()
对其进行调用:
Java | |
---|---|
同理,static
也可以修饰属性
差不多,有一定的理解就行啦,只是初步的形成认识,之后还要整体从头详细地讲一遍。
『C语言教程』0. 踏入C的大门
T10:59:00+08:00
一、C语言 -> 程序
C语言 是一门 高级语言、编译型语言, 故需要借助 编译器 来将 C语言代码 转换为 二进制机器码 —— 程序。
有关编程语言:[[../../「计算机基础」/『计算机基础』编程语言 与 程序]] 有关进制:[[../../「计算机基础」/『计算机基础』进制]]
1. GCC
GCC(GNU Compiler Collection) 是包含于 GNU计划 的一套编译器,支持多种语言与多种硬件平台。
有关 GNU:[[../../「计算机基础」/『计算机基础』操作系统]]
GCC 编译 C语言 的过程:
flowchart LR
subgraph 源代码
A[main.c]
a[utils.c]
p1[...]
end
A --预处理 -E--> B[main.i]
a --预处理 -E--> b[utils.i]
subgraph 汇编代码
C[main.s]
c[utils.s]
p2[...]
end
B --编译 -S--> C
b --编译 -S--> c
subgraph 机器码
D[main.o]
d[utils.o]
p3[...]
end
C --汇编 -c--> D
c --汇编 -c--> d
机器码 --链接--> 可执行程序
可执行程序 --> z([运行])
记一次Typecho博客部署
T13:15:00+08:00
〇、服务器
华为云ecs弹性云服务器 1vCPUs 1GiB s6.small.1
Debian 10.0.0 64bit
一、更新系统
查看系统版本:
Text Only | |
---|---|
Text Only
可以在此处查看不同版本代号对应包的版本:Debian -- 软件包
清华源Debian源:debian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
修改 /etc/apt/sources.list
,使用清华源,版本代号 testing
这样才能安装到一些软件的较新版本(比如nvim0.6、php8.1等)
更新后查看系统版本可以发现已经改变:
Bash | |
---|---|
二、部署 typecho
1. 安装一些东西
Text Only | |
---|---|
如果访问服务器IP出现 Welcome to nginx! 网页,则安装成功
Text Only | |
---|---|
2. 下载 Typecho
将 .tar.gz
中 build
内的内容放到 /var/www/html
目录下,并删除原本的 .html
文件
注意要下载开发板,1.1版本并不支持php8
修改 www
目录的权限
Text Only | |
---|---|
3. 配置nginx
编辑 /etc/nginx/sites-enabled/default
默认内容:
在 index index.html index.htm index.nginx-debian.html;
中加入 index.php
将 location ~\.php$
那部分取消注释,并稍做修改:
保存,并用 nginx -s reload
重新加载设定。
访问服务器地址,进行安装吧~
『从C到Java』零 - 2. 完全不一样的“对象”和“类”
T23:13:00+08:00 对象 Object,有自己的属性,自己还能够做出一些行为。
类 Class,是用来描述对象的样子的。
可以说 Class 很像结构体,而 Object 很像一个结构体变量,区别就是,类和对象其中可以有函数,在这里被称作 方法 Method。
这一篇,用以初步理解 对象 和 类 的概念。
一、写个像结构体的类
1.1 声明一个 Good 类
Java | |
---|---|
是不是很像结构体。
1.2 声明一个 Good 类的对象
Java | |
---|---|
这里声明出来的 g 并没有关联到一个具体的对象身上。
如果在这个时候访问这个对象,编译器会产生错误不允许编译,因为这个变量并没有初始化(对象并没有实例化)。
1.3 实例化对象
引入一个语句:new
来创建一个具体的对象(实例化对象)。
Java | |
---|---|
得到输出:
Text Only | |
---|---|
@
前是对象所属的类,@
后是地址。
看看它的值:
得到输出:
你可以像对结构体成员操作一样来对这个对象的属性进行操作:
Java | |
---|---|
得到输出:
1.4 整理 & 与C语言对比
Java语言:
C语言
二、给类写点不像结构体的东西
2.1 方法
刚刚提到,类之中可以包含函数,叫做 方法。
程序开始运行的 "Main 函数",在 "class Main"(主类)中,因此我们称其为 "Main 方法"。
那么我们在类里写一个打印信息的函数试试:
Java | |
---|---|
在主方法中可以调用:
Java | |
---|---|
得到输出:
2.2 另一个方法
当然,方法也可以有参数,有返回值,还可以修改自身的属性:
主方法:
得到输出:
Text Only | |
---|---|
2.3 更特殊的东西 —— 构造函数
相信注意到了,实例化对象的语句中使用的是类名加(),很像是在调用函数:
Java | |
---|---|
其实确实是这样,这个函数叫做构造函数,默认的构造函数参数为空,而我们可以为类亲自写一个构造函数:
构造函数就是一个名字与类名相同的函数,参数随意,其作用就是”构造”,比如可以传进去 id
,stock
,price
直接为此对象完成初始化。
按照局部优先,如果参数名与属性名相同的话,用 id
访问到的其实是参数的 id
而非这个对象内部的属性 id
。
所以需要让参数名改一改才行:
或者有一个新的东西叫做 this
它代表的是当前的对象:
Java | |
---|---|
都可以实现在实例化的时候就为对象初始化属性值的功能。
主方法:
Java | |
---|---|
得到输出:
三、所谓的 “面向对象” 到底是什么
现在大概已经对 类 和 对象 有了初步的理解。
我们一直在说 C语言 是面向过程的,而 Java语言 是面向对象的,那这两个词到底是什么意思呢?
考虑一个图书管理系统,用 C语言 来写的话,是考虑一个个的功能,去实现一个个的函数,再把这些函数串起来,像是你学会了做一件件事情的方法,然后去使用这一个个方法达成目标;而用 Java语言 来写的话,是一个个的类,每一个类有自己的属性和方法,像是你教会了一个个小人他们的职责,然后指挥一个个小人去做事情。
例如上面的购买商品的例子:
面向过程 ,算法 + 数据结构,是考虑到 商品购买,实现购买商品的函数。当整个项目体量很大的时候,用这种思考方式要考虑的内容实在太多。
面向对象 ,是考虑 商品本身,商品本身的属性以及它所能有的行为(例如:被购买,数量减少),还有商品与其他类型的对象之间的关系。就算当整个项目体量很大,再具体实现某一个类的某一个方法的时候,需要考虑的内容要没有那么复杂,同时这种思维方式也更接近人一些。当你将项目中的对象们都完善完成,你会发现,整个项目十分清晰。
之后还要接触到 Java类 的 继承,多态 等一系列性质,对 面向对象 的理解也会逐步加深。
以上。
『从C到Java』零 - 1. 那些和C挺像的
T18:12:00+08:00
一、基本类型
整数:
数据类型 | 类型名 | 大小(Byte) | 数据范围 | 默认值 |
---|---|---|---|---|
byte(💥标准C没有💥) | 字节型 | 1 | -128 ~ 127 | 0 |
short | 短整型 | 2 | -32768 ~ 32767 | 0 |
int | 整型 | 4 | -2147483648 ~ 2147483647 | 0 |
long | 长整型 | 8 | -9223372036854774808~9223372036854774807 | 0L |
小数:
数据类型 | 类型名 | 大小(Byte) | 数据范围 | 默认值 |
---|---|---|---|---|
float | 浮点型 | 4 | 3.402823e+38~1.401298e-45 | 0.0f |
double | 双精度浮点型 | 8 | 1.797693e+308~4.9000000e-324 | 0.0d |
字符:
数据类型 | 类型名 | 大小(Byte) | 数据范围 | 默认值 |
---|---|---|---|---|
char | 字符型 | 1 | '\u0000' (0) 到 '\uffff' (65535) |
'\u0000' (空格) |
💥 java 中的 字符 是一个 16位Unicode字符。💥
有关字符编码,见这篇 字符编码 【还没写】
布尔型:
数据类型 | 类型名 | 大小(Byte) | 数据 | 默认值 |
---|---|---|---|---|
boolean(💥标准C没有💥) | 布尔型 | 是个谜,不过挺小 | true 或 false |
false |
二、运算符
2.1 算数运算符
同 C/C++。
2.2 关系运算符
同 C/C++。
2.3 位运算符
同 C/C++,多了一个 >>>
就是左边会补零的按位右移。
什么?你没学?快滚去把 C语言的位运算看了!传送门:嘿嘿还没写
2.4 逻辑运算符
同 C/C++。
同样有短路效应
2.5 赋值运算符
同 C/C++。
2.6 三目运算符
同 C/C++。
三、选择语句
3.1 if 语句
同 C/C++。
3.2 switch 语句
同 C/C++。
但是!!!有一点区别!!!
Java | |
---|---|
- 💥Java7 起 expression 的值可以是字符串类型的,对应的 value 也应该是常量。💥
- 💥Java14 起 正式支持 witch表达式,可以这么写:
Java | |
---|---|
??但是在基础数据类型里不是没有字符串么??
不要着急,后面会讲
四、循环语句
4.1 for 语句
同 C/C++。
4.2 while 语句
同 C/C++。
4.3 do ... while 语句
同 C/C++。
五、“函数”
定义的方式是一样的,不过在 Java 里,它们并不是一样的东西,以后慢慢讲。
差不多这些?
其他的数组啊、文件输入输出啊、字符串啊,什么的,慢慢讲吧。
『从C到Java』零 - 0. 起步
T18:06:00+08:00
一、Java 与 C 的不同
先来看看一个 C语言程序 从编写到运行所经历的过程:
flowchart LR
subgraph 源代码
A[main.c]
a[utils.c]
end
A --预处理--> B[main.i]
a --预处理--> b[utils.i]
subgraph 汇编代码
C[main.s]
c[utils.s]
end
B --编译--> C
b --编译--> c
subgraph 机器码
D[main.o]
d[utils.o]
end
C --汇编--> D
c --汇编--> d
机器码 --链接--> 可执行程序
可执行程序 --> z([运行])
源代码 编译为 汇编代码 再汇编为 机器码 再链接为最终的 可执行程序。
不同平台(如 Max, Windows, Linux...)所识别的机器语言是不同的。
C语言程序 在不同平台运行的实现方式是 针对不同平台进行特定的编译操作 得到对应平台的机器码,即 到处编译,到处运行。
Java 是 跨平台 的语言,是无论对于什么目标平台都编译为统一的 字节码,在不同的平台上引入一个 虚拟机 来执行这些字节码(将这些字节码“翻译”为对应平台的机器码并执行),即 一次编译,到处运行,而这个虚拟机有一个名字 —— Java Virtual Machine(JVM)。
不过这样也有不方便的缺点,即要想运行就需要有 JVM 环境。
以下是一个 Java语言程序 从编写到运行所经历的过程:
flowchart LR
subgraph 源代码
A[.java]
end
subgraph 字节码
A --编译--> B[.class]
end
字节码 --> z([通过JVM运行])
因此,开发一个 Java语言程序 所需要的东西就很清晰了:
- 编译器
- 虚拟机
在 Java8 及之前版本时,发行的工具包有两个版本:
- Java Runtime Environment(JRE) 其中只包含 JVM
- Java Development Kit(JDK) 其中包含 JVM 以及 编译器
而 Java8 之后,就只发行 JDK 了。
图:JDK 与 JRE 的关系 可以在这个网站深入挖掘一下 Java Platform Standard Edition 8 Documentation (oracle.com)
二、开发环境配置 - 上
Java 最初的开发公司是 Sun公司 后来被 甲骨文(Oracle)公司 收购,这是 Oracle官网 :
Oracle | Cloud Applications and Cloud Platform
在其中可以找到 JDK 的下载页面(Products -> Java -> Download Java):
在这里,很多 Java 版本并没有被显示出来,目前出现在页面中可以下载的 Java8, Java11 和 Java17 是一些长期支持 Long-Term Support(LTS) 的版本。
LTS版本 即为开发商保持维护(修bug之类的工作)的版本。
如今 Java 每6个月便会迭代一个主要版本,公布一些新特性以及虚拟机的优化。
直接冲最新版就好了😁。
选择 Windows 下载 Installer (两个都行),然后安装一路下一步(最好不要改位置),之后它应该会出现在这里:
打开看一看里面的结构:
bin/
目录下是可执行文件,其中就包含我们会经常使用到的:
- 编译器
javac.exe
- JVM虚拟机
java.exe
javaw.exe
w代表windows,不会显示控制台内容(在运行有 图形用户界面 Graphical User Interface(GUI) 的程序时就不会出现控制台的黑框。
此时打开 Cmd 或 PowerShell,输入 java --version
,应该会得到如下内容:
PowerShell | |
---|---|
- 打开 Cmd 方法
Windows + R 输入
cmd
确定。
- 打开 PowerShell 方法
Windows + R 输入
powershell
确定。
如果没有,提示不是命令或无法识别的话还需要配置环境变量:
在终端输入命令运行一个程序的时候,计算机会在当前目录去查找对应的可执行文件。
例如如果当前目录有一个
nb.exe
,在 Cmd 中输入nb
或nb.exe
(PowerShell 中为./nb
或./nb.exe
)的时候会在当前目录去查找并运行,找不到就会报错。环境变量中的
Path
就包含很多路径,使计算机也在这些路径中进行查找。
自行百度查找 修改环境变量
,打开下面的界面,编辑 Path
添加刚刚的 bin/
目录
然后一路确定,重启一下大概就好了。
🐳、宕开一笔 小试一下
找个地方新建一个 HelloWorld.java
,输入以下内容:
Java | |
---|---|
之后保存。
在文件所在位置打开 Cmd 或 PowerShell(Win10):
如果你是 Win11 的话,可以直接打开特别特别特别好用的 Windows Terminal 来使用 Cmd 或 PowerShell。
(Windows Terminal 和 Cmd 或 PowerShell并不是一个东西,Terminal更像是个外壳,内容是后者,具体详细知识见 Shell 与 Terminal 的区别【还没写】)。
然后介绍一些基础命令来切换当前目录到文件所在目录:
盘符
来切换到对应盘符下cd xxx
来切换到xxx目录dir
列出当前目录下的文件
目录、文件名什么的不用手动打完的,可以输一个
code
甚至cod
,按几下 tab键,就可以自动补全🎈当然也有快捷的直接在目录打开的方法:
直接在这里输入
cmd
或powershell
回车就可以啦。🎈对于
powershell
也可以按着 Shift 右键当前目录的空白处:
🎈🎈🎈当然,Win11 的 Windows Terminal 最方便,直接右键空白处:
打开以后我们来 编译 并 运行 HelloWorld.java
:
注意下面执行的命令是
PS xxxxxx>
后面的内容!
- 编译
PowerShell | |
---|---|
你会发现多了一个 .class
字节码文件
2. 运行
PowerShell | |
---|---|
得到输出:
到这里,大概应该已经对 Java语言 有所了解了。
接下来推荐几款 集成开发环境 Integrated Development Environment(IDE),当然你要是想 繁华落尽见真淳 文本编辑器 + 命令行也不错,比如我这种 NeoVim 忠诚教徒。
不过对于比较大的项目,当然还是 IDE 配置成本低一些,所以我的 NeoVim 主要写 C 或小体量项目。
二、开发环境配置 - 下
我就只推荐一个 —— IntelliJ IDEA。
Jetbrain全家桶yyds
下载页面:下载 IntelliJ IDEA:JetBrains 功能强大、符合人体工程学的 Java IDE
注意要下载 Community 版本(除非你有钱,或者你像我一样申请了学生包✈️)
安装依旧一路下一步,这里建议把这个 Open Folder As A Project 勾上,蛮实用的:
三、IntelliJ IDEA 的使用
3.1 创建项目
创建一个 HelloWorld
项目:
Base package 暂时先不用管,以后会讲。
创建完成:
看一下目录结构:
.idea/
目录
IntelliJ IDEA 的项目相关文件,不用管
- src
目录
存放源码的目录
- HelloWorld.iml
文件
项目相关文件,不用管
3.2 运行
会在内置的终端运行:
有些时候并不好用。。。(比如调试CSI序列等内容时)
3.3 调试
那么,这篇大概就这样了?
一会见!
old test
T23:17:14+08:00 目前正在折腾博客,迁移了部分文章,有一些图片链接还未修复。 接下来要做的:
- 搞定CDN 加速
- 把博客迁移完成
- 文章
- 图片资源
- 折腾折腾博客主题以及组织结构和设置
下面是测试
First level heading
Second level heading
Third level heading
Hello!
test | table |
---|---|
waibiwaibi | waibibabo |
Bold, Italic, Delete, Underline
测试下评论 抄自 Welcome to giscus! · Discussion #62 · giscus/giscus 以及 github-flavored-markdown-test/README.md at master · suan/github-flavored-markdown-test
Hello! 🎉
Test markdown features...
H1
followed by some text
H2
followed by some text
H3
followed by some text
H4
followed by some text
H5
followed by some text
H6
followed by some text
Auto-detected link: https://giscus.vercel.app
Can render inline code
, italics, strong, 😄
here is blockquote test
inline code
, italics, strong, 😄
When , there are two solutions to and they are
The Cauchy-Schwarz Inequality
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis id sem purus, eu commodo tortor. Donec malesuada ultricies dolor a eleifend. In hac habitasse platea dictumst. Vivamus a faucibus ligula. Nullam molestie tristique arcu, eu elementum metus ultricies sed. Aenean luctus congue lectus, vitae semper erat rhoncus non. Nulla facilisi.
Horizontal rule:
Table Header 1 | Table Header 2 |
---|---|
Content | https://github.com/laymonage/giscus |
Content | http://github.com:\ |
Text right below table. Follows is a table with an empty cell, and unaligned indenting. |
Table Header 1 | Table Header 2 |
---|---|
Content | Content |
Content |
Text Only | |
---|---|
1 2 3 |
|
def this_is
puts "some #{code tag} code"
end
def this_is puts "some #{pre tag} code" end
Ruby | |
---|---|
JavaScript | |
---|---|
Clojure | |
---|---|
gantt
title 2021~2022 学期活动
dateFormat YYYY-MM-DD
section 学期
上学期 :2022-08-23, 2023-01-16
寒假 :2023-01-17, 2023-02-25
下学期 :2023-02-18, 2023-06-30
暑假 :2023-06-25, 2023-08-15
小学期 :2023-07-03, 2023-07-20
section 辩论
辩论队招新推送 :2022-08-30 10:51, 1d
辩论队辩手介绍 :2022-09-01 17:37, 1d
一培通知 :2022-09-06 18:28, 1d
一培 :crit, 2022-09-08, 1d
院新生赛 :crit, 2022-09-18, 2022-10-23
院队报名推送 :2022-09-28, 1d
院队报名 :crit, 2022-09-28, 2022-10-09
院队面试 :crit, 2022-10-16, 1d
二培 :crit, 2022-10-31, 1d
校队报名 :2023-01-25, 2023-01-26
校队一面 :2023-01-28, 2d
校队二面 :2023-02-05, 1d
交大论坛 :2023-04-15, 2023-06-11
换届面试 :2023-06-07, 1d
记一次Manjaro KDE美化
T22:47:00+08:00
〇、配置国内源
-
切换镜像源至中国
sudo pacman-mirrors -i -c China -m rank
在弹出的窗口中选一个最快的源
-
更新
sudo pacman -Syyu
一、好东西们
pacman
-S
安装,-R
卸载。
0. OvO
总是最先要安装的东西们
Bash | |
---|---|
总是最先要搞定的东西们
-
把
/home
下的各种目录名改成英文先重命名。
再修改目录映射文件
~/.config/user-dirs.dirs
Text Only 重启
1. 输入法
基于 fcitx5
配置 rime-cloverpinyin
- 安装
fcitx5
输入法框架
pacman -S fcitx5 fcitx5-qt fcitx5-gtk fcitx5-configtool
配置环境变量,编辑 ~/.xprofile
,写入:
Text Only | |
---|---|
配置开机启动,系统设置->工作区->开机和关机->自动启动->添加程序,添加
fcitx5
- 安装
rime
pacman -S fcitx-rime
- 配置
cloverpinyin
输入方案
到 https://github.com/fkxxyz/rime-cloverpinyin/releases 下载最新的release,并直接解压到 ~/.local/share/fcitx5/rime
目录中。
rime初次初始化完成后才会有这个目录
在相同目录创建 default.custom.yaml
,写入:
"manu/page_size"
为每页候选词数目,可根据自己习惯设为1~9。
现在,找到一个可以打字的地方,切换到 rime
输入法,右键系统托盘的图标,点击重新部署,待加载完成可以看到出现 🍀四叶草简体拼音
。
2. Shell
配置 oh-my-zsh
- 修改默认 shell 为 zsh
chsh -s /usr/bin/zsh
- 安装
oh-my-zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
如果多次提示被拒绝,就修改
/etc/hosts
:重启后即会生效
-
优化体验
-
命令高亮
zsh-syntax-highlighting
Text Only -
记住之前使用过的命令
autosuggestions
Text Only
修改 ~/.zshrc
启用插件
Text Only | |
---|---|
sudo 是自带插件,双击Esc在输入命令开头添加
sudo
extract 也是,不同文件可以直接使用
extract xxx
来解压
3. 录视频、截图、写文章相关
-
录屏
sudo pacman -S simplescreenrecorder
-
键盘按键显示
sudo pacman -S screenkey
-
截图
yay -S deepin-screenshot
系统设置 -> 快捷键 -> 自定义快捷键 ->编辑 -> 新建 -> 全局快捷键 -> 命令/URL
名称、注释、触发器按自己喜好配置,习惯了Win10的
<Windows>
+<Shift>
+<s>
,就设置成一样的了。命令/URL:
deepin-screenshot
KDE有一个自带的截图工具
Spectacle
,不过没有deepin-screenshot
好用,如果有快捷键冲突可以在全局快捷键里将其禁用。
4. 编辑器
- neovim
sudo pacman -S neovim
二、美化
面板部分
- 删除默认面板
右键下方面板 -> 编辑面板 -> More Options... -> 删除面板
- 创建空面板
右键桌面 -> 添加面板 -> 空面板
右键面板 -> 编辑面板 -> 点击并按住屏幕边缘,拖至上方。
自行调整高度
-
向面板添加部件,我的布局为:
程序启动器 - 数字时钟 - 全局菜单 - 间距 (在面板编辑中点击添加间距) - Panon - 间距 - Netspeed Widget - 系统托盘 - 调度器
这里会用到两个需要安装的很棒的部件:
在添加部件界面最下方点击 获取新部件 -> 下载新 Plasma 部件 ,搜索安装即可
- Panon 一个可视化不同频率声音的 装B(划掉) 部件
需要前置
sudo pacman -S qt5-websockets python-docopt python-numpy python-pyaudio python-cffi python-websockets
我的配置是宽度770,中立(反)方向北,视觉特效bar1ch,width7,width2,decay0.007,音频数据源PulseAudio,输入设备混合所有麦克风和扬声器,减小低音权重,音域0~9000Hz
-
Netspeed Widget 一个显示实时上/下载速度的部件
我的配置:kayoutSidebyside,FontSize80%
Dock部分
- 安装 Latte-Dock
Text Only | |
---|---|
- 配置
右键,布局 -> 我的布局(或者新建一个)
右键,面板设置,先选择为面板
打开高级
行为:底部,两端对齐,避开活动窗口,延迟显示100隐藏50,悬停时显示标题提示
外观:绝对大小48鼠标悬停时放大0最大46%边距5%高度20%,颜色Plasma,背景大小100%不透明度45%
特效:阴影大小30%不透明度70%,任务指示装饰Latte,Latte指示装饰选项中样式为直线,光晕关掉,为最小化窗口使用不同颜色,窗口活动室显示额外的点。任务:动作悬停预览和高亮窗口
- 我的布局
应用程序面板 - Latte Separator - 对齐分割器 - 固定的应用 - 对其分割器 - Latte Separator - 回收站
这里又会用到一个小部件:
- Latte Separator 安装方式同上面的两个。
KDE主题部分
系统设置 -> 全局主题:微风
Plasma样式:Breeze Transparent
应用程式风格 -> 窗口装饰:Glassy
颜色:亮色微风
图标:Tela
光标:亮色微风
没有的可以在右下的获取主题处获得
系统设置 -> 工作区 -> 工作空间行为
桌面特效:摆动窗口、破碎
焦点:黯淡未激活窗口
系统设置 -> 工作区 -> 窗口管理 -> 窗口行为
焦点:焦点跟随鼠标(鼠标优先)聚焦延迟77
好啦,注销/重启后就好啦!