Skip to content

Commit dbf75c5

Browse files
committed
Fix skel
1 parent b17416a commit dbf75c5

File tree

2 files changed

+43
-28
lines changed

2 files changed

+43
-28
lines changed

build_files/hypercube/03-hypercube-configs.sh

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,47 @@ sed -i 's|^SHELL=.*|SHELL=/usr/bin/fish|' /etc/default/useradd 2>/dev/null || \
2929
# Starship config is read from STARSHIP_CONFIG env var set in fish config
3030
# Config lives at /usr/share/hypercube/config/starship/starship.toml (read-only)
3131

32-
### Wezterm configs
33-
# Wezterm doesn't support XDG_CONFIG_DIRS for system defaults
34-
install -Dm644 "${CONFIG_DIR}/wezterm/wezterm.lua" /etc/skel/.config/wezterm/wezterm.lua
32+
### Ghostty terminal - stub that sources system config
33+
# Users can customize by adding settings after the config-file line
34+
mkdir -p /etc/skel/.config/ghostty
35+
cat > /etc/skel/.config/ghostty/config << 'EOF'
36+
# Hypercube Ghostty Configuration
37+
# System defaults are sourced below. Add your customizations after this line.
38+
# To replace defaults entirely, remove or comment out the config-file line.
3539
36-
### GTK theme settings - install to /etc/skel for new users
37-
install -Dm644 "${CONFIG_DIR}/gtk-3.0/settings.ini" /etc/skel/.config/gtk-3.0/settings.ini
38-
install -Dm644 "${CONFIG_DIR}/gtk-4.0/settings.ini" /etc/skel/.config/gtk-4.0/settings.ini
40+
config-file = /usr/share/hypercube/config/ghostty/config
3941
40-
### Git UI tools configs (Tokyo Night themed)
41-
install -Dm644 "${CONFIG_DIR}/gitui/theme.ron" /etc/skel/.config/gitui/theme.ron
42-
install -Dm644 "${CONFIG_DIR}/gitui/key_bindings.ron" /etc/skel/.config/gitui/key_bindings.ron
43-
install -Dm644 "${CONFIG_DIR}/lazygit/config.yml" /etc/skel/.config/lazygit/config.yml
42+
# Your customizations below:
43+
EOF
44+
45+
### Wezterm terminal - stub that sources system config
46+
# Users can customize by modifying the config table after dofile()
47+
mkdir -p /etc/skel/.config/wezterm
48+
cat > /etc/skel/.config/wezterm/wezterm.lua << 'EOF'
49+
-- Hypercube Wezterm Configuration
50+
-- System defaults are loaded below. Add your customizations after this line.
51+
-- To replace defaults entirely, remove the dofile line and start fresh.
52+
53+
local config = dofile("/usr/share/hypercube/config/wezterm/wezterm.lua")
54+
55+
-- Your customizations below:
56+
-- Example: config.font_size = 14
57+
58+
return config
59+
EOF
60+
61+
### GTK theme settings - install to /etc/xdg/ for system-wide defaults
62+
# Users can override by creating ~/.config/gtk-3.0/settings.ini
63+
install -Dm644 "${CONFIG_DIR}/gtk-3.0/settings.ini" /etc/xdg/gtk-3.0/settings.ini
64+
install -Dm644 "${CONFIG_DIR}/gtk-4.0/settings.ini" /etc/xdg/gtk-4.0/settings.ini
65+
66+
### Git UI tools (gitui, lazygit), Quickshell
67+
# These support XDG_CONFIG_DIRS and will find configs in /usr/share/hypercube/config/
68+
# No skel copy needed - users can override by creating ~/.config/<app>/
4469

4570
### Qt6 theming (Tokyo Night color scheme)
46-
install -Dm644 "${CONFIG_DIR}/qt6ct/qt6ct.conf" /etc/skel/.config/qt6ct/qt6ct.conf
71+
# Qt6ct supports XDG_CONFIG_DIRS for system-wide defaults
72+
install -Dm644 "${CONFIG_DIR}/qt6ct/qt6ct.conf" /etc/xdg/qt6ct/qt6ct.conf
4773
install -Dm644 "${CONFIG_DIR}/qt6ct/colors/TokyoNight.conf" /usr/share/qt6ct/colors/TokyoNight.conf
4874

49-
### Quickshell launcher configuration
50-
if [ -d "${CONFIG_DIR}/quickshell" ]; then
51-
echo "Installing Quickshell launcher configuration..."
52-
mkdir -p /etc/skel/.config/quickshell
53-
cp -r "${CONFIG_DIR}/quickshell/"* /etc/skel/.config/quickshell/
54-
echo "Quickshell configuration installed successfully"
55-
fi
56-
5775
echo "Hypercube configurations installed successfully"

dot_files/nvim/Dockerfile

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -193,22 +193,19 @@ RUN npm install -g \
193193
# =============================================================================
194194
# LAYER 11: Directory setup & environment (changes rarely)
195195
# =============================================================================
196-
RUN mkdir -p /home/${USERNAME}/.config/nvim \
197-
&& mkdir -p /home/${USERNAME}/.local/share/nvim \
198-
&& mkdir -p /home/${USERNAME}/.local/state/nvim \
199-
&& mkdir -p /home/${USERNAME}/.cache/nvim \
200-
&& mkdir -p /home/${USERNAME}/workspace
196+
# Note: nvim data/state/cache dirs are created on host by nvimd script
197+
# and mounted at runtime. Only create workspace dir here.
198+
RUN mkdir -p /home/${USERNAME}/workspace
201199

202200
# Install Ghostty terminfo for terminal compatibility
203201
RUN curl -fsSL https://raw.githubusercontent.com/ghostty-org/ghostty/main/src/terminfo/ghostty.terminfo \
204202
| tic -x -o ~/.terminfo -
205203

206204
# =============================================================================
207-
# LAYER 12: Pre-install treesitter parsers (changes rarely)
205+
# LAYER 12: OSC52 clipboard setup (changes rarely)
208206
# =============================================================================
209-
RUN nvim --headless \
210-
-c "TSInstallSync bash c diff dockerfile fish git_config git_rebase gitattributes gitcommit gitignore go gomod gosum gowork hcl helm html javascript jsdoc json jsonc lua luadoc luap markdown markdown_inline printf python query regex ron rust sql terraform toml tsx typescript vim vimdoc xml yaml" \
211-
-c "qall"
207+
# Note: Treesitter parsers are not pre-installed because the data directory
208+
# is mounted from host at runtime. Parsers will install on first use.
212209

213210
# Create OSC52 clipboard init (loaded before user config)
214211
RUN echo "vim.g.clipboard = { \

0 commit comments

Comments
 (0)