From e062b96f0950b7ddef80a07147d8a4359ea4f2b9 Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Tue, 4 Jan 2022 22:49:42 +0100 Subject: [PATCH] [AUTOCONFIG] Add rofi configuration --- .env | 2 + configs/awesome/rc.lua | 789 ++++++++++-------- configs/rofi/arc_dark_colors.rasi | 34 + configs/rofi/arc_dark_transparent_colors.rasi | 34 + configs/rofi/colors.rasi | 20 + configs/rofi/config.rasi | 208 +++++ configs/rofi/powermenu.rasi | 121 +++ configs/rofi/rofidmenu.rasi | 135 +++ configs/rofi/rofikeyhint.rasi | 137 +++ install.sh | 1 + scripts/tools/rofi/install.sh | 14 + scripts/window_manager/awesome/install.sh | 2 +- scripts/window_manager/i3/install.sh | 4 +- 13 files changed, 1131 insertions(+), 370 deletions(-) create mode 100644 configs/rofi/arc_dark_colors.rasi create mode 100644 configs/rofi/arc_dark_transparent_colors.rasi create mode 100644 configs/rofi/colors.rasi create mode 100644 configs/rofi/config.rasi create mode 100644 configs/rofi/powermenu.rasi create mode 100644 configs/rofi/rofidmenu.rasi create mode 100644 configs/rofi/rofikeyhint.rasi create mode 100755 scripts/tools/rofi/install.sh diff --git a/.env b/.env index 6557e25..eb6e508 100644 --- a/.env +++ b/.env @@ -16,3 +16,5 @@ WITH_NEOVIM_DEPENDENCIES=yes # Possible value = yes | no | force WITH_NEOVIM_CONFIG=yes WITH_LAZYGIT_CONFIG=yes + +WITH_ROFI_CONFIG=yes diff --git a/configs/awesome/rc.lua b/configs/awesome/rc.lua index 814ba62..0dd6b0d 100644 --- a/configs/awesome/rc.lua +++ b/configs/awesome/rc.lua @@ -22,22 +22,28 @@ require("awful.hotkeys_popup.keys") -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors + }) end -- Handle runtime errors after startup do local in_error = false - awesome.connect_signal("debug::error", function (err) + awesome.connect_signal("debug::error", function(err) -- Make sure we don't go into an endless error loop - if in_error then return end + if in_error then + return + end in_error = true - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, an error happened!", - text = tostring(err) }) + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) + }) in_error = false end) end @@ -60,43 +66,33 @@ editor_cmd = terminal .. " -e " .. editor modkey = "Mod4" -- Table of layouts to cover with awful.layout.inc, order matters. -awful.layout.layouts = { - awful.layout.suit.floating, - awful.layout.suit.tile, - awful.layout.suit.tile.left, - awful.layout.suit.tile.bottom, - awful.layout.suit.tile.top, - awful.layout.suit.fair, - awful.layout.suit.fair.horizontal, - awful.layout.suit.spiral, - awful.layout.suit.spiral.dwindle, - awful.layout.suit.max, - awful.layout.suit.max.fullscreen, - awful.layout.suit.magnifier, - awful.layout.suit.corner.nw, - -- awful.layout.suit.corner.ne, - -- awful.layout.suit.corner.sw, - -- awful.layout.suit.corner.se, +awful.layout.layouts = {awful.layout.suit.floating, awful.layout.suit.tile, awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, awful.layout.suit.tile.top, awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, awful.layout.suit.spiral, awful.layout.suit.spiral.dwindle, + awful.layout.suit.max, awful.layout.suit.max.fullscreen, awful.layout.suit.magnifier, + awful.layout.suit.corner.nw -- awful.layout.suit.corner.ne, +-- awful.layout.suit.corner.sw, +-- awful.layout.suit.corner.se, } -- }}} -- {{{ Menu -- Create a launcher widget and a main menu -myawesomemenu = { - { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", function() awesome.quit() end }, -} +myawesomemenu = {{"hotkeys", function() + hotkeys_popup.show_help(nil, awful.screen.focused()) +end}, {"manual", terminal .. " -e man awesome"}, {"edit config", editor_cmd .. " " .. awesome.conffile}, + {"restart", awesome.restart}, {"quit", function() + awesome.quit() +end}} -mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "open terminal", terminal } - } - }) +mymainmenu = awful.menu({ + items = {{"awesome", myawesomemenu, beautiful.awesome_icon}, {"open terminal", terminal}} +}) -mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, - menu = mymainmenu }) +mylauncher = awful.widget.launcher({ + image = beautiful.awesome_icon, + menu = mymainmenu +}) -- Menubar configuration menubar.utils.terminal = terminal -- Set the terminal for applications that require it @@ -110,44 +106,41 @@ mykeyboardlayout = awful.widget.keyboardlayout() mytextclock = wibox.widget.textclock() -- Create a wibox for each screen and add it -local taglist_buttons = gears.table.join( - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), - awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) - ) +local taglist_buttons = gears.table.join(awful.button({}, 1, function(t) + t:view_only() +end), awful.button({modkey}, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end +end), awful.button({}, 3, awful.tag.viewtoggle), awful.button({modkey}, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end +end), awful.button({}, 4, function(t) + awful.tag.viewnext(t.screen) +end), awful.button({}, 5, function(t) + awful.tag.viewprev(t.screen) +end)) -local tasklist_buttons = gears.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - c:emit_signal( - "request::activate", - "tasklist", - {raise = true} - ) - end - end), - awful.button({ }, 3, function() - awful.menu.client_list({ theme = { width = 250 } }) - end), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - end)) +local tasklist_buttons = gears.table.join(awful.button({}, 1, function(c) + if c == client.focus then + c.minimized = true + else + c:emit_signal("request::activate", "tasklist", { + raise = true + }) + end +end), awful.button({}, 3, function() + awful.menu.client_list({ + theme = { + width = 250 + } + }) +end), awful.button({}, 4, function() + awful.client.focus.byidx(1) +end), awful.button({}, 5, function() + awful.client.focus.byidx(-1) +end)) local function set_wallpaper(s) -- Wallpaper @@ -169,43 +162,50 @@ awful.screen.connect_for_each_screen(function(s) set_wallpaper(s) -- Each screen has its own tag table. - awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) + awful.tag({"1", "2", "3", "4", "5", "6", "7", "8", "9"}, s, awful.layout.layouts[1]) -- Create a promptbox for each screen s.mypromptbox = awful.widget.prompt() -- Create an imagebox widget which will contain an icon indicating which layout we're using. -- We need one layoutbox per screen. s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(gears.table.join( - awful.button({ }, 1, function () awful.layout.inc( 1) end), - awful.button({ }, 3, function () awful.layout.inc(-1) end), - awful.button({ }, 4, function () awful.layout.inc( 1) end), - awful.button({ }, 5, function () awful.layout.inc(-1) end))) + s.mylayoutbox:buttons(gears.table.join(awful.button({}, 1, function() + awful.layout.inc(1) + end), awful.button({}, 3, function() + awful.layout.inc(-1) + end), awful.button({}, 4, function() + awful.layout.inc(1) + end), awful.button({}, 5, function() + awful.layout.inc(-1) + end))) -- Create a taglist widget s.mytaglist = awful.widget.taglist { - screen = s, - filter = awful.widget.taglist.filter.all, + screen = s, + filter = awful.widget.taglist.filter.all, buttons = taglist_buttons } -- Create a tasklist widget s.mytasklist = awful.widget.tasklist { - screen = s, - filter = awful.widget.tasklist.filter.currenttags, + screen = s, + filter = awful.widget.tasklist.filter.currenttags, buttons = tasklist_buttons } -- Create the wibox - s.mywibox = awful.wibar({ position = "top", screen = s }) + s.mywibox = awful.wibar({ + position = "top", + screen = s + }) -- Add widgets to the wibox - s.mywibox:setup { + s.mywibox:setup{ layout = wibox.layout.align.horizontal, { -- Left widgets layout = wibox.layout.fixed.horizontal, mylauncher, s.mytaglist, - s.mypromptbox, + s.mypromptbox }, s.mytasklist, -- Middle widget { -- Right widgets @@ -213,229 +213,286 @@ awful.screen.connect_for_each_screen(function(s) mykeyboardlayout, wibox.widget.systray(), mytextclock, - s.mylayoutbox, - }, + s.mylayoutbox + } } end) -- }}} -- {{{ Mouse bindings -root.buttons(gears.table.join( - awful.button({ }, 3, function () mymainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) -)) +root.buttons(gears.table.join(awful.button({}, 3, function() + mymainmenu:toggle() +end), awful.button({}, 4, awful.tag.viewnext), awful.button({}, 5, awful.tag.viewprev))) -- }}} -- {{{ Key bindings -globalkeys = gears.table.join( - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - {escription="show help", group="awesome"}), - awful.key({ modkey, }, "Left", awful.tag.viewprev, - {description = "view previous", group = "tag"}), - awful.key({ modkey, }, "Right", awful.tag.viewnext, - {description = "view next", group = "tag"}), - awful.key({ modkey, }, "Escape", awful.tag.history.restore, - {description = "go back", group = "tag"}), +globalkeys = gears.table.join(awful.key({modkey}, "s", hotkeys_popup.show_help, { + escription = "show help", + group = "awesome" +}), awful.key({modkey}, "Left", awful.tag.viewprev, { + description = "view previous", + group = "tag" +}), awful.key({modkey}, "Right", awful.tag.viewnext, { + description = "view next", + group = "tag" +}), awful.key({modkey}, "Escape", awful.tag.history.restore, { + description = "go back", + group = "tag" +}), awful.key({modkey}, "j", function() + awful.client.focus.byidx(1) +end, { + description = "focus next by index", + group = "client" +}), awful.key({modkey}, "k", function() + awful.client.focus.byidx(-1) +end, { + description = "focus previous by index", + group = "client" +}), awful.key({modkey}, "w", function() + mymainmenu:show() +end, { + description = "show main menu", + group = "awesome" +}), -- Layout manipulation +awful.key({modkey, "Shift"}, "j", function() + awful.client.swap.byidx(1) +end, { + description = "swap with next client by index", + group = "client" +}), awful.key({modkey, "Shift"}, "k", function() + awful.client.swap.byidx(-1) +end, { + description = "swap with previous client by index", + group = "client" +}), awful.key({modkey, "Control"}, "j", function() + awful.screen.focus_relative(1) +end, { + description = "focus the next screen", + group = "screen" +}), awful.key({modkey, "Control"}, "k", function() + awful.screen.focus_relative(-1) +end, { + description = "focus the previous screen", + group = "screen" +}), awful.key({modkey}, "u", awful.client.urgent.jumpto, { + description = "jump to urgent client", + group = "client" +}), awful.key({modkey}, "Tab", function() + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end +end, { + description = "go back", + group = "client" +}), -- Standard program +awful.key({modkey}, "Return", function() + awful.spawn(terminal) +end, { + description = "open a terminal", + group = "launcher" +}), awful.key({modkey, "Control"}, "r", awesome.restart, { + description = "reload awesome", + group = "awesome" +}), awful.key({modkey, "Shift"}, "q", awesome.quit, { + description = "quit awesome", + group = "awesome" +}), awful.key({modkey}, "l", function() + awful.tag.incmwfact(0.05) +end, { + description = "increase master width factor", + group = "layout" +}), awful.key({modkey}, "h", function() + awful.tag.incmwfact(-0.05) +end, { + description = "decrease master width factor", + group = "layout" +}), awful.key({modkey, "Shift"}, "h", function() + awful.tag.incnmaster(1, nil, true) +end, { + description = "increase the number of master clients", + group = "layout" +}), awful.key({modkey, "Shift"}, "l", function() + awful.tag.incnmaster(-1, nil, true) +end, { + description = "decrease the number of master clients", + group = "layout" +}), awful.key({modkey, "Control"}, "h", function() + awful.tag.incncol(1, nil, true) +end, { + description = "increase the number of columns", + group = "layout" +}), awful.key({modkey, "Control"}, "l", function() + awful.tag.incncol(-1, nil, true) +end, { + description = "decrease the number of columns", + group = "layout" +}), awful.key({modkey}, "space", function() + awful.layout.inc(1) +end, { + description = "select next", + group = "layout" +}), awful.key({modkey, "Shift"}, "space", function() + awful.layout.inc(-1) +end, { + description = "select previous", + group = "layout" +}), awful.key({modkey, "Control"}, "n", function() + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal("request::activate", "key.unminimize", { + raise = true + }) + end +end, { + description = "restore minimized", + group = "client" +}), -- Prompt +awful.key({modkey}, "r", function() + awful.screen.focused().mypromptbox:run() +end, { + description = "run prompt", + group = "launcher" +}), awful.key({modkey}, "x", function() + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } +end, { + description = "lua execute prompt", + group = "awesome" +}), -- Menubar +awful.key({modkey}, "p", function() + awful.spawn.with_shell("rofi -modi 'run,ssh' -show drun &>> /tmp/rofi.log") + -- menubar.show() +end, { + description = "show the menubar", + group = "launcher" +})) - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - end, - {description = "focus next by index", group = "client"} - ), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - end, - {description = "focus previous by index", group = "client"} - ), - awful.key({ modkey, }, "w", function () mymainmenu:show() end, - {description = "show main menu", group = "awesome"}), - - -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, - {description = "swap with next client by index", group = "client"}), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, - {description = "swap with previous client by index", group = "client"}), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - {description = "jump to urgent client", group = "client"}), - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}), - - -- Standard program - awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, - {description = "open a terminal", group = "launcher"}), - awful.key({ modkey, "Control" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"}), - awful.key({ modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"}), - - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, - {description = "increase master width factor", group = "layout"}), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, - {description = "decrease master width factor", group = "layout"}), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, - {description = "increase the number of master clients", group = "layout"}), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, - {description = "decrease the number of master clients", group = "layout"}), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, - {description = "increase the number of columns", group = "layout"}), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}), - awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, - {description = "select next", group = "layout"}), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, - {description = "select previous", group = "layout"}), - - awful.key({ modkey, "Control" }, "n", - function () - local c = awful.client.restore() - -- Focus restored client - if c then - c:emit_signal( - "request::activate", "key.unminimize", {raise = true} - ) - end - end, - {description = "restore minimized", group = "client"}), - - -- Prompt - awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), - - awful.key({ modkey }, "x", - function () - awful.prompt.run { - prompt = "Run Lua code: ", - textbox = awful.screen.focused().mypromptbox.widget, - exe_callback = awful.util.eval, - history_path = awful.util.get_cache_dir() .. "/history_eval" - } - end, - {description = "lua execute prompt", group = "awesome"}), - -- Menubar - awful.key({ modkey }, "p", function() menubar.show() end, - {description = "show the menubar", group = "launcher"}) -) - -clientkeys = gears.table.join( - awful.key({ modkey, }, "f", - function (c) - c.fullscreen = not c.fullscreen - c:raise() - end, - {description = "toggle fullscreen", group = "client"}), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, - {description = "close", group = "client"}), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , - {description = "toggle floating", group = "client"}), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, - {description = "move to master", group = "client"}), - awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, - {description = "move to screen", group = "client"}), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, - {description = "toggle keep on top", group = "client"}), - awful.key({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end , - {description = "minimize", group = "client"}), - awful.key({ modkey, }, "m", - function (c) - c.maximized = not c.maximized - c:raise() - end , - {description = "(un)maximize", group = "client"}), - awful.key({ modkey, "Control" }, "m", - function (c) - c.maximized_vertical = not c.maximized_vertical - c:raise() - end , - {description = "(un)maximize vertically", group = "client"}), - awful.key({ modkey, "Shift" }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c:raise() - end , - {description = "(un)maximize horizontally", group = "client"}) -) +clientkeys = gears.table.join(awful.key({modkey}, "f", function(c) + c.fullscreen = not c.fullscreen + c:raise() +end, { + description = "toggle fullscreen", + group = "client" +}), awful.key({modkey, "Shift"}, "c", function(c) + c:kill() +end, { + description = "close", + group = "client" +}), awful.key({modkey, "Control"}, "space", awful.client.floating.toggle, { + description = "toggle floating", + group = "client" +}), awful.key({modkey, "Control"}, "Return", function(c) + c:swap(awful.client.getmaster()) +end, { + description = "move to master", + group = "client" +}), awful.key({modkey}, "o", function(c) + c:move_to_screen() +end, { + description = "move to screen", + group = "client" +}), awful.key({modkey}, "t", function(c) + c.ontop = not c.ontop +end, { + description = "toggle keep on top", + group = "client" +}), awful.key({modkey}, "n", function(c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true +end, { + description = "minimize", + group = "client" +}), awful.key({modkey}, "m", function(c) + c.maximized = not c.maximized + c:raise() +end, { + description = "(un)maximize", + group = "client" +}), awful.key({modkey, "Control"}, "m", function(c) + c.maximized_vertical = not c.maximized_vertical + c:raise() +end, { + description = "(un)maximize vertically", + group = "client" +}), awful.key({modkey, "Shift"}, "m", function(c) + c.maximized_horizontal = not c.maximized_horizontal + c:raise() +end, { + description = "(un)maximize horizontally", + group = "client" +})) -- Bind all key numbers to tags. -- Be careful: we use keycodes to make it work on any keyboard layout. -- This should map on the top row of your keyboard, usually 1 to 9. for i = 1, 9 do - globalkeys = gears.table.join(globalkeys, - -- View tag only. - awful.key({ modkey }, "#" .. i + 9, - function () - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - tag:view_only() - end - end, - {description = "view tag #"..i, group = "tag"}), - -- Toggle tag display. - awful.key({ modkey, "Control" }, "#" .. i + 9, - function () - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - awful.tag.viewtoggle(tag) - end - end, - {description = "toggle tag #" .. i, group = "tag"}), - -- Move client to tag. - awful.key({ modkey, "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - {description = "move focused client to tag #"..i, group = "tag"}), - -- Toggle tag on focused client. - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - {description = "toggle focused client on tag #" .. i, group = "tag"}) - ) + globalkeys = gears.table.join(globalkeys, -- View tag only. + awful.key({modkey}, "#" .. i + 9, function() + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, { + description = "view tag #" .. i, + group = "tag" + }), -- Toggle tag display. + awful.key({modkey, "Control"}, "#" .. i + 9, function() + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, { + description = "toggle tag #" .. i, + group = "tag" + }), -- Move client to tag. + awful.key({modkey, "Shift"}, "#" .. i + 9, function() + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, { + description = "move focused client to tag #" .. i, + group = "tag" + }), -- Toggle tag on focused client. + awful.key({modkey, "Control", "Shift"}, "#" .. i + 9, function() + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, { + description = "toggle focused client on tag #" .. i, + group = "tag" + })) end -clientbuttons = gears.table.join( - awful.button({ }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - end), - awful.button({ modkey }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - awful.mouse.client.move(c) - end), - awful.button({ modkey }, 3, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - awful.mouse.client.resize(c) - end) -) +clientbuttons = gears.table.join(awful.button({}, 1, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) +end), awful.button({modkey}, 1, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) + awful.mouse.client.move(c) +end), awful.button({modkey}, 3, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) + awful.mouse.client.resize(c) +end)) -- Set keys root.keys(globalkeys) @@ -443,72 +500,63 @@ root.keys(globalkeys) -- {{{ Rules -- Rules to apply to new clients (through the "manage" signal). -awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = awful.client.focus.filter, - raise = true, - keys = clientkeys, - buttons = clientbuttons, - screen = awful.screen.preferred, - placement = awful.placement.no_overlap+awful.placement.no_offscreen - } - }, - - -- Floating clients. - { rule_any = { - instance = { - "DTA", -- Firefox addon DownThemAll. - "copyq", -- Includes session name in class. - "pinentry", - }, - class = { - "Arandr", - "Blueman-manager", - "Gpick", - "Kruler", - "MessageWin", -- kalarm. - "Sxiv", - "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. - "Wpa_gui", - "veromix", - "xtightvncviewer"}, +awful.rules.rules = { -- All clients will match this rule. +{ + rule = {}, + properties = { + border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap + awful.placement.no_offscreen + } +}, -- Floating clients. +{ + rule_any = { + instance = {"DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry"}, + class = {"Arandr", "Blueman-manager", "Gpick", "Kruler", "MessageWin", -- kalarm. + "Sxiv", "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", "veromix", "xtightvncviewer"}, -- Note that the name property shown in xprop might be set slightly after creation of the client -- and the name shown there might not match defined rules here. - name = { - "Event Tester", -- xev. + name = {"Event Tester" -- xev. }, - role = { - "AlarmWindow", -- Thunderbird's calendar. - "ConfigManager", -- Thunderbird's about:config. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + role = {"AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up" -- e.g. Google Chrome's (detached) Developer Tools. } - }, properties = { floating = true }}, - - -- Add titlebars to normal clients and dialogs - { rule_any = {type = { "normal", "dialog" } - }, properties = { titlebars_enabled = true } }, - - -- Set Firefox to always map on the tag named "2" on screen 1. - -- { rule = { class = "Firefox" }, - -- properties = { screen = 1, tag = "2" } }, + properties = { + floating = true + } +}, -- Add titlebars to normal clients and dialogs +{ + rule_any = { + type = {"normal", "dialog"} + }, + properties = { + titlebars_enabled = true + } +} -- Set Firefox to always map on the tag named "2" on screen 1. +-- { rule = { class = "Firefox" }, +-- properties = { screen = 1, tag = "2" } }, } -- }}} -- {{{ Signals -- Signal function to execute when a new client appears. -client.connect_signal("manage", function (c) +client.connect_signal("manage", function(c) -- Set the windows at the slave, -- i.e. put it at the end of others instead of setting it master. -- if not awesome.startup then awful.client.setslave(c) end - if awesome.startup - and not c.size_hints.user_position - and not c.size_hints.program_position then + if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then -- Prevent clients from being unreachable after screen count changes. awful.placement.no_offscreen(c) end @@ -517,37 +565,38 @@ end) -- Add a titlebar if titlebars_enabled is set to true in the rules. client.connect_signal("request::titlebars", function(c) -- buttons for the titlebar - local buttons = gears.table.join( - awful.button({ }, 1, function() - c:emit_signal("request::activate", "titlebar", {raise = true}) - awful.mouse.client.move(c) - end), - awful.button({ }, 3, function() - c:emit_signal("request::activate", "titlebar", {raise = true}) - awful.mouse.client.resize(c) - end) - ) + local buttons = gears.table.join(awful.button({}, 1, function() + c:emit_signal("request::activate", "titlebar", { + raise = true + }) + awful.mouse.client.move(c) + end), awful.button({}, 3, function() + c:emit_signal("request::activate", "titlebar", { + raise = true + }) + awful.mouse.client.resize(c) + end)) - awful.titlebar(c) : setup { + awful.titlebar(c):setup{ { -- Left awful.titlebar.widget.iconwidget(c), buttons = buttons, - layout = wibox.layout.fixed.horizontal + layout = wibox.layout.fixed.horizontal }, { -- Middle { -- Title - align = "center", + align = "center", widget = awful.titlebar.widget.titlewidget(c) }, buttons = buttons, - layout = wibox.layout.flex.horizontal + layout = wibox.layout.flex.horizontal }, { -- Right - awful.titlebar.widget.floatingbutton (c), + awful.titlebar.widget.floatingbutton(c), awful.titlebar.widget.maximizedbutton(c), - awful.titlebar.widget.stickybutton (c), - awful.titlebar.widget.ontopbutton (c), - awful.titlebar.widget.closebutton (c), + awful.titlebar.widget.stickybutton(c), + awful.titlebar.widget.ontopbutton(c), + awful.titlebar.widget.closebutton(c), layout = wibox.layout.fixed.horizontal() }, layout = wibox.layout.align.horizontal @@ -556,9 +605,15 @@ end) -- Enable sloppy focus, so that focus follows mouse. client.connect_signal("mouse::enter", function(c) - c:emit_signal("request::activate", "mouse_enter", {raise = false}) + c:emit_signal("request::activate", "mouse_enter", { + raise = false + }) end) -client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) -client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) +client.connect_signal("focus", function(c) + c.border_color = beautiful.border_focus +end) +client.connect_signal("unfocus", function(c) + c.border_color = beautiful.border_normal +end) -- }}} diff --git a/configs/rofi/arc_dark_colors.rasi b/configs/rofi/arc_dark_colors.rasi new file mode 100644 index 0000000..fdf4418 --- /dev/null +++ b/configs/rofi/arc_dark_colors.rasi @@ -0,0 +1,34 @@ +/******************************************************* + * ROFI Arc Dark colors for EndeavourOS + * Maintainer: joekamprad + *******************************************************/ +* { + selected-normal-foreground: rgba ( 249, 249, 249, 100 % ); + foreground: rgba ( 196, 203, 212, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 64, 69, 82, 59 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 249, 249, 249, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 204, 102, 102, 100 % ); + alternate-urgent-background: rgba ( 75, 81, 96, 90 % ); + active-foreground: rgba ( 101, 172, 255, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 249, 249, 249, 100 % ); + alternate-active-background: rgba ( 75, 81, 96, 89 % ); + background: rgba ( 45, 48, 59, 95 % ); + alternate-normal-foreground: @foreground; + normal-background: @background; + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 64, 132, 214, 100 % ); + border-color: rgba ( 124, 131, 137, 100 % ); + spacing: 2; + separatorcolor: rgba ( 29, 31, 33, 100 % ); + urgent-background: rgba ( 29, 31, 33, 17 % ); + selected-urgent-background: rgba ( 165, 66, 66, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 29, 31, 33, 17 % ); + selected-active-background: rgba ( 68, 145, 237, 100 % ); +} diff --git a/configs/rofi/arc_dark_transparent_colors.rasi b/configs/rofi/arc_dark_transparent_colors.rasi new file mode 100644 index 0000000..4dc8195 --- /dev/null +++ b/configs/rofi/arc_dark_transparent_colors.rasi @@ -0,0 +1,34 @@ +/******************************************************* + * ROFI Arch Dark Transparent colors for EndeavourOS + * Maintainer: joekamprad + *******************************************************/ +* { + selected-normal-foreground: rgba ( 255, 147, 5, 100 % ); + foreground: rgba ( 196, 203, 212, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 45, 48, 59, 1 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 249, 249, 249, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 204, 102, 102, 100 % ); + alternate-urgent-background: rgba ( 75, 81, 96, 90 % ); + active-foreground: rgba ( 101, 172, 255, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 249, 249, 249, 100 % ); + alternate-active-background: rgba ( 45, 48, 59, 88 % ); + background: rgba ( 45, 48, 59, 88 % ); + alternate-normal-foreground: @foreground; + normal-background: rgba ( 45, 48, 59, 1 % ); + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 24, 26, 32, 100 % ); + border-color: rgba ( 124, 131, 137, 100 % ); + spacing: 2; + separatorcolor: rgba ( 45, 48, 59, 1 % ); + urgent-background: rgba ( 45, 48, 59, 15 % ); + selected-urgent-background: rgba ( 165, 66, 66, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 29, 31, 33, 17 % ); + selected-active-background: rgba ( 26, 28, 35, 100 % ); +} diff --git a/configs/rofi/colors.rasi b/configs/rofi/colors.rasi new file mode 100644 index 0000000..a4c1d6d --- /dev/null +++ b/configs/rofi/colors.rasi @@ -0,0 +1,20 @@ +* { + xbg: #1D1F28; + xfg: #FDFDFD; + x0: #282A36; + x1: #F37F97; + x2: #5ADECD; + x3: #F2A272; + x4: #8897F4; + x5: #C574DD; + x6: #79E6F3; + x7: #FDFDFD; + x8: #414458; + x9: #FF4971; + x10: #18E3C8; + x11: #FF8037; + x12: #556FFF; + x13: #B043D1; + x14: #3FDCEE; + x15: #FDFDFD; +} \ No newline at end of file diff --git a/configs/rofi/config.rasi b/configs/rofi/config.rasi new file mode 100644 index 0000000..9046042 --- /dev/null +++ b/configs/rofi/config.rasi @@ -0,0 +1,208 @@ +configuration { + modi: "combi,windowcd,run"; + lines: 10; + columns: 2; + font: "sans 13"; + bw: 0; + location: 0; + padding: 0; + fixed-num-lines: true; + show-icons: false; + sidebar-mode: true; + combi-modi: "window,run"; + separator-style: "none"; + hide-scrollbar: true; + fullscreen: false; + fake-transparency: false; + scroll-method: 1; + window-format: "[{w}] ·· {c} ·· {t}"; + click-to-exit: true; + show-match: false; + color-normal: "@xbg, @xfg, @xbg, @xfg, @xbg"; + color-urgent: "@xbg, @x1, @xbg, @x1, @xfg"; + color-active: "@xbg, @xfg, @xbg, @xfg, @xbg"; + color-window: "@xbg, @x1, @xfg"; + combi-hide-mode-prefix: false; + display-window: ""; + display-windowcd: ""; + display-run: ""; + display-ssh: ""; + display-drun: ""; + display-combi: ""; + kb-remove-word-back: "Control+BackSpace,Alt+d,Alt+BackSpace"; + kb-accept-entry: "Control+m,Return,KP_Enter,Alt+m"; + kb-mode-next: "Shift+Right,Control+Tab,Alt+l,Alt+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab,Alt+h"; + kb-row-left: "Control+Page_Up,Control+Alt+h"; + kb-row-right: "Control+Page_Down,Control+Alt+l"; + kb-row-up: "Up,Control+p,ISO_Left_Tab,Alt+k"; + kb-row-down: "Down,Control+n,Alt+j"; + kb-select-1: ""; + kb-select-2: ""; + kb-select-3: ""; + kb-select-4: ""; + kb-select-5: ""; + kb-select-6: ""; + kb-select-7: ""; + kb-select-8: ""; + kb-select-9: ""; + kb-select-10: ""; + me-select-entry: ""; + me-accept-entry: "MousePrimary"; + me-accept-custom: "MouseMiddle"; +} +* { + selected-normal-foreground: rgba ( 52, 60, 72, 100 % ); + foreground: rgba ( 224, 224, 224, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 52, 60, 72, 100 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 224, 224, 224, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 240, 98, 146, 100 % ); + alternate-urgent-background: rgba ( 52, 60, 72, 100 % ); + active-foreground: rgba ( 224, 224, 224, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 52, 60, 72, 100 % ); + alternate-active-background: rgba ( 52, 60, 72, 100 % ); + background: rgba ( 52, 60, 72, 100 % ); + alternate-normal-foreground: @foreground; + normal-background: rgba ( 52, 60, 72, 100 % ); + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 224, 224, 224, 100 % ); + border-color: rgba ( 240, 98, 146, 100 % ); + spacing: 2; + separatorcolor: rgba ( 224, 224, 224, 100 % ); + urgent-background: rgba ( 52, 60, 72, 100 % ); + selected-urgent-background: rgba ( 240, 98, 146, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 52, 60, 72, 100 % ); + selected-active-background: rgba ( 224, 224, 224, 100 % ); +} +window { + background-color: @xbg; + border: 0; + border-color: @x14; + border-radius: 12px; + padding: 40; + width: 50%; + height: 50%; +} +mainbox { + border: 0; + border-color: @x0; + padding: 6; +} +message { + border: 0px; + border-color: @x6; + padding: 1px; +} +textbox { + text-color: @xfg; +} +listview { + fixed-height: 0; + border: 0px; + border-color: @x6; + spacing: 2px; + scrollbar: false; + padding: 2px 0px 0px; +} +element { + border: 0; + padding: 1px; +} +element normal.normal { + background-color: rgba (0,0,0,0%); + text-color: @xfg; +} +element normal.urgent { + background-color: rgba (0,0,0,0%); + text-color: @x9; +} +element normal.active { + background-color: rgba (0,0,0,0%); + text-color: @x5; +} +element selected.normal { + background-color: rgba (0,0,0,0%); + text-color: @x13; +} +element selected.urgent { + background-color: rgba (0,0,0,0%); + text-color: @x13; +} +element selected.active { + background-color: rgba (0,0,0,0%); + text-color: @x13; +} +element alternate.normal { + background-color: rgba (0,0,0,0%); + text-color: @xfg; +} +element alternate.urgent { + background-color: rgba (0,0,0,0%); + text-color: @x9; +} +element alternate.active { + background-color: rgba (0,0,0,0%); + text-color: @x5; +} +scrollbar { + width: 4px ; + border: 0; + handle-color: @xfg; + handle-width: 8px ; + padding: 0; +} +sidebar { + border: 0px; + border-color: @x4; + border-radius: 20px; +} +button { + margin: 5px; + padding: 5px; + background-color: @xbg; + text-color: @x8; + border: 0px; + border-radius: 20px; + border-color: @x8; +} +button selected { + background-color: @xbg; + text-color: @x7; + border: 3px; + border-radius: 20px; + border-color: @x7; +} +inputbar { + spacing: 0px ; + text-color: @xfg; + padding: 1px ; + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +case-indicator { + spacing: 0; + text-color: @xfg; +} +entry { + spacing: 0; + text-color: @xfg; +} +prompt { + spacing: 0; + border: 0; + text-color: @xfg; +} +textbox-prompt-colon { + expand: false; + str: " "; + margin: 0px 0.3000em 0.0000em 0.0000em ; + text-color: inherit; +} + +@import "colors.rasi" \ No newline at end of file diff --git a/configs/rofi/powermenu.rasi b/configs/rofi/powermenu.rasi new file mode 100644 index 0000000..4a7889f --- /dev/null +++ b/configs/rofi/powermenu.rasi @@ -0,0 +1,121 @@ +/******************************************************* + * ROFI configs i3 powermenu for EndeavourOS + * Maintainer: joekamprad + *******************************************************/ +configuration { + font: "Sourcecode Pro Regular 10"; + show-icons: false; + icon-theme: "Arc-X-D"; + scroll-method: 0; + disable-history: false; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 10; + transparency: "real"; + width: 120px; + location: east; +/*y-offset: 18;*/ +/*x-offset: 850;*/ + transparency: "real"; +} +listview { + lines: 6; + columns: 1; + scrollbar: false; +} +element { + border: 0; + padding: 1px ; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px ; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px ; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px ; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; +} + diff --git a/configs/rofi/rofidmenu.rasi b/configs/rofi/rofidmenu.rasi new file mode 100644 index 0000000..e320338 --- /dev/null +++ b/configs/rofi/rofidmenu.rasi @@ -0,0 +1,135 @@ +/******************************************************* + * ROFI configs i3 Apps menu for EndeavourOS + * Maintainer: joekamprad + *******************************************************/ +configuration { + font: "Sourcecode Pro Regular 10"; + show-icons: true; + icon-theme: "Arc-X-D"; + display-drun: "Apps"; + drun-display-format: "{name}"; + scroll-method: 0; + disable-history: false; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 30; +} +listview { + lines: 10; + columns: 3; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 8px 0px 0px ; + border-color: @separatorcolor; + spacing: 8px ; + scrollbar: false; + padding: 2px 0px 0px ; +} +element { + border: 0; + padding: 1px ; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px ; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px ; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px ; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; +} diff --git a/configs/rofi/rofikeyhint.rasi b/configs/rofi/rofikeyhint.rasi new file mode 100644 index 0000000..ec32f9c --- /dev/null +++ b/configs/rofi/rofikeyhint.rasi @@ -0,0 +1,137 @@ +/******************************************************* + * ROFI configs i3 keyhint-menu for EndeavourOS + * Maintainer: joekamprad + *******************************************************/ +configuration { + font: "Sourcecode Pro Regular 10"; + show-icons: false; + icon-theme: "Arc-X-D"; + display-drun: "KeyHint"; + drun-display-format: "{name}"; + scroll-method: 0; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 30; +} +listview { + lines: 10; + columns: 1; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 8px 0px 0px ; + border-color: @separatorcolor; + spacing: 8px ; + scrollbar: false; + padding: 2px 0px 0px ; +} +element { + border: 0; + padding: 1px ; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px ; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px ; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px ; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; +} diff --git a/install.sh b/install.sh index df84b74..671dc0e 100755 --- a/install.sh +++ b/install.sh @@ -26,5 +26,6 @@ find ./scripts -type f -iname "*.sh" -exec chmod +x {} \; # Install and configure functionality ./scripts/tools/neovim/install.sh +./scripts/tools/rofi/install.sh ./scripts/window_manager/awesome/install.sh ./scripts/window_manager/i3/install.sh \ No newline at end of file diff --git a/scripts/tools/rofi/install.sh b/scripts/tools/rofi/install.sh new file mode 100755 index 0000000..3c7b375 --- /dev/null +++ b/scripts/tools/rofi/install.sh @@ -0,0 +1,14 @@ +source ./scripts/common.sh + +if [[ "$WITH_ROFI_CONFIG" == 'yes' || "$WITH_ROFI_CONFIG" == 'force' ]]; then + if [[ -d "$HOME/.config/rofi" && "$WITH_ROFI_CONFIG" == 'force' ]]; then + rm -rf "$HOME/.config/rofi" + echo '[INFO] Rofi config removed | Forced by environment variable' + fi + if [[ ! -d "$HOME/.config/rofi" ]]; then + ln -s "$CWD/configs/rofi" "$HOME/.config/rofi" + echo "[INFO] Rofi config linked with symbolic link : $CWD/configs/rofi -> $HOME/.config/rofi" + else + echo '[INFO] Rofi config already linked' + fi +fi \ No newline at end of file diff --git a/scripts/window_manager/awesome/install.sh b/scripts/window_manager/awesome/install.sh index a60feae..53793c1 100755 --- a/scripts/window_manager/awesome/install.sh +++ b/scripts/window_manager/awesome/install.sh @@ -6,7 +6,7 @@ if [[ "$WINDOW_MANAGER" == 'awesome' ]]; then echo '[INFO] Awesome installed' if [[ "$WITH_WINDOW_MANAGER_DEPENDENCIES" == 'yes' ]]; then - #install_package ripgrep fd dart lazygit rust-analyzer lldb + install_package alacritty rofi fi else echo '[INFO] Awesome already installed' diff --git a/scripts/window_manager/i3/install.sh b/scripts/window_manager/i3/install.sh index ff497d8..7225e21 100755 --- a/scripts/window_manager/i3/install.sh +++ b/scripts/window_manager/i3/install.sh @@ -5,9 +5,9 @@ if [[ "$WINDOW_MANAGER" == 'i3' ]]; then install_package i3-wm echo '[INFO] I3 installed' - if [[ "$WITH_WINDOW_MANAGER_DEPENDENCIES" == 'yes' ]]; then + #if [[ "$WITH_WINDOW_MANAGER_DEPENDENCIES" == 'yes' ]]; then #install_package ripgrep fd dart lazygit rust-analyzer lldb - fi + #fi else echo '[INFO] I3 already installed' fi