我在會議演講后經(jīng)常收到的一個問題很奇怪,不是關(guān)于我演講的內(nèi)容,而是關(guān)于我的linux桌面環(huán)境。人們對這個漂亮的發(fā)行版更感興趣,而不是我剛才做的精彩演示
我不是在抱怨,我喜歡我的桌面設(shè)置。我非常喜歡它,以至于在我該買一臺新PC的時候,我都不敢去買。我擔(dān)心自己會把事情搞砸(我過去曾多次這樣做,我想Linux用戶可以和我有同感)。
因此,我決定為任何有興趣使用Linux作為其主要操作系統(tǒng)進(jìn)行開發(fā)的人介紹我的發(fā)行版最重要的方面。
這不僅僅是我的工作筆記本電腦;這是我用于以下所有內(nèi)容的主要機(jī)器。
•JAVA、JS、TS、Go、Python和web開發(fā)
•JHipster 開發(fā)
•在本地運(yùn)行多個web應(yīng)用程序
•運(yùn)行Docker容器
•用于windows測試和其他虛擬機(jī)的VirtualBox
•Kubernetes、Terraform、CloudFormation 開發(fā)和部署
•使用必要的CLI工具進(jìn)行Azure、AWS和GCP部署
•大量使用瀏覽器
•電子郵件、聊天和視頻會議
•Plex 媒體服務(wù)器
•博客
•Youtube與社交媒體
機(jī)器配置
機(jī)器的配置對于任何開發(fā)都非常重要。所以我的筆記本電腦是戴爾Precision 5530移動工作站。我的舊Dell 5510也有完全相同的設(shè)置。我仍然把它作為備用筆記本電腦,它已經(jīng)有兩年的歷史了,但它仍然有比今天的大多數(shù)高端筆記本電腦更好的性能。
當(dāng)時,我使用Dell的自定義配置選項(xiàng)來獲得最佳設(shè)置。這并不便宜,但我的公司XebiaLabs提供了可觀的預(yù)算,我認(rèn)為每一分錢都是值得的。在我看來,這是開發(fā)人員最好的筆記本電腦之一。下面是我電腦的配置:
處理器: Intel® Core™ i9-8950HK CPU @ 2.90GHz × 12
內(nèi)存: 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)
無線網(wǎng)卡: 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)鋰離子電池™
操作系統(tǒng)和桌面環(huán)境
當(dāng)然,最重要的是操作系統(tǒng)。我目前使用的的是 Fedora 30 ,桌面是GNOME 3.32.2,我很滿意。我發(fā)現(xiàn)Fedora比其他發(fā)行版更適合于開發(fā)機(jī)器,因?yàn)樗陌l(fā)布周期短,而且相當(dāng)穩(wěn)定,所以您可以隨時獲得最新且穩(wěn)定的軟件。
沒有漂亮主題的桌面有什么用,對吧?當(dāng)涉及到主題時,GNOME是很棒的,我選擇了 Arc-Flatabimous 主題,并且從沒后悔過。對于圖標(biāo),我使用 Paper,因?yàn)槲蚁矚g帶Material風(fēng)格圖標(biāo)的主題。
當(dāng)然,如果沒有一些不錯的GNOME插件,它是不完整的。下面是我使用的插件。
•Dash to Dock
•Always Zoom Workspaces
•Auto Move Windows
•Native Window Placement
•Launch new instance
•Steal My Focus
•AlternateTab
•Window List
•Applications Menu
•Caffeine
•Clipboard Indicator
•Gistnotes
•OpenWeather
•Places Status Indicator
•System-monitor
•Todo.txt
•TopIcons Plus
•User Themes
開發(fā)工具
接下來,介紹的這些都是客觀的選擇,只要你對所選擇的工具感到滿意,其實(shí)并不重要。以下是我對一些重要開發(fā)類別的選擇。不包括像 Vim、Git、NodeJS、Docker、Kubernetes等顯而易見的東西。
Shell:這對于開發(fā)人員來說是最重要的。我使用 ZSH 和很棒的 Oh My ZSH 作為我的shell工具。當(dāng)然,如果沒有一些漂亮的插件和主題,這將是不完整的。我使用 powerlevel9k 主題并進(jìn)行了一些定制。我還為Oh My ZSH 安裝了 zsh-autosuggestions、git、docker、docker-compose、autojump、zsh-syntax-highlighting、dnf和npm插件。這是我的.zshc文件,其中包含所有自定義內(nèi)容。
這篇文章的一條評論建議用 powerlevel10k 替代 powerlevel9k 主題,我嘗試了一下,結(jié)果證明它確實(shí)比powerlevel9k快得多。所以我想我要用powerlevel10k作為我的shell主題。
Terminal:沒有好的終端,好的 shell 有什么用。幸運(yùn)的是,我們有 Tilix ,這是目前最好的終端應(yīng)用程序之一。它有工作區(qū)、選項(xiàng)卡、拆分窗口、Quake模式等等。
集成開發(fā)環(huán)境(IDE):IntelliJ IDEA Ultimate - 我用它來開發(fā)Java和其他JVM語言
代碼編輯器:Visual Studio Code - 我的首選編輯器。我喜歡它。我使用VSCode進(jìn)行web開發(fā)、Go、Python、JS開發(fā)、DevOps,以及除了JVM語言之外的一切。如果沒有一些好的插件,VSCode的設(shè)置是不完整的。這兒是我正在使用的插件。您可以運(yùn)行腳本來安裝他們。
我使用的其他值得注意的開發(fā)工具有GitKraken 用于Git倉庫管理、Beyond Compare 用于代碼比較、VirtualBox、NVM 用于 NodeJS版本管理和SDKMan 用于JDK版本管理。
生產(chǎn)力工具
生產(chǎn)力工具也非常重要,下面是我的選擇。
瀏覽器:谷歌瀏覽器是我的主要瀏覽器。我有時也使用Firefox和Opera。我確實(shí)喜歡Opera的用戶體驗(yàn),我很想把它作為我的主要瀏覽器,但我不能沒有我在 Chrome 中我的 google 帳戶同步的所有內(nèi)容。
電子郵件:我使用 Mailspring 作為我的電子郵件客戶端。這是一個相當(dāng)不錯的郵件客戶端,有很好的主題和簡單的用戶界面。
office:我主要在線使用 Google Docs 和 Microsoft Office,但是當(dāng)我必須在桌面上處理某些事情時,我會使用 LibreOffice,這是一個很好的 Office 套件,甚至可以處理 Microsoft Office 和 Keynote 格式文本。
通訊:我使用 Slack,而對于視頻會議,我使用 BlueJeans。
屏幕截圖:我使用這個名為 Peek 的漂亮工具進(jìn)行屏幕錄制,使用 Shutter 進(jìn)行屏幕截圖。
結(jié)論
我還使用了許多其他小而精巧的應(yīng)用程序;大多數(shù)是命令行應(yīng)用。有一些值得提及,例如 Timeshift,它非常適合備份您的電腦。
當(dāng)然,在 Linux 世界中并非一切都是完美的,但對于每個操作系統(tǒng)都是一樣的。在切換到 Linux 之前,我是 Windows 的長期用戶。所以和每個 Linux 用戶一樣,我時不時會把事情搞砸。 Linux 世界中有許多古怪的現(xiàn)象,但沒有什么能讓我感到困擾。我過去遇到的一些最煩人的問題如下,現(xiàn)在,我沒有任何明顯的問題。
•切換應(yīng)用程序時滾動位置跳動 - 升級到 Fedora 30 后修復(fù)
•休眠被打斷 - 升級到 Fedora 30 后修復(fù)
•插入耳機(jī)時不能選擇音頻輸出方式 - 在 Fedora 28 后修復(fù)
希望這個對你有幫助。如果您有任何問題,或者您認(rèn)為我遺漏了什么,請?zhí)砑釉u論。
如果你喜歡這篇文章,請留下一個贊或評論。
引用鏈接
[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