Skip to content

Commit 76160f4

Browse files
committed
Build walker and elephant from source and support nvimd
1 parent ff396f0 commit 76160f4

File tree

18 files changed

+763
-212
lines changed

18 files changed

+763
-212
lines changed

Containerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ ARG BASE_IMAGE=ghcr.io/ublue-os/bluefin-dx:stable-daily
44
# Allow build scripts to be referenced without being copied into the final image
55
FROM scratch AS ctx
66
COPY build_files /
7+
COPY packages /packages
78

89
# Base Image
910
FROM ${BASE_IMAGE}

build_files/build.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ dnf5 -y install fd-find
2020
# Remove extra things
2121
# TODO: Figure out what we don't need from solopasha/hyprland
2222

23-
# Application Launcher - Walker / Elephant
24-
dnf5 -y copr enable errornointernet/packages
25-
dnf5 -y install walker elephant
23+
# Application Launcher - Walker / Elephant (build from source)
24+
/ctx/packages/walker/build.sh
25+
/ctx/packages/elephant/build.sh
2626

2727
# On Screen Display
28-
dnf5 -y copr enable markupstart/SwayOSD
28+
dnf5 -y copr enable codelovr/swayosd
2929
dnf5 -y install swayosd
3030

3131
# Desktop Notifications
@@ -43,6 +43,9 @@ dnf -y install ghostty
4343
dnf5 -y copr enable agriffis/neovim-nightly
4444
dnf5 -y install neovim python3-neovim
4545

46+
# Install nvimd (containerized neovim wrapper) to /usr/local/bin
47+
install -Dm755 /usr/share/hypercube/config/nvim/bin/nvimd /usr/local/bin/nvimd
48+
4649
# Fish shell configs
4750
# Fish doesn't use XDG_CONFIG_DIRS, so we install to /etc/fish
4851
install -Dm644 /usr/share/hypercube/config/fish/config.fish /etc/fish/config.fish

dot_files/ghostty/config

Lines changed: 156 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,157 @@
1-
# Tokyo Night Theme for Ghostty
2-
# Based on the popular Tokyo Night color scheme
3-
4-
# Background and Foreground
5-
background = 1a1b26
6-
foreground = a9b1d6
7-
8-
# Normal colors (palette 0-7)
9-
palette = 0=#32344a
10-
palette = 1=#f7768e
11-
palette = 2=#9ece6a
12-
palette = 3=#e0af68
13-
palette = 4=#7aa2f7
14-
palette = 5=#ad8ee6
15-
palette = 6=#449dab
16-
palette = 7=#787c99
17-
18-
# Bright colors (palette 8-15)
19-
palette = 8=#444b6a
20-
palette = 9=#ff7a93
21-
palette = 10=#b9f27c
22-
palette = 11=#ff9e64
23-
palette = 12=#7da6ff
24-
palette = 13=#bb9af7
25-
palette = 14=#0db9d7
26-
palette = 15=#acb0d0
27-
28-
# Cursor colors
29-
cursor-color = a9b1d6
30-
31-
# Selection colors
32-
selection-background = 7aa2f7
33-
selection-foreground = 1a1b26
1+
# Ghostty keybindings matching WezTerm config
2+
# Leader key is CTRL+a (simulated via prefix since Linux doesn't support global leader)
343

4+
# ----------------------------------------------------------------
5+
# APPLICATION - Behavior and Configuraiton
6+
# ----------------------------------------------------------------
7+
async-backend = auto
8+
desktop-notifications = false
9+
clipboard-trim-trailing-spaces = true
10+
clipboard-read = allow
11+
clipboard-write = allow
12+
13+
# ----------------------------------------------------------------
14+
# APPEARANCE - Hide all chrome
15+
# ----------------------------------------------------------------
16+
17+
window-theme = ghostty
18+
window-decoration = none
19+
gtk-titlebar = false
20+
gtk-tabs-location = bottom
21+
gtk-wide-tabs = false
22+
23+
# ----------------------------------------------------------------
24+
# FONT CONFIGURATION
25+
# ----------------------------------------------------------------
26+
27+
font-family = JetBrainsMono Nerd Font
28+
font-size = 13
29+
30+
# ----------------------------------------------------------------
31+
# TOKYO NIGHT MOON COLOR SCHEME
32+
# Matching Neovim's Tokyo Night Moon theme with darker backgrounds
33+
# ----------------------------------------------------------------
34+
35+
# Background and foreground
36+
background = #222436
37+
foreground = #c8d3f5
38+
39+
# Cursor
40+
cursor-color = #c8d3f5
41+
cursor-text = #222436
42+
43+
# Selection
44+
selection-background = #2f334d
45+
selection-foreground = #c8d3f5
46+
47+
# Black (terminal_black and darker variants)
48+
palette = 0=#1e2030
49+
palette = 8=#444a73
50+
51+
# Red
52+
palette = 1=#ff757f
53+
palette = 9=#ff757f
54+
55+
# Green
56+
palette = 2=#c3e88d
57+
palette = 10=#c3e88d
58+
59+
# Yellow
60+
palette = 3=#ffc777
61+
palette = 11=#ffc777
62+
63+
# Blue
64+
palette = 4=#82aaff
65+
palette = 12=#65bcff
66+
67+
# Magenta/Purple
68+
palette = 5=#c099ff
69+
palette = 13=#fca7ea
70+
71+
# Cyan
72+
palette = 6=#86e1fc
73+
palette = 14=#86e1fc
74+
75+
# White
76+
palette = 7=#c8d3f5
77+
palette = 15=#c8d3f5
78+
79+
# ----------------------------------------------------------------
80+
# APPLICATION
81+
# ----------------------------------------------------------------
82+
83+
# Reload Config
84+
keybind = ctrl+a>shift+r=reload_config
85+
86+
# ----------------------------------------------------------------
87+
# TABS
88+
# ----------------------------------------------------------------
89+
90+
# Rename
91+
keybind = ctrl+a>,=prompt_surface_title
92+
93+
# Show tab navigator
94+
keybind = ctrl+a>w=toggle_tab_overview
95+
96+
# Create a new tab
97+
keybind = ctrl+a>c=new_tab
98+
99+
# Rename current tab (Ghostty doesn't support this natively, but we can use new_tab as closest)
100+
# Note: ctrl+a>, is for rename in WezTerm but Ghostty doesn't have direct rename support
101+
102+
# Move to next/previous tab
103+
keybind = ctrl+a>n=next_tab
104+
keybind = ctrl+a>p=previous_tab
105+
106+
# Close tab (using & which is shift+7, but Ghostty uses physical keys)
107+
keybind = ctrl+a>shift+seven=close_tab
108+
109+
# ----------------------------------------------------------------
110+
# PANES/SPLITS
111+
# ----------------------------------------------------------------
112+
113+
# Make active pane more obvijnihjous - dim unfocused splits
114+
unfocused-split-opacity = 0.75
115+
116+
# Make split dividers visible
117+
#split-divider-color = #c099ff
118+
119+
# Vertical split (|)
120+
keybind = ctrl+a>shift+backslash=new_split:right
121+
122+
# Horizontal split (-)
123+
keybind = ctrl+a>-=new_split:down
124+
125+
# Close/kill active pane
126+
keybind = ctrl+a>x=close_surface
127+
128+
# Swap pane with another (using { which is shift+[)
129+
keybind = ctrl+a>shift+left_bracket=goto_split:previous
130+
131+
# Zoom current pane (toggle)
132+
keybind = ctrl+a>z=toggle_split_zoom
133+
keybind = alt+f=toggle_split_zoom
134+
135+
# Move to next/previous pane
136+
keybind = ctrl+a>semicolon=goto_split:previous
137+
keybind = ctrl+a>o=goto_split:next
138+
139+
# Vim-style pane navigation
140+
keybind = ctrl+a>h=goto_split:left
141+
keybind = ctrl+a>l=goto_split:right
142+
keybind = ctrl+a>k=goto_split:top
143+
keybind = ctrl+a>j=goto_split:bottom
144+
145+
# Pane resizing (ctrl+a>r enters resize mode, then h/j/k/l to resize)
146+
# Note: Ghostty doesn't have key tables/modes like WezTerm, so we use direct bindings
147+
keybind = ctrl+a>r>h=resize_split:left,10
148+
keybind = ctrl+a>r>l=resize_split:right,10
149+
keybind = ctrl+a>r>k=resize_split:up,10
150+
keybind = ctrl+a>r>j=resize_split:down,10
151+
152+
# ----------------------------------------------------------------
153+
# COPY MODE
154+
# ----------------------------------------------------------------
155+
156+
# Activate copy mode (similar to tmux/vim)
157+
keybind = ctrl+a>left_bracket=copy_to_clipboard

dot_files/nvim/.dockerignore

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Ignore Neovim runtime data (will be mounted separately)
2+
.git
3+
*.md
4+
!README.md
5+
LICENSE
6+
7+
# Ignore local plugin data
8+
plugin/
9+
spell/
10+
11+
# Ignore caches and generated files
12+
*.log
13+
*.swp
14+
*.swo
15+
*~
16+
17+
# Ignore OS files
18+
.DS_Store
19+
Thumbs.db

0 commit comments

Comments
 (0)