我的漂亮的 Linux 开发环境

我在会议演讲后经常收到的一个问题很奇怪,不是关于我演讲的内容,而是关于我的Linux桌面环境。人们对这个漂亮的发行版更感兴趣,而不是我刚才做的精彩演示😂

我不是在抱怨,我喜欢我的桌面设置。我非常喜欢它,以至于在我该买一台新PC的时候,我都不敢去买。我担心自己会把事情搞砸(我过去曾多次这样做,我想Linux用户可以和我有同感)。

因此,我决定为任何有兴趣使用Linux作为其主要操作系统进行开发的人介绍我的发行版最重要的方面。

这不仅仅是我的工作笔记本电脑;这是我用于以下所有内容的主要机器。

  • Java、JS、TS、Go、Python和web开发

  • JHipster 开发

  • 在本地运行多个web应用程序

  • 运行Docker容器

  • 用于Windows测试和其他虚拟机的VirtualBox

  • Kubernetes、Terraform、CloudFormation 开发和部署

  • 使用必要的CLI工具进行Azure、AWS和GCP部署

  • 大量使用浏览器

  • 电子邮件、聊天和视频会议

  • Plex 媒体服务器

  • 博客

  • Youtube与社交媒体

机器配置

机器的配置对于任何开发都非常重要。所以我的笔记本电脑是戴尔Precision 5530移动工作站。我的旧Dell 5510也有完全相同的设置。我仍然把它作为备用笔记本电脑,它已经有两年的历史了,但它仍然有比今天的大多数高端笔记本电脑更好的性能。

当时,我使用Dell的自定义配置选项来获得最佳设置。这并不便宜,但我的公司XebiaLabs提供了可观的预算,我认为每一分钱都是值得的。在我看来,这是开发人员最好的笔记本电脑之一。下面是我电脑的配置:

处理器: Intel® Core™ i9-8950HK CPU @ 2.90GHz × 12

内存: 32GB, DDR4-2666MHz SDRAM, 2 DIMMS, Non-ECC

硬盘: M.2 1TB NVMe PCIe SED class 40 SSD

显卡: NVIDIA Quadro P2000 with 4 GB GDDR5 memory & Intel® UHD Graphics 630 (Coffeelake 3x8 GT2)

无线网卡: Intel Wifi Link 9260 2x2 802.11AC + BT 4.2 vPro wireless card

键盘: English QWERTY US, backlit

显示器: 15.6寸 FHD 1920x1080 Anti-Glare LED-backlit Non-touch IPS UltraSharp™

电池: 带快速充电的6芯(97Wh)锂离子电池™

操作系统和桌面环境

当然,最重要的是操作系统。我目前使用的的是 Fedora 30 ,桌面是GNOME 3.32.2,我很满意。我发现Fedora比其他发行版更适合于开发机器,因为它的发布周期短,而且相当稳定,所以您可以随时获得最新且稳定的软件。

没有漂亮主题的桌面有什么用,对吧?当涉及到主题时,GNOME是很棒的,我选择了 Arc-Flatabimous 主题,并且从没后悔过。对于图标,我使用 Paper,因为我喜欢带Material风格图标的主题。

当然,如果没有一些不错的GNOME插件,它是不完整的。下面是我使用的插件。

开发工具

接下来,介绍的这些都是客观的选择,只要你对所选择的工具感到满意,其实并不重要。以下是我对一些重要开发类别的选择。不包括像 Vim、Git、NodeJS、Docker、Kubernetes等显而易见的东西。

Shell:这对于开发人员来说是最重要的。我使用 ZSH 和很棒的 Oh My ZSH 作为我的shell工具。当然,如果没有一些漂亮的插件和主题,这将是不完整的。我使用 powerlevel9k 主题并进行了一些定制。我还为Oh My ZSH 安装了 zsh-autosuggestions、git、docker、docker-compose、autojump、zsh-syntax-highlighting、dnf和npm插件。这是我的.zshc文件,其中包含所有自定义内容。

这篇文章的一条评论建议用 powerlevel10k 替代 powerlevel9k 主题,我尝试了一下,结果证明它确实比powerlevel9k快得多。所以我想我要用powerlevel10k作为我的shell主题。

Terminal:没有好的终端,好的 shell 有什么用。幸运的是,我们有 Tilix ,这是目前最好的终端应用程序之一。它有工作区、选项卡、拆分窗口、Quake模式等等。

集成开发环境(IDE)IntelliJ IDEA Ultimate - 我用它来开发Java和其他JVM语言

代码编辑器Visual Studio Code - 我的首选编辑器。我喜欢它。我使用VSCode进行web开发、Go、Python、JS开发、DevOps,以及除了JVM语言之外的一切。如果没有一些好的插件,VSCode的设置是不完整的。这儿是我正在使用的插件。您可以运行脚本来安装他们。

我使用的其他值得注意的开发工具有GitKraken 用于Git仓库管理、Beyond Compare 用于代码比较、VirtualBoxNVM 用于 NodeJS版本管理和SDKMan 用于JDK版本管理。

生产力工具

生产力工具也非常重要,下面是我的选择。

浏览器:谷歌浏览器是我的主要浏览器。我有时也使用Firefox和Opera。我确实喜欢Opera的用户体验,我很想把它作为我的主要浏览器,但我不能没有我在 Chrome 中我的 Google 帐户同步的所有内容。

电子邮件:我使用 Mailspring 作为我的电子邮件客户端。这是一个相当不错的邮件客户端,有很好的主题和简单的用户界面。

Office:我主要在线使用 Google Docs 和 Microsoft Office,但是当我必须在桌面上处理某些事情时,我会使用 LibreOffice,这是一个很好的 Office 套件,甚至可以处理 Microsoft Office 和 Keynote 格式文本。

通讯:我使用 Slack,而对于视频会议,我使用 BlueJeans

屏幕截图:我使用这个名为 Peek 的漂亮工具进行屏幕录制,使用 Shutter 进行屏幕截图。

结论

我还使用了许多其他小而精巧的应用程序;大多数是命令行应用。有一些值得提及,例如 Timeshift,它非常适合备份您的电脑。

当然,在 Linux 世界中并非一切都是完美的,但对于每个操作系统都是一样的。在切换到 Linux 之前,我是 Windows 的长期用户。所以和每个 Linux 用户一样,我时不时会把事情搞砸。 Linux 世界中有许多古怪的现象,但没有什么能让我感到困扰。我过去遇到的一些最烦人的问题如下,现在,我没有任何明显的问题。

  • 切换应用程序时滚动位置跳动 - 升级到 Fedora 30 后修复

  • 休眠被打断 - 升级到 Fedora 30 后修复

  • 插入耳机时不能选择音频输出方式 - 在 Fedora 28 后修复

希望这个对你有帮助。如果您有任何问题,或者您认为我遗漏了什么,请添加评论。

如果你喜欢这篇文章,请留下一个赞或评论。

本文译自文章My beautiful Linux development environment

引用链接

[1] Fedora 30: https://getfedora.org/
[2] GNOME 3.32.2: https://www.gnome.org/
[3] Arc-Flatabimous: https://github.com/andreisergiu98/arc-flatabulous-theme
[4] Paper: https://github.com/snwh/paper-icon-theme
[5] Dash to Dock: https://extensions.gnome.org/extension/307/dash-to-dock/
[6] Always Zoom Workspaces: https://extensions.gnome.org/extension/503/always-zoom-workspaces/
[7] Auto Move Windows: https://extensions.gnome.org/extension/16/auto-move-windows/
[8] Native Window Placement: https://extensions.gnome.org/extension/18/native-window-placement/
[9] Launch new instance: https://extensions.gnome.org/extension/600/launch-new-instance/
[10] Steal My Focus: https://extensions.gnome.org/extension/234/steal-my-focus/
[11] AlternateTab: https://extensions.gnome.org/extension/15/alternatetab/
[12] Window List: https://extensions.gnome.org/extension/602/window-list/
[13] Applications Menu: https://extensions.gnome.org/extension/6/applications-menu/
[14] Caffeine: https://extensions.gnome.org/extension/517/caffeine/
[15] Clipboard Indicator: https://extensions.gnome.org/extension/779/clipboard-indicator/
[16] Gistnotes: https://extensions.gnome.org/extension/917/gistnotes/
[17] OpenWeather: https://extensions.gnome.org/extension/750/openweather/
[18] Places Status Indicator: https://extensions.gnome.org/extension/8/places-status-indicator/
[19] System-monitor: https://extensions.gnome.org/extension/120/system-monitor/
[20] Todo.txt: https://extensions.gnome.org/extension/570/todotxt/
[21] TopIcons Plus: https://extensions.gnome.org/extension/1031/topicons/
[22] User Themes: https://extensions.gnome.org/extension/19/user-themes/
[23] ZSH: https://www.zsh.org/
[24] Oh My ZSH: https://ohmyz.sh/
[25] powerlevel9k: https://github.com/bhilburn/powerlevel9k
[26] zsh-autosuggestions: https://github.com/zsh-users/zsh-autosuggestions
[27] zsh-syntax-highlighting: https://github.com/zsh-users/zsh-syntax-highlighting
[28] .zshc文件: https://gist.github.com/deepu105/9723cb70032eca98ff09d110369af67a
[29] powerlevel10k: https://github.com/romkatv/powerlevel10k
[30] Tilix: https://gnunn1.github.io/tilix-web/
[31] IntelliJ IDEA Ultimate: https://www.jetbrains.com/idea/
[32] Visual Studio Code: https://code.visualstudio.com/
[33] 这儿: https://gist.github.com/deepu105/4599d3b381218b9d1a63119fbf9ca537
[34] GitKraken: https://www.gitkraken.com/
[35] Beyond Compare: https://www.scootersoftware.com/
[36] VirtualBox: https://www.virtualbox.org/
[37] NVM: https://github.com/nvm-sh/nvm
[38] SDKMan: https://sdkman.io/
[39] Mailspring: https://getmailspring.com/
[40] LibreOffice: https://www.libreoffice.org/
[41] Slack: https://slack.com/
[42] BlueJeans: https://www.bluejeans.com/
[43] Peek: https://github.com/phw/peek
[44] Shutter: https://launchpad.net/shutter
[45] Timeshift: https://github.com/teejee2008/timeshift
[46] My beautiful Linux development environment: https://deepu.tech/my-beautiful-linux-development-environment/