Skip to content

Commit d421da5

Browse files
author
dotfiles-bot
committed
Upd
1 parent 2d0d925 commit d421da5

16 files changed

Lines changed: 1477 additions & 119 deletions

File tree

docs/FONTS.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Font Requirements for Dotfiles
2+
3+
This document lists the fonts required and recommended for the dotfiles configuration.
4+
5+
## Required Fonts
6+
7+
### DejaVu Sans Mono
8+
Primary monospace font used across all terminal emulators and code editors.
9+
10+
**Installation:**
11+
- **Arch Linux**: `sudo pacman -S ttf-dejavu`
12+
- **Debian/Ubuntu**: `sudo apt install fonts-dejavu`
13+
- **Fedora/RHEL**: `sudo dnf install dejavu-sans-mono-fonts`
14+
15+
**Used in:**
16+
- Alacritty terminal
17+
- Kitty terminal
18+
- VSCode editor
19+
- Sublime Text editor
20+
- labwc window manager (UI elements)
21+
- waybar taskbar
22+
23+
## Recommended Fonts
24+
25+
### Liberation Mono
26+
Fallback font, metrics-compatible with Courier New.
27+
28+
**Installation:**
29+
- **Arch Linux**: `sudo pacman -S ttf-liberation`
30+
- **Debian/Ubuntu**: `sudo apt install fonts-liberation`
31+
- **Fedora/RHEL**: `sudo dnf install liberation-mono-fonts`
32+
33+
### Noto Sans Mono
34+
Fallback font with excellent Unicode coverage.
35+
36+
**Installation:**
37+
- **Arch Linux**: `sudo pacman -S noto-fonts`
38+
- **Debian/Ubuntu**: `sudo apt install fonts-noto`
39+
- **Fedora/RHEL**: `sudo dnf install google-noto-sans-mono-fonts`
40+
41+
## Automatic Font Installation
42+
43+
The installer (`scripts/install.py`) automatically checks for required fonts when installing terminal or editor modules:
44+
45+
```bash
46+
# Install dotfiles (will check fonts automatically)
47+
python scripts/install.py install
48+
49+
# Check fonts manually
50+
python scripts/dotfiles_installer/fonts.py
51+
52+
# Check and install optional fonts too
53+
python scripts/dotfiles_installer/fonts.py --optional
54+
55+
# Non-interactive mode (auto-install)
56+
python scripts/dotfiles_installer/fonts.py --non-interactive
57+
```
58+
59+
## Manual Verification
60+
61+
To verify which fonts are installed on your system:
62+
63+
```bash
64+
# List all installed fonts
65+
fc-list
66+
67+
# Check for specific font
68+
fc-list | grep -i "dejavu sans mono"
69+
70+
# Check which font is used for monospace
71+
fc-match monospace
72+
```
73+
74+
## Font Configuration
75+
76+
Font preferences are configured in:
77+
- `modules/system/fontconfig/fonts.conf` - System-wide font configuration
78+
- Individual application configs reference DejaVu Sans Mono directly
79+
80+
The fontconfig configuration prioritizes fonts in this order:
81+
1. DejaVu Sans Mono
82+
2. Liberation Mono
83+
3. Noto Sans Mono
84+
85+
## Troubleshooting
86+
87+
### Font not appearing after installation
88+
89+
Rebuild the font cache:
90+
```bash
91+
fc-cache -fv
92+
```
93+
94+
### Wrong font being used
95+
96+
Check fontconfig configuration:
97+
```bash
98+
fc-match monospace
99+
```
100+
101+
If it's not showing DejaVu Sans Mono, verify the font is installed and fontconfig is properly configured.
102+
103+
### Font rendering issues
104+
105+
Ensure fontconfig is installed and configured:
106+
```bash
107+
# Arch Linux
108+
sudo pacman -S fontconfig
109+
110+
# Debian/Ubuntu
111+
sudo apt install fontconfig
112+
```
113+
114+
## Why DejaVu Sans Mono?
115+
116+
DejaVu Sans Mono was chosen because:
117+
- ✅ Excellent rendering quality on all displays
118+
- ✅ Available in official repositories of all major distros
119+
- ✅ Reliable character spacing and alignment
120+
- ✅ Good Unicode coverage
121+
- ✅ Appropriate for retro Windows 95/98 aesthetic
122+
- ✅ Free and open source (Bitstream Vera derivative)
123+
124+
Previous font (Cascadia Code) had rendering issues with character overlap on some systems.

install-mappings.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,13 @@ rc.xml|openbox: xdg:openbox/rc.xml # modules/desktop/wm/openbo
113113
.xinitrc|openbox: ignore # modules/desktop/wm/openbox
114114
config|sway: xdg:sway/config # modules/desktop/wm/sway (Wayland)
115115
hyprland.conf|hyprland: xdg:hypr/hyprland.conf # modules/desktop/wm/hyprland (Wayland)
116+
rc.xml|labwc: xdg:labwc/rc.xml # modules/desktop/wm/labwc (Wayland)
117+
themerc|labwc: xdg:labwc/themerc # modules/desktop/wm/labwc
118+
autostart|labwc: xdg:labwc/autostart # modules/desktop/wm/labwc
119+
120+
# Waybar (Wayland status bar)
121+
config-win95|waybar: xdg:waybar/config-win95 # modules/desktop/wm/waybar
122+
style-win95.css|waybar: xdg:waybar/style-win95.css # modules/desktop/wm/waybar
116123

117124
# Window Managers - NeXTSTEP Style
118125
WindowMaker|windowmaker: home:GNUstep/Defaults/WindowMaker # modules/desktop/wm/windowmaker
@@ -232,7 +239,7 @@ Package Control.sublime-settings|sublime: xdg:sublime-text/Packages/User/Package
232239
# modules/term
233240
#########################
234241
# Terminal emulator configs (modules/term/*)
235-
alacritty.yml|alacritty: xdg:alacritty/alacritty.yml # modules/term/alacritty
242+
alacritty.toml|alacritty: xdg:alacritty/alacritty.toml # modules/term/alacritty
236243
kitty.conf|kitty: xdg:kitty/kitty.conf # modules/term/kitty
237244
gnome-terminal-settings.sh|gnome-terminal: ignore # modules/term/gnome-terminal (aplicar con bash)
238245
Profile.profile|konsole: xdg_data:konsole/Profile.profile # modules/term/konsole (KDE)

modules/desktop/wm/labwc/autostart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/sh
2+
# labwc autostart - Windows 95/98 Style
3+
# Path: ~/.config/labwc/autostart
4+
5+
# Set wallpaper to teal (Windows 95 default)
6+
swaybg -c 008080 &
7+
8+
# Start waybar with Windows 95 style
9+
waybar -c ~/.config/waybar/config-win95 -s ~/.config/waybar/style-win95.css &
10+
11+
# Notification daemon (optional)
12+
# mako &
13+
14+
# Network manager applet (if available)
15+
# nm-applet --indicator &
16+
17+
# Audio control (if using PipeWire/PulseAudio)
18+
# pavucontrol &

modules/desktop/wm/labwc/rc.xml

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
<?xml version="1.0"?>
2+
<!-- labwc configuration - Windows 95/98 Style para ThinkPad L420 -->
3+
<!-- Path: ~/.config/labwc/rc.xml -->
4+
5+
<labwc_config>
6+
7+
<!-- ===== THEME ===== -->
8+
<theme>
9+
<name>Win95</name>
10+
<cornerRadius>0</cornerRadius>
11+
<keepBorder>yes</keepBorder>
12+
</theme>
13+
14+
<!-- ===== KEYBOARD ===== -->
15+
<keyboard>
16+
<default />
17+
18+
<!-- Windows 95 style keybindings -->
19+
20+
<!-- Alt+F4 - Close window -->
21+
<keybind key="A-F4">
22+
<action name="Close"/>
23+
</keybind>
24+
25+
<!-- Super+Return - Terminal -->
26+
<keybind key="W-Return">
27+
<action name="Execute">
28+
<command>alacritty</command>
29+
</action>
30+
</keybind>
31+
32+
<!-- Super+Space - Run dialog (dmenu) -->
33+
<keybind key="W-space">
34+
<action name="Execute">
35+
<command>dmenu_run -fn 'Sans-9' -nb '#C0C0C0' -nf '#000000' -sb '#000080' -sf '#FFFFFF'</command>
36+
</action>
37+
</keybind>
38+
39+
<!-- Alt+Tab - Window switching -->
40+
<keybind key="A-Tab">
41+
<action name="NextWindow"/>
42+
</keybind>
43+
44+
<keybind key="A-S-Tab">
45+
<action name="PreviousWindow"/>
46+
</keybind>
47+
48+
<!-- Super+D - Show desktop -->
49+
<keybind key="W-d">
50+
<action name="ToggleShowDesktop"/>
51+
</keybind>
52+
53+
<!-- Super+F - Fullscreen -->
54+
<keybind key="W-f">
55+
<action name="ToggleFullscreen"/>
56+
</keybind>
57+
58+
<!-- Super+M - Maximize -->
59+
<keybind key="W-m">
60+
<action name="ToggleMaximize"/>
61+
</keybind>
62+
63+
<!-- Super+Shift+Q - Exit -->
64+
<keybind key="W-S-q">
65+
<action name="Exit"/>
66+
</keybind>
67+
68+
<!-- Workspaces (Virtual Desktops) -->
69+
<keybind key="W-1">
70+
<action name="GoToDesktop"><to>1</to></action>
71+
</keybind>
72+
<keybind key="W-2">
73+
<action name="GoToDesktop"><to>2</to></action>
74+
</keybind>
75+
<keybind key="W-3">
76+
<action name="GoToDesktop"><to>3</to></action>
77+
</keybind>
78+
<keybind key="W-4">
79+
<action name="GoToDesktop"><to>4</to></action>
80+
</keybind>
81+
82+
<!-- Move window to workspace -->
83+
<keybind key="W-S-1">
84+
<action name="SendToDesktop"><to>1</to></action>
85+
</keybind>
86+
<keybind key="W-S-2">
87+
<action name="SendToDesktop"><to>2</to></action>
88+
</keybind>
89+
<keybind key="W-S-3">
90+
<action name="SendToDesktop"><to>3</to></action>
91+
</keybind>
92+
<keybind key="W-S-4">
93+
<action name="SendToDesktop"><to>4</to></action>
94+
</keybind>
95+
96+
</keyboard>
97+
98+
<!-- ===== MOUSE ===== -->
99+
<mouse>
100+
<default />
101+
102+
<!-- Window dragging with Super+Left Click -->
103+
<context name="Frame">
104+
<mousebind button="W-Left" action="Press">
105+
<action name="Move"/>
106+
</mousebind>
107+
<mousebind button="W-Right" action="Press">
108+
<action name="Resize"/>
109+
</mousebind>
110+
</context>
111+
112+
<!-- Title bar actions -->
113+
<context name="Title">
114+
<mousebind button="Left" action="Drag">
115+
<action name="Move"/>
116+
</mousebind>
117+
<mousebind button="Left" action="DoubleClick">
118+
<action name="ToggleMaximize"/>
119+
</mousebind>
120+
<mousebind button="Right" action="Press">
121+
<action name="ShowMenu">
122+
<menu>client-menu</menu>
123+
</action>
124+
</mousebind>
125+
</context>
126+
127+
<!-- Desktop right-click menu -->
128+
<context name="Root">
129+
<mousebind button="Right" action="Press">
130+
<action name="ShowMenu">
131+
<menu>root-menu</menu>
132+
</action>
133+
</mousebind>
134+
</context>
135+
136+
</mouse>
137+
138+
<!-- ===== DESKTOPS (Virtual Desktops) ===== -->
139+
<desktops>
140+
<number>4</number>
141+
<popupTime>0</popupTime>
142+
</desktops>
143+
144+
<!-- ===== WINDOW PLACEMENT ===== -->
145+
<placement>
146+
<policy>automatic</policy>
147+
</placement>
148+
149+
<!-- ===== WINDOW RULES ===== -->
150+
<windowRules>
151+
<!-- Example: Force certain apps to specific workspaces -->
152+
<!-- <windowRule identifier="firefox">
153+
<action name="SetDesktop"><to>2</to></action>
154+
</windowRule> -->
155+
</windowRules>
156+
157+
<!-- ===== RESISTANCE ===== -->
158+
<resistance>
159+
<screenEdgeStrength>20</screenEdgeStrength>
160+
<windowEdgeStrength>20</windowEdgeStrength>
161+
</resistance>
162+
163+
<!-- ===== FOCUS ===== -->
164+
<focus>
165+
<followMouse>no</followMouse>
166+
<raiseOnFocus>yes</raiseOnFocus>
167+
</focus>
168+
169+
<!-- ===== MENUS ===== -->
170+
<!-- Root menu (right-click desktop) -->
171+
<!-- This would typically be in a separate menu.xml file -->
172+
173+
</labwc_config>

0 commit comments

Comments
 (0)