feat: added alacritty and oxwm cc0d388a
Steve · 2026-08-16 16:35 4 file(s) · +433 −2
alacritty/alacritty.toml (added) +70 −0
1 +
[general]
2 +
live_config_reload = true
3 +
4 +
[env]
5 +
TERM = "xterm-256color"
6 +
7 +
[window]
8 +
decorations = "None"
9 +
dimensions = { columns = 85, lines = 30 }
10 +
padding = { x = 10, y = 4 }
11 +
dynamic_padding = false
12 +
opacity = 1.0
13 +
14 +
[font]
15 +
size = 14
16 +
17 +
[font.normal]
18 +
family = "BerkeleyMono Nerd Font"
19 +
style = "Regular"
20 +
21 +
[font.bold]
22 +
family = "BerkeleyMono Nerd Font"
23 +
style = "Bold"
24 +
25 +
[font.italic]
26 +
family = "BerkeleyMono Nerd Font"
27 +
style = "Italic"
28 +
29 +
[font.bold_italic]
30 +
family = "BerkeleyMono Nerd Font"
31 +
style = "Bold Italic"
32 +
33 +
[mouse]
34 +
hide_when_typing = true
35 +
36 +
[cursor]
37 +
style = { shape = "Block", blinking = "Off" }
38 +
39 +
# Darkmatter
40 +
[colors.primary]
41 +
background = "#121113"
42 +
foreground = "#ffffff"
43 +
44 +
[colors.cursor]
45 +
text = "#121113"
46 +
cursor = "#ffffff"
47 +
48 +
[colors.selection]
49 +
text = "#000000"
50 +
background = "#222222"
51 +
52 +
[colors.normal]
53 +
black = "#121113"
54 +
red = "#5f8787"
55 +
green = "#fbcb97"
56 +
yellow = "#e78a53"
57 +
blue = "#888888"
58 +
magenta = "#999999"
59 +
cyan = "#aaaaaa"
60 +
white = "#c1c1c1"
61 +
62 +
[colors.bright]
63 +
black = "#333333"
64 +
red = "#5f8787"
65 +
green = "#fbcb97"
66 +
yellow = "#e78a53"
67 +
blue = "#888888"
68 +
magenta = "#999999"
69 +
cyan = "#aaaaaa"
70 +
white = "#c1c1c1"
oxwm/config.lua (added) +360 −0
1 +
---@meta
2 +
-------------------------------------------------------------------------------
3 +
-- OXWM Configuration File
4 +
-------------------------------------------------------------------------------
5 +
-- This is the default configuration for OXWM, a dynamic window manager.
6 +
-- Edit this file and reload with Mod+Shift+R (no compilation needed)
7 +
--
8 +
-- For more information about configuring OXWM, see the documentation.
9 +
-- The Lua Language Server provides autocomplete and type checking.
10 +
-------------------------------------------------------------------------------
11 +
12 +
---Load type definitions for LSP
13 +
---@module 'oxwm'
14 +
15 +
-------------------------------------------------------------------------------
16 +
-- Variables
17 +
-------------------------------------------------------------------------------
18 +
-- Define your variables here for easy customization throughout the config.
19 +
-- This makes it simple to change keybindings, colors, and settings in one place.
20 +
21 +
-- Modifier key: "Mod4" is the Super/Windows key, "Mod1" is Alt
22 +
local modkey = "Mod4"
23 +
24 +
-- Terminal emulator command (defaults to alacritty)
25 +
local terminal = "alacritty"
26 +
27 +
-- Color palette - customize these to match your theme
28 +
-- Alternatively you can import other files in here, such as
29 +
-- local colors = require("colors.lua") and make colors.lua a file
30 +
-- in the ~/.config/oxwm directory
31 +
-- Darkmatter (matches wezterm/ghostty theme)
32 +
local colors = {
33 +
    fg = "#ffffff",
34 +
    red = "#e78a53",
35 +
    bg = "#121113",
36 +
    cyan = "#aaaaaa",
37 +
    green = "#fbcb97",
38 +
    lavender = "#999999",
39 +
    light_blue = "#888888",
40 +
    grey = "#333333",
41 +
    blue = "#5f8787",
42 +
    purple = "#c1c1c1",
43 +
}
44 +
45 +
-- Workspace tags - can be numbers, names, or icons (requires a Nerd Font)
46 +
-- The number of tags is deduced from the size of this table (up to a max of 12).
47 +
-- The default is 9. To use more, add entries here and uncomment the matching
48 +
-- keybinds for tags 10-12 further down in this file.
49 +
local tags = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }
50 +
-- local tags = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" } -- Example of 12 tags
51 +
-- local tags = { "", "󰊯", "", "", "󰙯", "󱇤", "", "󱘶", "󰧮" } -- Example of nerd font icon tags
52 +
53 +
-- Font for the status bar (use "fc-list" to see available fonts)
54 +
local bar_font = "BerkeleyMono Nerd Font:style=Bold:size=12"
55 +
56 +
-- Define your blocks
57 +
-- Similar to widgets in qtile, or dwmblocks
58 +
local blocks = {
59 +
    oxwm.bar.block.ram({
60 +
        format = "Ram: {used}/{total} GB",
61 +
        interval = 5,
62 +
        color = colors.light_blue,
63 +
        underline = true,
64 +
    }),
65 +
    oxwm.bar.block.static({
66 +
        text = "│",
67 +
        interval = 999999999,
68 +
        color = colors.lavender,
69 +
        underline = false,
70 +
    }),
71 +
    oxwm.bar.block.shell({
72 +
        format = "{}",
73 +
        command = "uname -r",
74 +
        interval = 999999999,
75 +
        color = colors.red,
76 +
        underline = true,
77 +
    }),
78 +
    oxwm.bar.block.static({
79 +
        text = "│",
80 +
        interval = 999999999,
81 +
        color = colors.lavender,
82 +
        underline = false,
83 +
    }),
84 +
    oxwm.bar.block.datetime({
85 +
        format = "{}",
86 +
        date_format = "%a, %b %d - %-I:%M %P",
87 +
        interval = 1,
88 +
        color = colors.cyan,
89 +
        underline = true,
90 +
    }),
91 +
    -- Uncomment to add battery status (useful for laptops)
92 +
    oxwm.bar.block.battery({
93 +
        format = "Bat: {}%",
94 +
        charging = "⚡ Bat: {}%",
95 +
        discharging = "- Bat: {}%",
96 +
        full = "✓ Bat: {}%",
97 +
        interval = 30,
98 +
        color = colors.green,
99 +
        underline = true,
100 +
        -- click: run a command when the block is clicked
101 +
        -- click = "alacritty -e btop",
102 +
        -- click = { command = "bluetui", floating = true },
103 +
    }),
104 +
};
105 +
106 +
-------------------------------------------------------------------------------
107 +
-- Basic Settings
108 +
-------------------------------------------------------------------------------
109 +
oxwm.set_terminal(terminal)
110 +
oxwm.set_modkey(modkey) -- This is for Mod + mouse binds, such as drag/resize
111 +
oxwm.set_tags(tags)
112 +
113 +
-- Set default layout (tiling by default)
114 +
-- oxwm.set_layout("tiling")
115 +
116 +
-------------------------------------------------------------------------------
117 +
-- Layouts
118 +
-------------------------------------------------------------------------------
119 +
-- Set custom symbols for layouts (displayed in the status bar)
120 +
-- Available layouts: "tiling", "normie" (floating), "grid", "monocle", "tabbed", "dwindle"
121 +
oxwm.set_layout_symbol("tiling", "[T]")
122 +
oxwm.set_layout_symbol("normie", "[F]")
123 +
oxwm.set_layout_symbol("tabbed", "[=]")
124 +
-- oxwm.set_layout_symbol("dwindle", "[\\]")
125 +
126 +
-- Example: bind dwindle (fibonacci) layout
127 +
-- oxwm.key.bind({ modkey }, "R", oxwm.layout.set("dwindle"))
128 +
129 +
-- Set default layout of specific tag (tag_index, layout_name)
130 +
-- Unset value uses oxwm.set_layout value
131 +
-- oxwm.set_tag_layout(1, "grid")
132 +
133 +
-------------------------------------------------------------------------------
134 +
-- Appearance
135 +
-------------------------------------------------------------------------------
136 +
-- Border configuration
137 +
138 +
-- Width in pixels
139 +
oxwm.border.set_width(2)
140 +
-- Color of focused window border
141 +
oxwm.border.set_focused_color(colors.blue)
142 +
-- Color of unfocused window borders
143 +
oxwm.border.set_unfocused_color(colors.grey)
144 +
145 +
-- Where floating windows spawn: "top-left", "top-center", "top-right",
146 +
-- "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right"
147 +
oxwm.set_floating_position("center")
148 +
149 +
-- Smart Enabled = No border if 1 window
150 +
oxwm.gaps.set_smart(true)
151 +
-- Inner gaps (horizontal, vertical) in pixels
152 +
oxwm.gaps.set_inner(5, 5)
153 +
-- Outer gaps (horizontal, vertical) in pixels
154 +
oxwm.gaps.set_outer(5, 5)
155 +
156 +
-------------------------------------------------------------------------------
157 +
-- Window Rules
158 +
-------------------------------------------------------------------------------
159 +
-- Rules allow you to automatically configure windows based on their properties
160 +
-- You can match windows by class, instance, title, or role
161 +
-- Available properties: floating, tag, fullscreen, etc.
162 +
--
163 +
-- Common use cases:
164 +
-- - Force floating for certain applications (dialogs, utilities)
165 +
-- - Send specific applications to specific workspaces
166 +
-- - Configure window behavior based on title or class
167 +
168 +
-- Examples (uncomment to use):
169 +
oxwm.rule.add({ instance = "gimp", floating = true })
170 +
-- oxwm.rule.add({ class = "Alacritty", tag = 9, focus = true })
171 +
-- oxwm.rule.add({ class = "firefox", title = "Library", floating = true })
172 +
-- oxwm.rule.add({ class = "firefox", tag = 2 })
173 +
-- oxwm.rule.add({ instance = "mpv", floating = true })
174 +
175 +
-- To find window properties, use xprop and click on the window
176 +
-- WM_CLASS(STRING) shows both instance and class (instance, class)
177 +
178 +
-------------------------------------------------------------------------------
179 +
-- Status Bar Configuration
180 +
-------------------------------------------------------------------------------
181 +
-- Font configuration
182 +
oxwm.bar.set_font(bar_font)
183 +
184 +
-- Position configuration (top/bottom, top is default)
185 +
-- oxwm.bar.set_position("bottom")
186 +
187 +
-- Set your blocks here (defined above)
188 +
oxwm.bar.set_blocks(blocks)
189 +
190 +
-- Bar color schemes (for workspace tag display)
191 +
-- Parameters: foreground, background, border
192 +
193 +
-- Unoccupied tags
194 +
oxwm.bar.set_scheme_normal(colors.fg, colors.bg, colors.grey)
195 +
-- Occupied tags
196 +
oxwm.bar.set_scheme_occupied(colors.cyan, colors.bg, colors.cyan)
197 +
-- Currently selected tag
198 +
oxwm.bar.set_scheme_selected(colors.cyan, colors.bg, colors.purple)
199 +
-- Urgent tags (windows requesting attention)
200 +
oxwm.bar.set_scheme_urgent(colors.red, colors.bg, colors.red)
201 +
202 +
-- Hide tags that have no windows and are not selected
203 +
-- oxwm.bar.set_hide_vacant_tags(true)
204 +
205 +
-------------------------------------------------------------------------------
206 +
-- Keybindings
207 +
-------------------------------------------------------------------------------
208 +
-- Keybindings are defined using oxwm.key.bind(modifiers, key, action)
209 +
-- Modifiers: {"Mod4"}, {"Mod1"}, {"Shift"}, {"Control"}, or combinations like {"Mod4", "Shift"}
210 +
-- Keys: Use uppercase for letters (e.g., "Return", "H", "J", "K", "L")
211 +
-- Actions: Functions that return actions (e.g., oxwm.spawn(), oxwm.client.kill())
212 +
--
213 +
-- A list of available keysyms can be found in the X11 keysym definitions.
214 +
-- Common keys: Return, Space, Tab, Escape, Backspace, Delete, Left, Right, Up, Down
215 +
216 +
-- Basic window management
217 +
218 +
oxwm.key.bind({ modkey }, "Return", oxwm.spawn_terminal())
219 +
-- Launch Dmenu
220 +
oxwm.key.bind({ modkey }, "D", oxwm.spawn({ "sh", "-c", "dmenu_run -l 10" }))
221 +
-- Copy screenshot to clipboard
222 +
oxwm.key.bind({ modkey }, "S", oxwm.spawn({ "sh", "-c", "maim -s | xclip -selection clipboard -t image/png" }))
223 +
oxwm.key.bind({ modkey }, "W", oxwm.client.kill())
224 +
225 +
-- Keybind overlay - Shows important keybindings on screen
226 +
oxwm.key.bind({ modkey, "Shift" }, "Slash", oxwm.show_keybinds())
227 +
228 +
-- Window state toggles
229 +
oxwm.key.bind({ modkey, "Shift" }, "F", oxwm.client.toggle_fullscreen())
230 +
oxwm.key.bind({ modkey, "Shift" }, "Space", oxwm.client.toggle_floating())
231 +
232 +
-- Layout management
233 +
oxwm.key.bind({ modkey }, "F", oxwm.layout.set("normie"))
234 +
oxwm.key.bind({ modkey }, "C", oxwm.layout.set("tiling"))
235 +
-- Cycle through layouts
236 +
oxwm.key.bind({ modkey }, "N", oxwm.layout.cycle())
237 +
238 +
-- Master area controls (tiling layout)
239 +
240 +
-- Decrease/Increase master area width
241 +
oxwm.key.bind({ modkey }, "H", oxwm.set_master_factor(-5))
242 +
oxwm.key.bind({ modkey }, "L", oxwm.set_master_factor(5))
243 +
-- Enable tiled resize mode: Mod+RMB drag adjusts mfact instead of floating
244 +
-- oxwm.tiled_resize_mode(true)
245 +
-- Increment/Decrement number of master windows
246 +
oxwm.key.bind({ modkey }, "I", oxwm.inc_num_master(1))
247 +
oxwm.key.bind({ modkey }, "P", oxwm.inc_num_master(-1))
248 +
249 +
-- Gaps toggle
250 +
oxwm.key.bind({ modkey }, "A", oxwm.toggle_gaps())
251 +
-- Bar toggle
252 +
oxwm.key.bind({ modkey }, "B", oxwm.toggle_bar())
253 +
254 +
-- Window manager controls
255 +
oxwm.key.bind({ modkey, "Shift" }, "Q", oxwm.quit())
256 +
oxwm.key.bind({ modkey, "Shift" }, "R", oxwm.restart())
257 +
258 +
-- Focus movement [1 for up in the stack, -1 for down]
259 +
oxwm.key.bind({ modkey }, "J", oxwm.client.focus_stack(1))
260 +
oxwm.key.bind({ modkey }, "K", oxwm.client.focus_stack(-1))
261 +
262 +
-- Window movement (swap position in stack)
263 +
oxwm.key.bind({ modkey, "Shift" }, "J", oxwm.client.move_stack(1))
264 +
oxwm.key.bind({ modkey, "Shift" }, "K", oxwm.client.move_stack(-1))
265 +
266 +
-- Multi-monitor support
267 +
268 +
-- Focus next/previous Monitors
269 +
oxwm.key.bind({ modkey }, "Comma", oxwm.monitor.focus(-1))
270 +
oxwm.key.bind({ modkey }, "Period", oxwm.monitor.focus(1))
271 +
-- Move window to next/previous Monitors
272 +
oxwm.key.bind({ modkey, "Shift" }, "Comma", oxwm.monitor.tag(-1))
273 +
oxwm.key.bind({ modkey, "Shift" }, "Period", oxwm.monitor.tag(1))
274 +
275 +
-- Warp the cursor to the focused monitor when switching monitors
276 +
-- oxwm.monitor.warp_cursor(true)
277 +
-- Warp the cursor along when sending a window to another monitor
278 +
-- oxwm.monitor.warp_cursor_on_send(true)
279 +
280 +
-- Workspace (tag) navigation
281 +
-- Switch to workspace N (tags are 0-indexed, so tag "1" is index 0)
282 +
oxwm.key.bind({ modkey }, "1", oxwm.tag.view(0))
283 +
oxwm.key.bind({ modkey }, "2", oxwm.tag.view(1))
284 +
oxwm.key.bind({ modkey }, "3", oxwm.tag.view(2))
285 +
oxwm.key.bind({ modkey }, "4", oxwm.tag.view(3))
286 +
oxwm.key.bind({ modkey }, "5", oxwm.tag.view(4))
287 +
oxwm.key.bind({ modkey }, "6", oxwm.tag.view(5))
288 +
oxwm.key.bind({ modkey }, "7", oxwm.tag.view(6))
289 +
oxwm.key.bind({ modkey }, "8", oxwm.tag.view(7))
290 +
oxwm.key.bind({ modkey }, "9", oxwm.tag.view(8))
291 +
-- Tags 10-12 (opt-in): set 12 tags above, then pick keys you like and uncomment.
292 +
-- oxwm.key.bind({ modkey }, "0", oxwm.tag.view(9))
293 +
-- oxwm.key.bind({ modkey }, "minus", oxwm.tag.view(10))
294 +
-- oxwm.key.bind({ modkey }, "equal", oxwm.tag.view(11))
295 +
296 +
-- Move focused window to workspace N
297 +
oxwm.key.bind({ modkey, "Shift" }, "1", oxwm.tag.move_to(0))
298 +
oxwm.key.bind({ modkey, "Shift" }, "2", oxwm.tag.move_to(1))
299 +
oxwm.key.bind({ modkey, "Shift" }, "3", oxwm.tag.move_to(2))
300 +
oxwm.key.bind({ modkey, "Shift" }, "4", oxwm.tag.move_to(3))
301 +
oxwm.key.bind({ modkey, "Shift" }, "5", oxwm.tag.move_to(4))
302 +
oxwm.key.bind({ modkey, "Shift" }, "6", oxwm.tag.move_to(5))
303 +
oxwm.key.bind({ modkey, "Shift" }, "7", oxwm.tag.move_to(6))
304 +
oxwm.key.bind({ modkey, "Shift" }, "8", oxwm.tag.move_to(7))
305 +
oxwm.key.bind({ modkey, "Shift" }, "9", oxwm.tag.move_to(8))
306 +
-- oxwm.key.bind({ modkey, "Shift" }, "0", oxwm.tag.move_to(9))
307 +
-- oxwm.key.bind({ modkey, "Shift" }, "minus", oxwm.tag.move_to(10))
308 +
-- oxwm.key.bind({ modkey, "Shift" }, "equal", oxwm.tag.move_to(11))
309 +
310 +
-- Combo view (view multiple tags at once) {argos_nothing}
311 +
-- Example: Mod+Ctrl+2 while on tag 1 will show BOTH tags 1 and 2
312 +
oxwm.key.bind({ modkey, "Control" }, "1", oxwm.tag.toggleview(0))
313 +
oxwm.key.bind({ modkey, "Control" }, "2", oxwm.tag.toggleview(1))
314 +
oxwm.key.bind({ modkey, "Control" }, "3", oxwm.tag.toggleview(2))
315 +
oxwm.key.bind({ modkey, "Control" }, "4", oxwm.tag.toggleview(3))
316 +
oxwm.key.bind({ modkey, "Control" }, "5", oxwm.tag.toggleview(4))
317 +
oxwm.key.bind({ modkey, "Control" }, "6", oxwm.tag.toggleview(5))
318 +
oxwm.key.bind({ modkey, "Control" }, "7", oxwm.tag.toggleview(6))
319 +
oxwm.key.bind({ modkey, "Control" }, "8", oxwm.tag.toggleview(7))
320 +
oxwm.key.bind({ modkey, "Control" }, "9", oxwm.tag.toggleview(8))
321 +
-- oxwm.key.bind({ modkey, "Control" }, "0", oxwm.tag.toggleview(9))
322 +
-- oxwm.key.bind({ modkey, "Control" }, "minus", oxwm.tag.toggleview(10))
323 +
-- oxwm.key.bind({ modkey, "Control" }, "equal", oxwm.tag.toggleview(11))
324 +
325 +
-- Multi tag (window on multiple tags)
326 +
-- Example: Mod+Ctrl+Shift+2 puts focused window on BOTH current tag and tag 2
327 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "1", oxwm.tag.toggletag(0))
328 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "2", oxwm.tag.toggletag(1))
329 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "3", oxwm.tag.toggletag(2))
330 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "4", oxwm.tag.toggletag(3))
331 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "5", oxwm.tag.toggletag(4))
332 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "6", oxwm.tag.toggletag(5))
333 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "7", oxwm.tag.toggletag(6))
334 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "8", oxwm.tag.toggletag(7))
335 +
oxwm.key.bind({ modkey, "Control", "Shift" }, "9", oxwm.tag.toggletag(8))
336 +
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "0", oxwm.tag.toggletag(9))
337 +
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "minus", oxwm.tag.toggletag(10))
338 +
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "equal", oxwm.tag.toggletag(11))
339 +
340 +
-------------------------------------------------------------------------------
341 +
-- Advanced: Keychords
342 +
-------------------------------------------------------------------------------
343 +
-- Keychords allow you to bind multiple-key sequences (like Emacs or Vim)
344 +
-- Format: {{modifiers}, key1}, {{modifiers}, key2}, ...
345 +
-- Example: Press Mod4+Space, then release and press T to spawn a terminal
346 +
oxwm.key.chord({
347 +
    { { modkey }, "Space" },
348 +
    { {},         "T" }
349 +
}, oxwm.spawn_terminal())
350 +
351 +
-------------------------------------------------------------------------------
352 +
-- Autostart
353 +
-------------------------------------------------------------------------------
354 +
-- Commands to run once when OXWM starts
355 +
-- Uncomment and modify these examples, or add your own
356 +
357 +
-- oxwm.autostart("picom")
358 +
-- oxwm.autostart("feh --bg-scale ~/wallpaper.jpg")
359 +
-- oxwm.autostart("dunst")
360 +
-- oxwm.autostart("nm-applet")
wezterm/.wezterm.lua +1 −1
72 72
config.keys = {
73 73
  {
74 74
    key = 'k',
75 -
    mods = 'SUPER',
75 +
    mods = 'SUPER|CTRL',
76 76
    action = wezterm.action.Multiple {
77 77
      wezterm.action.SendKey { key = 'q', mods = 'CTRL' },  -- send prefix (C-q)
78 78
      wezterm.action.SendKey { key = 'T' },                  -- send T
zsh/dot-zshrc +2 −1
138 138
alias ff='fastfetch -c ~/.config/fastfetch/presets/examples/20.jsonc'
139 139
alias nvimrc='nvim ~/.config/nvim'
140 140
alias shitter='ssh itter'
141 -
alias tailscale='/Applications/Tailscale.app/Contents/MacOS/Tailscale'
141 +
# alias tailscale='/Applications/Tailscale.app/Contents/MacOS/Tailscale'
142 142
alias ai='aichat'
143 143
alias system='macchina'
144 144
alias bonsai='cbonsai -li -t 0.4'
251 251
# zsh-autosuggestions and syntax highlighting
252 252
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
253 253
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
254 +
export PATH="$HOME/.local/bin:$PATH"