====== Using Linux ====== Written By: Steve I first started using Linux in my second year of middle school so about 14 years old. I got introduced to the world of Linux by my teacher Renick Bell. I was having performance issues and he asked me if I wanted to try Linux. At that time, I had just started using computers so I was quite unfamiliar with Windows. So, I agreed to try dual booting Linux. He helped me install Manjaro Linux with the XFCE window manager. I started using it and I had no issues with Linux itself other than that I could not see my old files in Windows. Eventually, I felt that my computer was still slow and combined with the files issue, I just decided to use only Linux. In the end, it did not really improve my speeds but I got quite comfortable with Linux and used it with no issues. That was until I got a new laptop an ROG Strix. It was equipped with a dual GPU setup, featuring Intel integrated graphics and an Nvidia graphics card. At first, I noticed weird white or greish lines on my screen. After about half a year of debugging and discussions with my teacher, we decided to send it for repair. The same screen issue kept occurring, and they finally replaced my computer after I had it fixed five times. However, when I received my new computer, there was still a weird refresh issue on my screen; it resembled the flickering of old CRT televisions refreshing. After a lot more research, I discovered that my compositor was the issue. I came to this conclusion by testing two different desktop environments: XFCE and i3. One day, I realized the screen flickering didn’t happen on XFCE, so I started comparing the two environments, eventually leading me to identify the compositor problem. Another issue I encountered with my original Linux install on my old laptop was that I couldn’t use my microphone for some reason. However, after I figured out how Linux audio works and configured PipeWire properly, I was able to get it working. One of the best moments of my experience with Linux was when I realized I wasn’t utilizing my hardware's full potential. I struggled with configuring when to use my integrated graphics and when to use my Nvidia GPU. So, I decided to install and use the proprietary Nvidia graphics drivers, which allowed me to double my battery life while both GPUs were on and almost triple my battery life when the Nvidia GPU was off. Aside from that, I also created some libraries for Node.js built specifically for Linux. For example, I developed a library that allowed Node.js to control Bluetooth on Linux. Later, I found out that others had created similar libraries, but unlike my code, they had external dependencies; I used only core Node.js modules. The similar part was that they also used a Linux command line tool called bluetoothctl. Another library I created for Node.js specific to Linux was for audio routing, enabling me to connect and disconnect audio nodes and view the connections of existing audio nodes. I created this library because I could not find a similar library that did such a thing. In my earlier days, I would create scripts to help set up my coding environment or make running commands quicker. This helped me build my familiarity with Linux. I also used Linux to create kiosk-like interfaces for a school exhibition, using Electron. I had to configure about six Linux laptops to work with it. On those laptops, I fixed any problems and ensured that the same Electron setup would work across all devices. During that time, I was also in charge of managing those devices. Now, I run Arch Linux on my main laptop and don't really have any Linux issues. Personally, I think that it is quite stable now, especially now that I use the LTS Kernel. I have also figured out how to get fan curves, Asus specific features, and RGB working on my laptop with [[https://wiki.archlinux.org/title/Asusctl|Asusctl]] via the [[https://aur.archlinux.org/packages/rog-control-center|ROG Control Center GUI]]. I currently also control my GPU setup via the package [[https://wiki.archlinux.org/title/Supergfxctl|supergfxctl]] ===== Chinese Translation ===== Written By: Steve Translation By: GPT-40 mini and Steve 我大約 14 歲的時候(中學二年級)開始使用Linux 。我的老師 (Renick Bell)向我介紹了 Linux 的世界.當時, 我遇到了效能問題,他問我是否想嘗試 Linux。當時我剛開始使用電腦,所以對於 Windows 還不太熟悉。於是我同意嘗試雙啟動 Linux。他幫我安裝了 Manjaro Linux,並使用 XFCE 窗口管理器。我開始使用它,除了無法在 Windows 中查看我的舊文件外,對於 Linux 本身沒有任何問題。最終,我感覺電腦仍然很慢,加上文件的問題,我決定只使用 Linux。最後,這並沒有真的提高我的速度,但我變得相當習慣 Linux,使用時也沒有任何問題。這一切直到我買了一台新的 ROG Strix 筆記型電腦。它配備了雙 GPU 設置,具有 Intel 集成顯示卡和 Nvidia 顯示卡。起初,我注意到螢幕上有奇怪的白色或灰色線條。經過大約半年的調試和與我的老師討論後,我們決定將它送修。相同的螢幕問題一直出現,最終他們在我修了五次後給我更換了電腦。然而,當我收到新電腦時,螢幕上仍然存在奇怪的刷新問題;這就像老式 CRT 電視的閃爍一樣。 經過更多的研究,我發現是我的合成器出了問題。我通過測試兩種不同的桌面環境:XFCE 和 i3,得出了這個結論。某一天,我意識到在 XFCE 上沒有螢幕閃爍,因此我開始比較這兩個環境,最終導致我識別出合成器問題。 我在舊筆記型電腦上安裝的原始 Linux 系統中遇到的另一個問題是,我無法使用麥克風。然而,在弄清楚 Linux 音頻是如何工作的並正確配置 PipeWire 後,我成功解決了這個問題。我在使用 Linux 的過程中感到最好的時刻之一是意識到我沒有充分利用硬體的潛力。我在配置何時使用集成顯示卡和何時使用 Nvidia GPU 方面掙扎。因此,我決定安裝並使用專有的 Nvidia 顯示驅動程序,這讓我在兩個 GPU 同時運行時能夠將電池壽命翻倍,當 Nvidia GPU 關閉時,電池壽命幾乎增加了三倍。 此外,我還為 Node.js 創建了一些專門為 Linux 開發的庫。例如,我開發了一個庫,允許 Node.js 控制 Linux 上的藍牙。後來,我發現其他人也創建了類似的庫,但與我的代碼不同的是,他們有外部依賴;我只使用了核心的 Node.js 模塊。相似之處在於,他們也使用了一個名為 bluetoothctl 的 Linux 命令行工具。另一個我為 Node.js 創建的專門針對 Linux 的庫是用於音頻路由,使我能夠連接和斷開音頻節點並查看現有音頻節點的連接。我創建這個庫是因為我找不到類似的庫來完成這項功能。 在我早期的日子裡,我會創建腳本來幫助設置我的編程環境或加快運行命令的速度。這幫助我提高了對 Linux 的熟悉度。我還利用 Linux 創建了學校展覽的自助終端界面,使用 Electron。我需要配置約六台 Linux 筆記型電腦使其正常運行。在這些筆記型電腦上,我修復了任何問題,並確保相同的 Electron 設置能在所有設備上運行。在那段時間,我還負責管理這些設備。 現在,我在我的主筆記型電腦上運行 Arch Linux,幾乎沒有遇到任何 Linux 問題。就我個人而言,我認為它現在相當穩定,特別是現在我使用的是 LTS 核心。我還弄清楚了如何通過 ROG 控制中心 GUI 使用 Asusctl 來調整風扇曲線、特定於 Asus 的功能和 RGB 效果。我目前也通過 supergfxctl 套件來控制我的 GPU 設置。