chore: cleaned up old repos c30e46b9
Steve · 2026-10-23 20:09 3 file(s) · +0 −549
cwm/dot-cwmrc (deleted) +0 −13
1 -
# ~/.cwmrc
2 -
3 -
fontname "sans-serif:pixelsize=14"
4 -
sticky yes
5 -
gap 0 0 0 0
6 -
7 -
# Applications
8 -
command "term" "st"
9 -
10 -
# Key bindings
11 -
# NOTE: cwm modifier prefixes are C=Control, M=Meta/Alt, S=Shift, 4=Mod4(Super/Windows), 5=Mod5(AltGr)
12 -
# The Super/"Mod" key on this keyboard is Mod4, so it must be written as "4-", not "M-".
13 -
bind-key 4-Return terminal
hud/hud.toml (deleted) +0 −66
1 -
[recipe.sesh]
2 -
command = "sesh list --json"
3 -
columns = ["Icon", "Name", "Path"]
4 -
keys.enter = { run = ["sesh", "connect", "{{.Name}}"], quit = true }
5 -
keys."ctrl+d" = ["tmux", "kill-session", "-t", "{{.Name}}"]
6 -
7 -
[recipe.nutiliti-worktrees]
8 -
command = "sesh worktree list -r Nutiliti/nutiliti --json"
9 -
columns = ["Number", "State", "Title"]
10 -
keys.enter = { run = ["sesh", "worktree", "connect", "{{.Number}}", "-r", "Nutiliti/nutiliti"], quit = true }
11 -
keys.o = ["gh", "browse", "{{.Number}}", "-R", "Nutiliti/nutiliti"]
12 -
cache = "10m"
13 -
colors = { State = { OPEN = "green", CLOSED = "red", MERGED = "magenta" } }
14 -
15 -
[recipe.sesh-worktrees]
16 -
command = "sesh worktree list -r joshmedeski/sesh --json"
17 -
columns = ["Title", "State"]
18 -
keys.enter = { run = ["sesh", "worktree", "connect", "{{.Number}}", "-r", "joshmedeski/sesh"], quit = true }
19 -
keys.o = ["gh", "browse", "{{.Number}}", "-R", "joshmedeski/sesh"]
20 -
colors = { State = { OPEN = "green", CLOSED = "red", MERGED = "magenta" } }
21 -
22 -
[recipe.calendar]
23 -
command = '''
24 -
ical upcoming --exclude-calendar Birthdays -o json | jq 'map(. as $e | .when = ($e.start_date | fromdateiso8601
25 -
  | strflocaltime(if $e.all_day then "%a %b %e" else "%a %b %e %l:%M %p" end)))'
26 -
'''
27 -
columns = ["when", "title", "calendar", "location"]
28 -
refresh = 300
29 -
30 -
[recipe.upcoming]
31 -
command = "ical upcoming --exclude-calendar Birthdays -o json"
32 -
days = 3
33 -
date = "start_date"
34 -
end = "end_date"
35 -
columns = ["title"]
36 -
refresh = 300
37 -
38 -
[recipe.reminders]
39 -
command = '''
40 -
remindctl show --json | jq 'sort_by(.dueDate // "~")
41 -
  | map(.due = (if .dueDate then .dueDate | fromdateiso8601 | strflocaltime("%a %b %e") else "" end))'
42 -
'''
43 -
columns = ["due", "title", "listName"]
44 -
keys = { "c" = ["remindctl", "complete", "{{.id}}"], "o" = ["remindctl", "open", "{{.id}}"] }
45 -
refresh = 300
46 -
47 -
[[page]]
48 -
title = "Dashboard"
49 -
sections = [
50 -
  [
51 -
    { title = "Sessions", recipe = "sesh", command = "sesh list -t --json", columns = ["Attached", "Name", "Alerts"] },
52 -
    { title = "Weather", command = "curl -s 'wttr.in?0'", refresh = 300 },
53 -
  ],
54 -
  [
55 -
    {title = "Box", command = "linecast weather", },
56 -
    {title = "Box", command = "btop", }
57 -
  ],
58 -
]
59 -
60 -
[[page]]
61 -
title = "Life"
62 -
sections = [
63 -
  [{ title = "Upcoming", recipe = "upcoming", fit = true }],
64 -
  [{ title = "Calendars", recipe = "calendar" }],
65 -
  [{ title = "Reminders", recipe = "reminders" }],
66 -
]
oxwm/config.lua (deleted) +0 −470
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 = "st"
26 -
27 -
local scripts = "/home/stevedylandev/dotfiles/scripts"
28 -
local rofi_scripts = "/home/stevedylandev/dotfiles/rofi/scripts"
29 -
30 -
-- Spawn one of those scripts. They resolve their own siblings relative to
31 -
-- themselves, so an absolute path is all they need — PATH is not involved.
32 -
-- Extra arguments are passed straight through: script("txtcliphist.sh", "sel").
33 -
local function script(name, ...)
34 -
    local cmd = { scripts .. "/" .. name }
35 -
    for _, arg in ipairs({ ... }) do
36 -
        cmd[#cmd + 1] = arg
37 -
    end
38 -
    return oxwm.spawn(cmd)
39 -
end
40 -
41 -
-- Same idea for the rofi menus in rofi/scripts. They are launchers, not
42 -
-- daemons: each one opens rofi, does the thing that was picked, and exits.
43 -
local function rofi_script(name, ...)
44 -
    local cmd = { rofi_scripts .. "/" .. name }
45 -
    for _, arg in ipairs({ ... }) do
46 -
        cmd[#cmd + 1] = arg
47 -
    end
48 -
    return oxwm.spawn(cmd)
49 -
end
50 -
51 -
-- Rofi's own modes need no script at all: drun reads .desktop files, window
52 -
-- lists what is already open, filebrowser walks directories, ssh reads
53 -
-- ~/.ssh/config. Behaviour for all of them lives in rofi/config.rasi.
54 -
local function rofi_mode(mode)
55 -
    return oxwm.spawn({ "rofi", "-show", mode })
56 -
end
57 -
58 -
-- Color palette - customize these to match your theme
59 -
-- Alternatively you can import other files in here, such as
60 -
-- local colors = require("colors.lua") and make colors.lua a file
61 -
-- in the ~/.config/oxwm directory
62 -
-- Darkmatter (matches wezterm/ghostty theme)
63 -
local colors = {
64 -
    fg = "#ffffff",
65 -
    red = "#e78a53",
66 -
    bg = "#121113",
67 -
    cyan = "#aaaaaa",
68 -
    green = "#fbcb97",
69 -
    lavender = "#999999",
70 -
    light_blue = "#888888",
71 -
    grey = "#333333",
72 -
    blue = "#5f8787",
73 -
    purple = "#c1c1c1",
74 -
}
75 -
76 -
-- Workspace tags - can be numbers, names, or icons (requires a Nerd Font)
77 -
-- The number of tags is deduced from the size of this table (up to a max of 12).
78 -
-- The default is 9. To use more, add entries here and uncomment the matching
79 -
-- keybinds for tags 10-12 further down in this file.
80 -
local tags = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }
81 -
-- local tags = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" } -- Example of 12 tags
82 -
-- local tags = { "", "󰊯", "", "", "󰙯", "󱇤", "", "󱘶", "󰧮" } -- Example of nerd font icon tags
83 -
84 -
-- Font for the status bar (use "fc-list" to see available fonts)
85 -
local bar_font = "BerkeleyMono Nerd Font:style=Bold:size=11"
86 -
87 -
-- Define your blocks
88 -
-- Similar to widgets in qtile, or dwmblocks
89 -
local blocks = {
90 -
    oxwm.bar.block.ram({
91 -
        format = "Ram: {used}/{total} GB",
92 -
        interval = 5,
93 -
        color = colors.blue,
94 -
        underline = true,
95 -
    }),
96 -
    oxwm.bar.block.static({
97 -
        text = "│",
98 -
        interval = 999999999,
99 -
        color = colors.green,
100 -
        underline = false,
101 -
    }),
102 -
    -- SSID, "off" when the link is down, "none" without a wireless card.
103 -
    -- wifi-status supplies its own Nerd Font icon, which tracks signal
104 -
    -- strength while connected, so the format is just its output.
105 -
    -- Click opens the dmenu network menu (connect/disconnect wifi and eth0).
106 -
    oxwm.bar.block.shell({
107 -
        format = "{}",
108 -
        command = scripts .. "/wifi-status",
109 -
        interval = 10,
110 -
        color = colors.lavender,
111 -
        underline = true,
112 -
        click = { command = rofi_scripts .. "/rofi-wifi" },
113 -
    }),
114 -
    oxwm.bar.block.static({
115 -
        text = "│",
116 -
        interval = 999999999,
117 -
        color = colors.green,
118 -
        underline = false,
119 -
    }),
120 -
    -- Volume percentage of the default sink; click toggles mute.
121 -
    -- vol-status supplies its own Nerd Font icon for the level (or mute).
122 -
    -- The vol-* keybinds also fire a notification, so this can lag a second.
123 -
    oxwm.bar.block.shell({
124 -
        format = "{}",
125 -
        command = scripts .. "/vol-status",
126 -
        interval = 2,
127 -
        color = colors.purple,
128 -
        underline = true,
129 -
        click = { command = scripts .. "/vol-mute" },
130 -
    }),
131 -
    oxwm.bar.block.static({
132 -
        text = "│",
133 -
        interval = 999999999,
134 -
        color = colors.green,
135 -
        underline = false,
136 -
    }),
137 -
    oxwm.bar.block.shell({
138 -
        format = "{}",
139 -
        command = scripts .. "/weather.sh -h",
140 -
        interval = 999999999,
141 -
        color = colors.red,
142 -
        underline = true,
143 -
    }),
144 -
    oxwm.bar.block.static({
145 -
        text = "│",
146 -
        interval = 999999999,
147 -
        color = colors.green,
148 -
        underline = false,
149 -
    }),
150 -
    oxwm.bar.block.datetime({
151 -
        format = "{}",
152 -
        date_format = "%a, %b %d - %-I:%M %P",
153 -
        interval = 1,
154 -
        color = colors.cyan,
155 -
        underline = true,
156 -
    }),
157 -
    -- Uncomment to add battery status (useful for laptops)
158 -
    oxwm.bar.block.battery({
159 -
        format = "Bat: {}%",
160 -
        charging = "⚡ Bat: {}%",
161 -
        discharging = "- Bat: {}%",
162 -
        full = "✓ Bat: {}%",
163 -
        interval = 30,
164 -
        color = colors.green,
165 -
        underline = true,
166 -
        -- click: run a command when the block is clicked
167 -
        -- click = "alacritty -e btop",
168 -
        -- click = { command = "bluetui", floating = true },
169 -
    }),
170 -
};
171 -
172 -
-------------------------------------------------------------------------------
173 -
-- Basic Settings
174 -
-------------------------------------------------------------------------------
175 -
oxwm.set_terminal(terminal)
176 -
oxwm.set_modkey(modkey) -- This is for Mod + mouse binds, such as drag/resize
177 -
oxwm.set_tags(tags)
178 -
179 -
-- Set default layout (tiling by default)
180 -
oxwm.set_layout("dwindle")
181 -
182 -
-------------------------------------------------------------------------------
183 -
-- Layouts
184 -
-------------------------------------------------------------------------------
185 -
-- Set custom symbols for layouts (displayed in the status bar)
186 -
-- Available layouts: "tiling", "normie" (floating), "grid", "monocle", "tabbed", "dwindle"
187 -
oxwm.set_layout_symbol("normie", "[F]")
188 -
oxwm.set_layout_symbol("tiling", "[T]")
189 -
oxwm.set_layout_symbol("tabbed", "[=]")
190 -
oxwm.set_layout_symbol("dwindle", "[\\]")
191 -
192 -
-- Example: bind dwindle (fibonacci) layout
193 -
oxwm.key.bind({ modkey }, "R", oxwm.layout.set("dwindle"))
194 -
195 -
-- Set default layout of specific tag (tag_index, layout_name)
196 -
-- Unset value uses oxwm.set_layout value
197 -
-- oxwm.set_tag_layout(1, "grid")
198 -
199 -
-------------------------------------------------------------------------------
200 -
-- Appearance
201 -
-------------------------------------------------------------------------------
202 -
-- Border configuration
203 -
204 -
-- Width in pixels
205 -
oxwm.border.set_width(2)
206 -
-- Color of focused window border
207 -
oxwm.border.set_focused_color(colors.blue)
208 -
-- Color of unfocused window borders
209 -
oxwm.border.set_unfocused_color(colors.bg)
210 -
211 -
-- Where floating windows spawn: "top-left", "top-center", "top-right",
212 -
-- "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right"
213 -
oxwm.set_floating_position("center")
214 -
215 -
-- Smart Enabled = No border if 1 window
216 -
oxwm.gaps.set_smart(false)
217 -
-- Inner gaps (horizontal, vertical) in pixels
218 -
oxwm.gaps.set_inner(12, 12)
219 -
-- Outer gaps (horizontal, vertical) in pixels
220 -
oxwm.gaps.set_outer(12, 12)
221 -
222 -
-------------------------------------------------------------------------------
223 -
-- Window Rules
224 -
-------------------------------------------------------------------------------
225 -
-- Rules allow you to automatically configure windows based on their properties
226 -
-- You can match windows by class, instance, title, or role
227 -
-- Available properties: floating, tag, fullscreen, etc.
228 -
--
229 -
-- Common use cases:
230 -
-- - Force floating for certain applications (dialogs, utilities)
231 -
-- - Send specific applications to specific workspaces
232 -
-- - Configure window behavior based on title or class
233 -
234 -
-- Examples (uncomment to use):
235 -
oxwm.rule.add({ instance = "chromium", floating = true, tag = 2 })
236 -
oxwm.rule.add({ instance = "helium.AppImage", floating = true, tag = 2 })
237 -
oxwm.rule.add({ instance = "gimp", floating = true})
238 -
-- oxwm.rule.add({ class = "Alacritty", tag = 9, focus = true })
239 -
-- oxwm.rule.add({ class = "firefox", title = "Library", floating = true })
240 -
-- oxwm.rule.add({ class = "firefox", tag = 2 })
241 -
-- oxwm.rule.add({ instance = "mpv", floating = true })
242 -
243 -
-- To find window properties, use xprop and click on the window
244 -
-- WM_CLASS(STRING) shows both instance and class (instance, class)
245 -
246 -
-------------------------------------------------------------------------------
247 -
-- Status Bar Configuration
248 -
-------------------------------------------------------------------------------
249 -
-- Font configuration
250 -
oxwm.bar.set_font(bar_font)
251 -
252 -
-- Position configuration (top/bottom, top is default)
253 -
-- oxwm.bar.set_position("bottom")
254 -
255 -
-- Set your blocks here (defined above)
256 -
oxwm.bar.set_blocks(blocks)
257 -
258 -
-- Bar color schemes (for workspace tag display)
259 -
-- Parameters: foreground, background, border
260 -
261 -
-- Unoccupied tags
262 -
oxwm.bar.set_scheme_normal(colors.fg, colors.bg, colors.grey)
263 -
-- Occupied tags
264 -
oxwm.bar.set_scheme_occupied(colors.cyan, colors.bg, colors.cyan)
265 -
-- Currently selected tag
266 -
oxwm.bar.set_scheme_selected(colors.cyan, colors.bg, colors.purple)
267 -
-- Urgent tags (windows requesting attention)
268 -
oxwm.bar.set_scheme_urgent(colors.red, colors.bg, colors.red)
269 -
270 -
-- Hide tags that have no windows and are not selected
271 -
-- oxwm.bar.set_hide_vacant_tags(true)
272 -
273 -
-------------------------------------------------------------------------------
274 -
-- Keybindings
275 -
-------------------------------------------------------------------------------
276 -
-- Keybindings are defined using oxwm.key.bind(modifiers, key, action)
277 -
-- Modifiers: {"Mod4"}, {"Mod1"}, {"Shift"}, {"Control"}, or combinations like {"Mod4", "Shift"}
278 -
-- Keys: Use uppercase for letters (e.g., "Return", "H", "J", "K", "L")
279 -
-- Actions: Functions that return actions (e.g., oxwm.spawn(), oxwm.client.kill())
280 -
--
281 -
-- A list of available keysyms can be found in the X11 keysym definitions.
282 -
-- Common keys: Return, Space, Tab, Escape, Backspace, Delete, Left, Right, Up, Down
283 -
284 -
-- Basic window management
285 -
286 -
oxwm.key.bind({ modkey }, "Return", oxwm.spawn_terminal())
287 -
-- Application launcher (.desktop entries, with icons and search)
288 -
oxwm.key.bind({ modkey }, "D", rofi_mode("drun"))
289 -
-- Bare executables on PATH, for the things that ship no .desktop file
290 -
oxwm.key.bind({ modkey, "Shift" }, "D", rofi_mode("run"))
291 -
-- Jump to a window that is already open, wherever it is tagged
292 -
oxwm.key.bind({ modkey }, "Tab", rofi_mode("window"))
293 -
-- Browse the filesystem and open a file with its default application
294 -
oxwm.key.bind({ modkey }, "E", rofi_mode("filebrowser"))
295 -
-- Save screenshot to ~/Downloads
296 -
oxwm.key.bind({ modkey }, "S", oxwm.spawn({ "sh", "-c", "maim -s ~/Downloads/screenshot-$(date +%Y%m%d-%H%M%S).png" }))
297 -
oxwm.key.bind({ modkey }, "O", oxwm.spawn({ "sh", "-c", "helium.AppImage --no-sandbox" }))
298 -
oxwm.key.bind({ modkey }, "W", oxwm.client.kill())
299 -
300 -
-- Volume control (media keys, with Mod+Shift fallbacks for boards without them)
301 -
oxwm.key.bind({}, "XF86AudioRaiseVolume", script("vol-up"))
302 -
oxwm.key.bind({}, "XF86AudioLowerVolume", script("vol-down"))
303 -
oxwm.key.bind({}, "XF86AudioMute", script("vol-mute"))
304 -
oxwm.key.bind({ modkey, "Shift" }, "Equal", script("vol-up"))
305 -
oxwm.key.bind({ modkey, "Shift" }, "Minus", script("vol-down"))
306 -
oxwm.key.bind({ modkey, "Shift" }, "M", script("vol-mute"))
307 -
-- Audio menu (volume, mute, mic, pick an output) - rofi, no terminal needed
308 -
oxwm.key.bind({ modkey, "Shift" }, "U", rofi_script("rofi-audio"))
309 -
310 -
-- WiFi menu: scan, connect (passphrase prompt is hidden), disconnect
311 -
oxwm.key.bind({ modkey, "Shift" }, "N", rofi_script("rofi-wifi"))
312 -
313 -
-- Clipboard history. rofi-clipd (autostarted at the bottom of this file)
314 -
-- records everything that passes through the CLIPBOARD selection into
315 -
-- ~/.cache/rofi-clipboard; Mod+V picks an earlier entry back out. Shift+Del
316 -
-- inside the menu forgets an entry.
317 -
oxwm.key.bind({ modkey }, "V", rofi_script("rofi-clip"))
318 -
319 -
-- Emoji and kaomoji picker; the pick lands in the clipboard, ready to paste
320 -
oxwm.key.bind({ modkey, "Shift" }, "E", rofi_script("rofi-emoji"))
321 -
-- Calculator: type an expression, Enter evaluates, Enter again copies
322 -
oxwm.key.bind({ modkey, "Shift" }, "C", rofi_script("rofi-calc"))
323 -
-- Search the web: pick an engine, type the query
324 -
oxwm.key.bind({ modkey }, "Slash", rofi_script("rofi-websearch"))
325 -
-- Screenshot menu (Mod+S still takes a plain region shot without asking)
326 -
oxwm.key.bind({ modkey, "Shift" }, "S", rofi_script("rofi-screenshot"))
327 -
-- Lock / suspend / reboot / shutdown / log out, each with a confirmation
328 -
oxwm.key.bind({ modkey, "Shift" }, "X", rofi_script("rofi-power"))
329 -
330 -
-- Keybind overlay - Shows important keybindings on screen
331 -
oxwm.key.bind({ modkey, "Shift" }, "Slash", oxwm.show_keybinds())
332 -
333 -
-- Window state toggles
334 -
--oxwm.key.bind({ modkey, "Shift" }, "A", oxwm.client.toggle_fullscreen())
335 -
oxwm.key.bind({ modkey, "Shift" }, "F", oxwm.client.toggle_floating())
336 -
337 -
-- Layout management
338 -
oxwm.key.bind({ modkey }, "F", oxwm.layout.set("normie"))
339 -
--oxwm.key.bind({ modkey }, "C", oxwm.layout.set("tiling"))
340 -
-- Cycle through layouts
341 -
oxwm.key.bind({ modkey }, "N", oxwm.layout.cycle())
342 -
343 -
-- Master area controls (tiling layout)
344 -
345 -
-- Decrease/Increase master area width
346 -
oxwm.key.bind({ modkey }, "H", oxwm.set_master_factor(-5))
347 -
oxwm.key.bind({ modkey }, "L", oxwm.set_master_factor(5))
348 -
-- Enable tiled resize mode: Mod+RMB drag adjusts mfact instead of floating
349 -
-- oxwm.tiled_resize_mode(true)
350 -
-- Increment/Decrement number of master windows
351 -
--oxwm.key.bind({ modkey }, "I", oxwm.inc_num_master(1))
352 -
--oxwm.key.bind({ modkey }, "P", oxwm.inc_num_master(-1))
353 -
354 -
-- Gaps toggle
355 -
oxwm.key.bind({ modkey }, "A", oxwm.toggle_gaps())
356 -
-- Bar toggle
357 -
oxwm.key.bind({ modkey }, "B", oxwm.toggle_bar())
358 -
359 -
-- Window manager controls
360 -
oxwm.key.bind({ modkey, "Shift" }, "Q", oxwm.quit())
361 -
oxwm.key.bind({ modkey, "Shift" }, "R", oxwm.restart())
362 -
363 -
-- Focus movement [1 for up in the stack, -1 for down]
364 -
oxwm.key.bind({ modkey }, "J", oxwm.client.focus_stack(1))
365 -
oxwm.key.bind({ modkey }, "K", oxwm.client.focus_stack(-1))
366 -
367 -
-- Window movement (swap position in stack)
368 -
oxwm.key.bind({ modkey, "Shift" }, "J", oxwm.client.move_stack(1))
369 -
oxwm.key.bind({ modkey, "Shift" }, "K", oxwm.client.move_stack(-1))
370 -
371 -
-- Multi-monitor support
372 -
373 -
-- Focus next/previous Monitors
374 -
oxwm.key.bind({ modkey }, "Comma", oxwm.monitor.focus(-1))
375 -
oxwm.key.bind({ modkey }, "Period", oxwm.monitor.focus(1))
376 -
-- Move window to next/previous Monitors
377 -
oxwm.key.bind({ modkey, "Shift" }, "Comma", oxwm.monitor.tag(-1))
378 -
oxwm.key.bind({ modkey, "Shift" }, "Period", oxwm.monitor.tag(1))
379 -
380 -
-- Warp the cursor to the focused monitor when switching monitors
381 -
-- oxwm.monitor.warp_cursor(true)
382 -
-- Warp the cursor along when sending a window to another monitor
383 -
-- oxwm.monitor.warp_cursor_on_send(true)
384 -
385 -
-- Workspace (tag) navigation
386 -
-- Switch to workspace N (tags are 0-indexed, so tag "1" is index 0)
387 -
oxwm.key.bind({ modkey }, "1", oxwm.tag.view(0))
388 -
oxwm.key.bind({ modkey }, "2", oxwm.tag.view(1))
389 -
oxwm.key.bind({ modkey }, "3", oxwm.tag.view(2))
390 -
oxwm.key.bind({ modkey }, "4", oxwm.tag.view(3))
391 -
oxwm.key.bind({ modkey }, "5", oxwm.tag.view(4))
392 -
oxwm.key.bind({ modkey }, "6", oxwm.tag.view(5))
393 -
oxwm.key.bind({ modkey }, "7", oxwm.tag.view(6))
394 -
oxwm.key.bind({ modkey }, "8", oxwm.tag.view(7))
395 -
oxwm.key.bind({ modkey }, "9", oxwm.tag.view(8))
396 -
-- Tags 10-12 (opt-in): set 12 tags above, then pick keys you like and uncomment.
397 -
-- oxwm.key.bind({ modkey }, "0", oxwm.tag.view(9))
398 -
-- oxwm.key.bind({ modkey }, "minus", oxwm.tag.view(10))
399 -
-- oxwm.key.bind({ modkey }, "equal", oxwm.tag.view(11))
400 -
401 -
-- Move focused window to workspace N
402 -
oxwm.key.bind({ modkey, "Shift" }, "1", oxwm.tag.move_to(0))
403 -
oxwm.key.bind({ modkey, "Shift" }, "2", oxwm.tag.move_to(1))
404 -
oxwm.key.bind({ modkey, "Shift" }, "3", oxwm.tag.move_to(2))
405 -
oxwm.key.bind({ modkey, "Shift" }, "4", oxwm.tag.move_to(3))
406 -
oxwm.key.bind({ modkey, "Shift" }, "5", oxwm.tag.move_to(4))
407 -
oxwm.key.bind({ modkey, "Shift" }, "6", oxwm.tag.move_to(5))
408 -
oxwm.key.bind({ modkey, "Shift" }, "7", oxwm.tag.move_to(6))
409 -
oxwm.key.bind({ modkey, "Shift" }, "8", oxwm.tag.move_to(7))
410 -
oxwm.key.bind({ modkey, "Shift" }, "9", oxwm.tag.move_to(8))
411 -
-- oxwm.key.bind({ modkey, "Shift" }, "0", oxwm.tag.move_to(9))
412 -
-- oxwm.key.bind({ modkey, "Shift" }, "minus", oxwm.tag.move_to(10))
413 -
-- oxwm.key.bind({ modkey, "Shift" }, "equal", oxwm.tag.move_to(11))
414 -
415 -
-- Combo view (view multiple tags at once) {argos_nothing}
416 -
-- Example: Mod+Ctrl+2 while on tag 1 will show BOTH tags 1 and 2
417 -
oxwm.key.bind({ modkey, "Control" }, "1", oxwm.tag.toggleview(0))
418 -
oxwm.key.bind({ modkey, "Control" }, "2", oxwm.tag.toggleview(1))
419 -
oxwm.key.bind({ modkey, "Control" }, "3", oxwm.tag.toggleview(2))
420 -
oxwm.key.bind({ modkey, "Control" }, "4", oxwm.tag.toggleview(3))
421 -
oxwm.key.bind({ modkey, "Control" }, "5", oxwm.tag.toggleview(4))
422 -
oxwm.key.bind({ modkey, "Control" }, "6", oxwm.tag.toggleview(5))
423 -
oxwm.key.bind({ modkey, "Control" }, "7", oxwm.tag.toggleview(6))
424 -
oxwm.key.bind({ modkey, "Control" }, "8", oxwm.tag.toggleview(7))
425 -
oxwm.key.bind({ modkey, "Control" }, "9", oxwm.tag.toggleview(8))
426 -
-- oxwm.key.bind({ modkey, "Control" }, "0", oxwm.tag.toggleview(9))
427 -
-- oxwm.key.bind({ modkey, "Control" }, "minus", oxwm.tag.toggleview(10))
428 -
-- oxwm.key.bind({ modkey, "Control" }, "equal", oxwm.tag.toggleview(11))
429 -
430 -
-- Multi tag (window on multiple tags)
431 -
-- Example: Mod+Ctrl+Shift+2 puts focused window on BOTH current tag and tag 2
432 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "1", oxwm.tag.toggletag(0))
433 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "2", oxwm.tag.toggletag(1))
434 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "3", oxwm.tag.toggletag(2))
435 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "4", oxwm.tag.toggletag(3))
436 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "5", oxwm.tag.toggletag(4))
437 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "6", oxwm.tag.toggletag(5))
438 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "7", oxwm.tag.toggletag(6))
439 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "8", oxwm.tag.toggletag(7))
440 -
oxwm.key.bind({ modkey, "Control", "Shift" }, "9", oxwm.tag.toggletag(8))
441 -
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "0", oxwm.tag.toggletag(9))
442 -
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "minus", oxwm.tag.toggletag(10))
443 -
-- oxwm.key.bind({ modkey, "Control", "Shift" }, "equal", oxwm.tag.toggletag(11))
444 -
445 -
-------------------------------------------------------------------------------
446 -
-- Advanced: Keychords
447 -
-------------------------------------------------------------------------------
448 -
-- Keychords allow you to bind multiple-key sequences (like Emacs or Vim)
449 -
-- Format: {{modifiers}, key1}, {{modifiers}, key2}, ...
450 -
-- Example: Press Mod4+Space, then release and press T to spawn a terminal
451 -
oxwm.key.chord({
452 -
    { { modkey }, "Space" },
453 -
    { {},         "T" }
454 -
}, oxwm.spawn_terminal())
455 -
456 -
-------------------------------------------------------------------------------
457 -
-- Autostart
458 -
-------------------------------------------------------------------------------
459 -
-- Commands to run once when OXWM starts
460 -
-- Uncomment and modify these examples, or add your own
461 -
462 -
-- Clipboard history daemon. Without it Mod+V has nothing to show: an X
463 -
-- selection lives in the process that owns it, so a copied string dies with
464 -
-- the window it was copied from unless something keeps its own copy.
465 -
oxwm.autostart(rofi_scripts .. "/rofi-clipd")
466 -
467 -
-- oxwm.autostart("picom")
468 -
-- oxwm.autostart("feh --bg-scale ~/wallpaper.jpg")
469 -
-- oxwm.autostart("dunst")
470 -
-- oxwm.autostart("nm-applet")