oxwm

https://git.tonybtw.com/oxwm.git git://git.tonybtw.com/oxwm.git
5,195 bytes raw
1
---@meta
2
---OXWM Test Configuration File (Lua)
3
---Using the new functional API
4
---Edit this file and reload with Mod+Alt+R
5
6
---Load type definitions for LSP (lua-language-server)
7
---Option 1: Copy templates/oxwm.lua to the same directory as your config
8
---Option 2: Add to your LSP settings (e.g., .luarc.json):
9
---  {
10
---    "workspace.library": [
11
---      "/path/to/oxwm/templates"
12
---    ]
13
---  }
14
---Option 3: Symlink templates/oxwm.lua to your config directory
15
---@module 'oxwm'
16
17
18
local colors = {
19
    lavender = 0xa9b1d6,
20
    light_blue = 0x7aa2f7,
21
    grey = 0xbbbbbb,
22
    purple = 0xad8ee6,
23
    cyan = 0x0db9d7,
24
    bg = 0x1a1b26,
25
    green = 0x9ece6a,
26
    red = 0xf7768e,
27
    fg = 0xbbbbbb,
28
    blue = 0x6dade3,
29
}
30
31
local modkey = "Mod1"
32
33
oxwm.set_terminal("st")
34
oxwm.set_modkey(modkey)
35
oxwm.set_tags({ "1", "2", "3", "4", "5", "6", "7", "8", "9" })
36
37
oxwm.set_layout_symbol("tiling", "[T]")
38
oxwm.set_layout_symbol("normie", "[F]")
39
40
oxwm.border.set_width(2)
41
oxwm.border.set_focused_color(colors.blue)
42
oxwm.border.set_unfocused_color(colors.grey)
43
44
oxwm.gaps.set_enabled(true)
45
oxwm.gaps.set_inner(5, 5)
46
oxwm.gaps.set_outer(5, 5)
47
48
oxwm.bar.set_font("JetBrainsMono Nerd Font:style=Bold:size=12")
49
50
oxwm.bar.set_scheme_normal(colors.fg, colors.bg, 0x444444)
51
oxwm.bar.set_scheme_occupied(colors.cyan, colors.bg, colors.cyan)
52
oxwm.bar.set_scheme_selected(colors.cyan, colors.bg, colors.purple)
53
54
oxwm.key.chord({
55
    { { modkey }, "Space" },
56
    { {},         "T" }
57
}, oxwm.spawn("st"))
58
59
oxwm.key.bind({ modkey }, "Return", oxwm.spawn("st"))
60
oxwm.key.bind({ modkey }, "D", oxwm.spawn({ "sh", "-c", "dmenu_run -l 10" }))
61
oxwm.key.bind({ modkey }, "S", oxwm.spawn({ "sh", "-c", "maim -s | xclip -selection clipboard -t image/png" }))
62
oxwm.key.bind({ modkey }, "Q", oxwm.client.kill())
63
64
oxwm.key.bind({ modkey, "Shift" }, "Slash", oxwm.show_keybinds())
65
66
oxwm.key.bind({ modkey, "Shift" }, "F", oxwm.client.toggle_fullscreen())
67
oxwm.key.bind({ modkey, "Shift" }, "Space", oxwm.client.toggle_floating())
68
69
oxwm.key.bind({ modkey }, "F", oxwm.layout.set("normie"))
70
oxwm.key.bind({ modkey }, "C", oxwm.layout.set("tiling"))
71
oxwm.key.bind({ modkey }, "N", oxwm.layout.cycle())
72
73
oxwm.key.bind({ modkey }, "A", oxwm.toggle_gaps())
74
75
oxwm.key.bind({ modkey, "Shift" }, "Q", oxwm.quit())
76
oxwm.key.bind({ modkey, "Shift" }, "R", oxwm.restart())
77
78
oxwm.key.bind({ modkey }, "H", oxwm.client.focus_direction("left"))
79
oxwm.key.bind({ modkey }, "J", oxwm.client.focus_direction("down"))
80
oxwm.key.bind({ modkey }, "K", oxwm.client.focus_direction("up"))
81
oxwm.key.bind({ modkey }, "L", oxwm.client.focus_direction("right"))
82
83
oxwm.key.bind({ modkey, "Shift" }, "H", oxwm.client.swap_direction("left"))
84
oxwm.key.bind({ modkey, "Shift" }, "J", oxwm.client.swap_direction("down"))
85
oxwm.key.bind({ modkey, "Shift" }, "K", oxwm.client.swap_direction("up"))
86
oxwm.key.bind({ modkey, "Shift" }, "L", oxwm.client.swap_direction("right"))
87
88
oxwm.key.bind({ modkey }, "1", oxwm.tag.view(0))
89
oxwm.key.bind({ modkey }, "2", oxwm.tag.view(1))
90
oxwm.key.bind({ modkey }, "3", oxwm.tag.view(2))
91
oxwm.key.bind({ modkey }, "4", oxwm.tag.view(3))
92
oxwm.key.bind({ modkey }, "5", oxwm.tag.view(4))
93
oxwm.key.bind({ modkey }, "6", oxwm.tag.view(5))
94
oxwm.key.bind({ modkey }, "7", oxwm.tag.view(6))
95
oxwm.key.bind({ modkey }, "8", oxwm.tag.view(7))
96
oxwm.key.bind({ modkey }, "9", oxwm.tag.view(8))
97
98
oxwm.key.bind({ modkey, "Shift" }, "1", oxwm.tag.move_to(0))
99
oxwm.key.bind({ modkey, "Shift" }, "2", oxwm.tag.move_to(1))
100
oxwm.key.bind({ modkey, "Shift" }, "3", oxwm.tag.move_to(2))
101
oxwm.key.bind({ modkey, "Shift" }, "4", oxwm.tag.move_to(3))
102
oxwm.key.bind({ modkey, "Shift" }, "5", oxwm.tag.move_to(4))
103
oxwm.key.bind({ modkey, "Shift" }, "6", oxwm.tag.move_to(5))
104
oxwm.key.bind({ modkey, "Shift" }, "7", oxwm.tag.move_to(6))
105
oxwm.key.bind({ modkey, "Shift" }, "8", oxwm.tag.move_to(7))
106
oxwm.key.bind({ modkey, "Shift" }, "9", oxwm.tag.move_to(8))
107
108
oxwm.bar.set_blocks({
109
    oxwm.bar.block.battery({
110
        charging = "󰂄 Bat: {}%",
111
        discharging = "󰁹 Bat: {}%",
112
        full = "󰁹 Bat: {}%",
113
        format = "",
114
        interval = 30,
115
        color = colors.green,
116
        underline = true
117
    }),
118
    oxwm.bar.block.static({
119
        text = " │  ",
120
        format = "",
121
        interval = 999999999,
122
        color = colors.lavender,
123
        underline = false
124
    }),
125
    oxwm.bar.block.ram({
126
        format = "󰍛 {used}/{total} GB",
127
        interval = 5,
128
        color = colors.light_blue,
129
        underline = true
130
    }),
131
    oxwm.bar.block.static({
132
        text = " │  ",
133
        format = "",
134
        interval = 999999999,
135
        color = colors.lavender,
136
        underline = false
137
    }),
138
    oxwm.bar.block.shell({
139
        command = "uname -r",
140
        format = " {}",
141
        interval = 999999999,
142
        color = colors.red,
143
        underline = true
144
    }),
145
    oxwm.bar.block.static({
146
        text = " │  ",
147
        format = "",
148
        interval = 999999999,
149
        color = colors.lavender,
150
        underline = false
151
    }),
152
    oxwm.bar.block.datetime({
153
        format = "󰸘 {}",
154
        interval = 1,
155
        color = colors.cyan,
156
        underline = true,
157
        date_format = "%a, %b %d - %-I:%M %P"
158
    })
159
})