MIT License

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

深度分析:AllJavi/tartarus-dotfiles

项目背景与痛点

AllJavi/tartarus-dotfiles 是一个基于 awesome-wm 和 gruvbox 主题的个性化配置集合。对于追求极致个性化桌面环境的用户来说,编写和定制配置文件已经是家常便饭。然而,在众多的配置系统中,如何实现高效、灵活且易于维护的配置文件管理系统,成为了一个需要解决的核心问题。tartarus-dotfiles 通过一个高度模块化的配置系统,以及固执于细节的设计理念,解决了这一痛点。

核心技术揭秘

架构设计

AllJavi/tartarus-dotfiles 采用了模块化设计,将配置文件分散到多个子目录和配置文件中,而非单一的大文件。这种设计不仅让配置文件更易于管理和维护,还使得不同功能模块间的耦合度降低,便于扩展和复用。

以下是 tartarus-dotfiles 的配置结构简图:

graph TD A[用户环境初始化] --> B[加载全局配置] B --> C[加载主题配置] B --> D[加载功能模块] C --> E{"gruvbox主题"} C --> F{"使用用户自定义主题"} D --> G[加载快捷键模块] D --> H[加载窗口管理器模块] D --> I[加载系统托盘模块]

其中,模块化的配置系统极大地简化了个性化配置的流程,用户可以通过简单的脚本管理和加载不同的配置文件。此外,tartarus-dotfiles 还为了提高效率,引入了自动部署工具,大大减少了手动配置的负担。

主题与美化

tartarus-dotfiles 选择了 gruvbox 这款流行的主题。gruvbox 以其复古的配色风格闻名,全面覆盖了用户界面的各个方面。但开发者并没有止步于此,而是进一步构建了一套灵活的主题切换机制,允许用户在不修改配置文件的情况下轻松更换主题,甚至是自定义主题。

此外,awesome-wm 的大幅度可定制性,允许对每一处细节进行调校,这为 tartarus-dotfiles 提供了一个展示个性化定制和复杂配置管理的舞台。项目中通过精心调校的美化配置,展现出一个高度定制化的桌面环境,从字体大小到透明度,从图标到壁纸,每一处细节都展现出了作者的用心。

功能亮点与差异

相较于同类竞品,tartarus-dotfiles 的亮点在于其模块化设计和高度自定义能力。巧妙的目录结构管理和自动化部署功能,使得用户可以轻松维护和管理配置文件,同时也为广泛的模块化扩展提供了可能。更为独特的是,项目附带的各类脚本和工具,能够帮助用户快速设置和调试配置。

此外,相对于其他配置文件管理系统,tartarus-dotfiles 不仅提供了丰富的配置内容,还通过详细的文档和示例,让即使是初级用户也能快速上手。

应用场景与落地建议

在生产环境下使用 tartarus-dotfiles,需注意以下几个方面:

  • 初始化脚本的可靠性:初次设置和更新配置时,请确保初始化脚本能正常运行,避免配置文件冲突或丢失。
  • 配置文件的安全性:由于常把敏感设置(如密码管理器配置)包含在 .dotfiles 仓库中,建议使用加密工具如 gnupg 来提高安全性。
  • 性能优化:在配置大量模块和快速响应的系统托盘过程中,可能会影响性能,需要定期测试以评估和优化配置文件。

适合场景包括开发人员,特别是前端和桌面开发人员,以及重视效率与便捷设置的用户。

综合评价

tartarus-dotfiles 展现了awesome-wm搭配gruvbox主题的高效、美观与强大定制能力。从细节到整体架构,均表现出作者对个性化配置的深厚理解与驾驭能力。尽管作为高度个性化配置系统,可能难以直接适用于大范围的用户群体,但它仍为无数追求个性化桌面环境的用户提供了引人注目的解决方案。

优点:

  • 模块化的配置结构,易于管理和扩展。
  • 灵活的主题切换,有助于用户快速更换外观。
  • 强大的美化配置,展现出细致入微的个性化定制可能性。

缺点:

  • 许多细节高度定制,可能存在上手难度,需要时间熟悉配置。
  • 扩展性强,但也可能带来性能问题,需要持续优化。
  • 初始化脚本可靠性需要关注,以保证配置更新和部署的顺畅。

关于

GitHub 原始描述(英文)

Just another awesomewm gruvbox dotfiles

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
127
价值分
71
活跃状态
活跃

语言占比

CSS
HTML
JavaScript
Lua
Shell

贡献者

README

ScreenShots

Table of Contents

General Information 💻

  • OS: EndeavourOS
  • Wallpapers: Guweiz
  • Color Theme: Material Gruvbox
  • Fonts: JetBrains Mono Nerd Font, Custom Icomoon Font
  • Session Manager: LightDM
  • LightDM Theme: lightdm mini greeter
  • WM: AwesomeWM-git
  • Compositor: Picom
  • Terminal: Kitty
  • Shell: Fish
  • Fish Theme: Starship
  • Application Launcher: Rofi
  • Power Menu: Rofi
  • Network Menu: Rofi
  • Pdf Reader: Zathura
  • Code Editor: vscode
  • Spicetify: Fluent
  • Discord: BetterDiscord
  • Search Engine: Firefox
  • Firefox HomePage: PrettyCofee

Hardware specs ⚙️

This is mentioned becouse I have a couple of specific configurations that only work with my computer

  • Two graphics cards (Intel integrated graphics and Nvidia external graphic card)
  • Dual monitor setup

Note: On my os configuration I only use the external graphic card

Important Message

This dotfiles were created to use them as a base not to just copy them into your system. So make sure you deep dive in the code and customize it to your system.

Wallpapers 🌃

Guweiz: Artstation

Main Secundary
Original Original

I modified these images to fit my ultrawide 21:9 screen, which messed up the borders. If you want the best quality, use the original versions of the artwork.

Color Theme 🖌

Material Gruvbox

The original creators: Material Gruvbox

Base Xresources: .Xresources

This color theme is applied on all the apps I customize for this rice

Fonts 🖋

JetBrains Mono Nerd Font: Nerd Fonts

Custom Icomoon Font: Icomoon

I really like to put details and reference tv shows and films I like, so I have created my own custom font with these references and I used them on the rice. You can do it too on icomoon

Preview:

You need to be careful with what nerd font you use because they can overlap between them, I have only tested with JetBrains.

The fastest way to install them is to put it on your ~/.local/share/fonts/ttf/ directory, as you can see on mine ./.local/share/fonts/ttf/

LightDM Mini Greeter 🔒

Main repository: LightDM Mini Greeter

Screenshots:

Preview Wallpaper

If you want to apply the theme just install LightDM Mini Greeter following their instractions and use the lightdm-mini-greeter.conf. Make sure you change the user and the background-image route:

...
# The user to login as.
user = <your-username>
# Whether to show the password input's label.
show-password-label = true
...
# An absolute path to an optional background image.
# The image will be displayed centered & unscaled.
background-image = "<your-own-route>"
# The screen's background color.
background-color = "#282828"
...

In my personal LightDM configuration, I have a display-setup-script that is only necessary if you need to configure your graphics drivers or screen setup. You will need to customize the script for your specific needs.

Awesome 🪄

Requirements

Make sure you check or change the default apps configuration ~/.config/awesome/configuration/apps.lua And if you want to use the spofify widget you need to have spotify CLI installed, it uses dbus to communicate with spotify-client:

git clone https://gist.github.com/fa6258f3ff7b17747ee3.git
cd ./fa6258f3ff7b17747ee3 
chmod +x sp
sudo cp ./sp /usr/local/bin/

Useful Shortcuts

  • MOD + H: To show all the shortcuts
  • MOD + Q: Open/Close Dashboard
  • MOD + Enter: Open Terminal
  • MOD + Shift + C: Close Client

Recomendations

For the dashboard I use my own custom icons and routes. Check careful the theme file and change the global routes for your own routes and use your own icons.

    ...
    -- User profile
    theme.user_picture = ...

    -- folder icons
    theme.code_folder = ...
    theme.design_folder = ...
    theme.teleco_folder = ...
    theme.download_folder = ...
    theme.design3d_folder = ...
    theme.shared_folder = ...
    ...

Starship 🚀

The minimal, blazing-fast, and infinitely customizable prompt for any shell!

Screenshot:

If you don’t want to use my own fish config make sure you launch starship in yours starship init fish | source. The only file you need to use this theme on starship is the startship.toml located on ~/.config.

Rofi Launcher 📤

Modified themes from adi1090x/rofi

Screenshot:

In my ~/.config/rofi/ I have all of his config and feel free to try all of his themes. The one I use and I modify is ~/.config/rofi/launchers/colorful/launcher.sh

Rofi Power Menu🔋

As the launcher I modified some themes from adi1090x/rofi

Screenshot:

This one is located on my ~/.config/rofi/applets/menu/powermenu.sh.

Rofi Network Menu 📡

This rofi menu is from P3rf/rofi-network-manager. As the other ones I only have changed the theme to fit into the rice.

I put all the repo on ~/.config/rofi/rofi-network-manager.

Spicetify 📻

For spicetify I used the Fluent theme with a custom material gruvbox I made.

Screenshot:

BetterDiscord

Theme:

Plugins:

Screenshot:

And as all the other things the theme is modified in ~/.config/BetterDiscord/themes/ClearVision_v6.css

If you want to use the same exact theme you need to upload the secundary wallpaper and link it with the url in the css file

  ...
	/* APP BACKGROUND */
	--background-shading: 40%; /* app background shading (0 for complete smoothness) [default: 100%] */
	--background-overlay: rgba(40, 40, 40, 0.7); /* app background overlay color/gradient [default: rgba(0, 0, 0, 0.6)] */
	--background-image: url(<your-url>); /* app background image (link must be HTTPS) [default: url(https://clearvision.gitlab.io/images/sapphire.jpg)]*/
	--background-position: center; /* app background position [default: center] */
	--background-size: cover; /* app background size [default: cover] */
	--background-repeat: no-repeat; /* app background repeat [default: no-repeat] */
  ...

Firefox StartPage 🏠

The start page is Fluidity and it’s already built. You just need to set up the new tab extension and link it to the live demo of the project. Meanwhile, the Firefox theme is available on the official store Material Gruvbox, so you can download and use it.

Screenshot:

The theme is already available on the web, so you can just select it and fill it with the categories you want.

Blender 🧊

For the material gruvbox theme on Blender, you just need to install it on Preferences -> Theme -> install

Screenshot:

Inspired by 🪐

  • the glorious dotfiles: Big inspiration and learning source for awesomeWM
  • purhan/dotfiles: Really big learning source for awesomeWM (just simpler than the glorious dotfiles)
  • reddit post: Main visual inspiration of what I want
  • distrotube: As a reference to compose all the system with his configuration files

评论

暂无评论