The difference in behavior between `xterm` and `uxterm` when launched from the Openbox menu is due to how these two programs are built and
how they handle X resources. Here’s why this happens and how to fix it:
---
### **Key Differences Between `xterm` and `uxterm`**
1. **`xterm`**:
- The standard X Terminal Emulator.
- Relies on `.Xresources` for configuration (e.g., font size).
- Can be overridden by command-line options like `-fs`.
2. **`uxterm`**:
- A wrapper around `xterm` that uses the **Xft (X FreeType) font system** by default.
- Ignores some `.Xresources` settings (e.g., `XTerm*faceSize`) because it prioritizes Xft fonts.
- Requires explicit Xft font settings (e.g., `XTerm*font: xft:DejaVu Sans Mono:size=14`).
---
### **Why `uxterm` Doesn’t Respect `.Xresources`**
- `uxterm` is designed to use **Xft fonts**, which are specified differently in `.Xresources`.
- If you only set `XTerm*faceSize` (a non-Xft setting), `uxterm` will ignore it.
---
### **How to Fix `uxterm` Font Size**
1. **Edit `.Xresources`**:
Replace or add an Xft font entry:
```plaintext
XTerm*font: xft:DejaVu Sans Mono:size=14
```
(Replace `DejaVu Sans Mono` with your preferred font.)
2. **Merge `.Xresources`**:
Run:
```bash
xrdb -merge ~/.Xresources
```
3. **Update Openbox Menu**:
Ensure the menu entry for `uxterm` includes the correct command (if needed):
```xml
<item label="UXTerm">
<action name="Execute">
<command>uxterm -fn "xft:DejaVu Sans Mono:size=14"</command>
</action>
</item>
```
---
### **Alternative: Force `uxterm` to Use `.Xresources`**
If you want `uxterm` to respect `XTerm*faceSize`, you can launch it with:
```bash
uxterm -fa "DejaVu Sans Mono" -fs 14
```
But this is less reliable than using Xft fonts.
---
### **Summary**
- **`xterm`**: Works with `XTerm*faceSize` in `.Xresources`.
- **`uxterm`**: Requires `XTerm*font: xft:...` in `.Xresources`.
- **Fix**: Update `.Xresources` to use Xft fonts and ensure `xrdb -merge` runs at startup.