1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
print('hello starting up...')
local Dmenu = require 'null-browser.extras.dmenu'
local history = require 'null-browser.extras.history'
local search_engines = require 'null-browser.extras.search-engines'
web.set('new_view_url', 'https://lite.duckduckgo.com')
web.set('close_window_when_no_views', true)
web.set('user_agent',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36')
web.set('downloads_dir', os.getenv('HOME') .. '/Downloads/firefox')
history.attach_hooks()
search_engines.urls['ld'] = 'https://lite.duckduckgo.com/?q={}'
local menu = Dmenu:new {
command = os.getenv('HOME') .. '/scripts/fzfmenu.sh',
prompt_arg = '--prompt',
query_arg = '-q',
args = { 'input', '--layout=default' },
}
require 'null-browser.defaults.vi'.setup {
menu = menu,
history = history,
transform_url_input = search_engines.transform_url_input,
}
web.set('permissions_persistance', 'never')
web.event.add_listener('PermissionRequested', {
callback = function(event)
menu:select({ 'Allow', 'Deny' }, { prompt = 'Requesting permission for ' .. event.permission_type },
function(err, choice)
if err then return end
if web.utils.string_trim(choice) == 'Allow' then
event.accept()
else
event.reject()
end
end)
end,
})
web.event.add_listener('NotificationReceived', {
callback = function(event)
-- TODO: Add action/click (-A)
local args = { '-a', 'null-browser', '-r', event.tag, event.title, event.message }
web.uv.spawn('notify-send', { args = args }, function(code)
if code ~= 0 then
print('[notify-send] Exit with status code: ' .. code)
end
end)
end,
})
print('ending...')
|