oxwm

https://git.tonybtw.com/oxwm.git git://git.tonybtw.com/oxwm.git
5,472 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
        format = "Bat: {}%",
111
        charging = "⚡ Bat: {}%",
112
        discharging = "🔋 Bat: {}%",
113
        full = "✓ Bat: {}%",
114
        interval = 30,
115
        color = colors.green,
116
        underline = true,
117
    }),
118
    -- oxwm.bar.block.battery({
119
    --     charging = "󰂄 Bat: {}%",
120
    --     discharging = "󰁹 Bat: {}%",
121
    --     full = "󰁹 Bat: {}%",
122
    --     format = "",
123
    --     interval = 30,
124
    --     color = colors.green,
125
    --     underline = true
126
    -- }),
127
    oxwm.bar.block.static({
128
        text = " │  ",
129
        format = "",
130
        interval = 999999999,
131
        color = colors.lavender,
132
        underline = false
133
    }),
134
    oxwm.bar.block.ram({
135
        format = "󰍛 {used}/{total} GB",
136
        interval = 5,
137
        color = colors.light_blue,
138
        underline = true
139
    }),
140
    oxwm.bar.block.static({
141
        text = " │  ",
142
        format = "",
143
        interval = 999999999,
144
        color = colors.lavender,
145
        underline = false
146
    }),
147
    oxwm.bar.block.shell({
148
        command = "uname -r",
149
        format = " {}",
150
        interval = 999999999,
151
        color = colors.red,
152
        underline = true
153
    }),
154
    oxwm.bar.block.static({
155
        text = " │  ",
156
        format = "",
157
        interval = 999999999,
158
        color = colors.lavender,
159
        underline = false
160
    }),
161
    oxwm.bar.block.datetime({
162
        format = "󰸘 {}",
163
        interval = 1,
164
        color = colors.cyan,
165
        underline = true,
166
        date_format = "%a, %b %d - %-I:%M %P"
167
    })
168
})