diff --git a/awesome/.config/awesome/autorun.sh b/awesome/.config/awesome/autorun.sh new file mode 100755 index 0000000..8c7447e --- /dev/null +++ b/awesome/.config/awesome/autorun.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +run() { + if ! pgrep -f "$1" ; + then + "$@"& + fi +} + +run "picom" +run "unclutter" +run "firefox" +run "copyq" +run "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" +run "nm-applet" +run "batsignal" +run "redshift" +run "sunshine" + +killall -q polybar +polybar left & +polybar right & +polybar middle & +polybar tray & +polybar xwindow & + +pkill xidlehook +xidlehook --detect-sleep --not-when-audio --timer 300 'cool-retro-term --fullscreen -e sh ~/cmatrix.sh' '' --timer 600 'pkill cool-retro-term && systemctl suspend' '' + diff --git a/awesome/.config/awesome/calendar.lua b/awesome/.config/awesome/calendar.lua new file mode 100644 index 0000000..4900913 --- /dev/null +++ b/awesome/.config/awesome/calendar.lua @@ -0,0 +1,269 @@ +------------------------------------------------- +-- Calendar Widget for Awesome Window Manager +-- Shows the current month and supports scroll up/down to switch month +-- More details could be found here: +-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/calendar-widget + +-- @author Pavel Makhov +-- @copyright 2019 Pavel Makhov +------------------------------------------------- + +local awful = require("awful") +local beautiful = require("beautiful") +local wibox = require("wibox") +local gears = require("gears") +local naughty = require("naughty") + +local calendar_widget = {} + +local function worker(user_args) + + local calendar_themes = { + nord = { + bg = '#2E3440', + fg = '#D8DEE9', + focus_date_bg = '#88C0D0', + focus_date_fg = '#000000', + weekend_day_bg = '#3B4252', + weekday_fg = '#88C0D0', + header_fg = '#E5E9F0', + border = '#4C566A' + }, + outrun = { + bg = '#0d0221', + fg = '#D8DEE9', + focus_date_bg = '#650d89', + focus_date_fg = '#2de6e2', + weekend_day_bg = '#261447', + weekday_fg = '#2de6e2', + header_fg = '#f6019d', + border = '#261447' + }, + dark = { + bg = '#000000', + fg = '#ffffff', + focus_date_bg = '#ffffff', + focus_date_fg = '#000000', + weekend_day_bg = '#444444', + weekday_fg = '#ffffff', + header_fg = '#ffffff', + border = '#333333' + }, + light = { + bg = '#ffffff', + fg = '#000000', + focus_date_bg = '#000000', + focus_date_fg = '#ffffff', + weekend_day_bg = '#AAAAAA', + weekday_fg = '#000000', + header_fg = '#000000', + border = '#CCCCCC' + }, + monokai = { + bg = '#272822', + fg = '#F8F8F2', + focus_date_bg = '#AE81FF', + focus_date_fg = '#ffffff', + weekend_day_bg = '#75715E', + weekday_fg = '#FD971F', + header_fg = '#F92672', + border = '#75715E' + }, + catppuccin = { + bg = '#181825', + fg = '#F8F8F2', + focus_date_bg = '#b4befe', + focus_date_fg = '#ffffff', + weekend_day_bg = '#1e1e2e', + weekday_fg = '#f2cdcd', + header_fg = '#cba6f7', + border = '#181825' + }, + naughty = { + bg = beautiful.notification_bg or beautiful.bg, + fg = beautiful.notification_fg or beautiful.fg, + focus_date_bg = beautiful.notification_fg or beautiful.fg, + focus_date_fg = beautiful.notification_bg or beautiful.bg, + weekend_day_bg = beautiful.bg_focus, + weekday_fg = beautiful.fg, + header_fg = beautiful.fg, + border = beautiful.border_normal + } + + } + + local args = user_args or {} + + if args.theme ~= nil and calendar_themes[args.theme] == nil then + naughty.notify({ + preset = naughty.config.presets.critical, + title = 'Calendar Widget', + text = 'Theme "' .. args.theme .. '" not found, fallback to default'}) + args.theme = 'naughty' + end + + local theme = args.theme or 'naughty' + local placement = args.placement or 'top' + local radius = args.radius or 8 + local next_month_button = args.next_month_button or 4 + local previous_month_button = args.previous_month_button or 5 + local start_sunday = args.start_sunday or false + + local styles = {} + local function rounded_shape(size) + return function(cr, width, height) + gears.shape.rounded_rect(cr, width, height, size) + end + end + + styles.month = { + padding = 4, + bg_color = calendar_themes[theme].bg, + border_width = 0, + } + + styles.normal = { + markup = function(t) return t end, + shape = rounded_shape(4) + } + + styles.focus = { + fg_color = calendar_themes[theme].focus_date_fg, + bg_color = calendar_themes[theme].focus_date_bg, + markup = function(t) return '' .. t .. '' end, + shape = rounded_shape(4) + } + + styles.header = { + fg_color = calendar_themes[theme].header_fg, + bg_color = calendar_themes[theme].bg, + markup = function(t) return '' .. t .. '' end + } + + styles.weekday = { + fg_color = calendar_themes[theme].weekday_fg, + bg_color = calendar_themes[theme].bg, + markup = function(t) return '' .. t .. '' end, + } + + local function decorate_cell(widget, flag, date) + if flag == 'monthheader' and not styles.monthheader then + flag = 'header' + end + + -- highlight only today's day + if flag == 'focus' then + local today = os.date('*t') + if not (today.month == date.month and today.year == date.year) then + flag = 'normal' + end + end + + local props = styles[flag] or {} + if props.markup and widget.get_text and widget.set_markup then + widget:set_markup(props.markup(widget:get_text())) + end + -- Change bg color for weekends + local d = { year = date.year, month = (date.month or 1), day = (date.day or 1) } + local weekday = tonumber(os.date('%w', os.time(d))) + local default_bg = (weekday == 0 or weekday == 6) + and calendar_themes[theme].weekend_day_bg + or calendar_themes[theme].bg + local ret = wibox.widget { + { + { + widget, + halign = 'center', + widget = wibox.container.place + }, + margins = (props.padding or 2) + (props.border_width or 0), + widget = wibox.container.margin + }, + shape = props.shape, + shape_border_color = props.border_color or '#000000', + shape_border_width = props.border_width or 0, + fg = props.fg_color or calendar_themes[theme].fg, + bg = props.bg_color or default_bg, + widget = wibox.container.background + } + + return ret + end + + local cal = wibox.widget { + date = os.date('*t'), + font = beautiful.get_font(), + fn_embed = decorate_cell, + long_weekdays = true, + start_sunday = start_sunday, + widget = wibox.widget.calendar.month + } + + local popup = awful.popup { + ontop = true, + visible = false, + shape = rounded_shape(radius), + offset = { y = 5 }, + border_width = 1, + border_color = calendar_themes[theme].border, + widget = cal + } + + popup:buttons( + awful.util.table.join( + awful.button({}, next_month_button, function() + local a = cal:get_date() + a.month = a.month + 1 + cal:set_date(nil) + cal:set_date(a) + popup:set_widget(cal) + end), + awful.button({}, previous_month_button, function() + local a = cal:get_date() + a.month = a.month - 1 + cal:set_date(nil) + cal:set_date(a) + popup:set_widget(cal) + end) + ) + ) + + function calendar_widget.toggle() + + if popup.visible then + -- to faster render the calendar refresh it and just hide + cal:set_date(nil) -- the new date is not set without removing the old one + cal:set_date(os.date('*t')) + popup:set_widget(nil) -- just in case + popup:set_widget(cal) + popup.visible = not popup.visible + else + if placement == 'top' then + awful.placement.top(popup, { margins = { top = 50 }, parent = awful.screen.focused() }) + elseif placement == 'top_right' then + awful.placement.top_right(popup, { margins = { top = 30, right = 10}, parent = awful.screen.focused() }) + elseif placement == 'top_left' then + awful.placement.top_left(popup, { margins = { top = 30, left = 10}, parent = awful.screen.focused() }) + elseif placement == 'bottom_right' then + awful.placement.bottom_right(popup, { margins = { bottom = 30, right = 10}, + parent = awful.screen.focused() }) + elseif placement == 'bottom_left' then + awful.placement.bottom_left(popup, { margins = { bottom = 30, left = 10}, + parent = awful.screen.focused() }) + else + awful.placement.top(popup, { margins = { top = 50 }, parent = awful.screen.focused() }) + end + + popup.visible = true + + end + end + + return calendar_widget + +end + +return setmetatable(calendar_widget, { __call = function(_, ...) + return worker(...) +end }) + diff --git a/awesome/.config/awesome/kpolybar.sh b/awesome/.config/awesome/kpolybar.sh new file mode 100755 index 0000000..90aea8c --- /dev/null +++ b/awesome/.config/awesome/kpolybar.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +killall -q polybar diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua new file mode 100644 index 0000000..1e011c1 --- /dev/null +++ b/awesome/.config/awesome/rc.lua @@ -0,0 +1,688 @@ +-- awesome_mode: api-level=4:screen=on +-- If LuaRocks is installed, make sure that packages installed through it are +-- found (e.g. lgi). If LuaRocks is not installed, do nothing. +pcall(require, "luarocks.loader") + +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +require("awful.autofocus") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +-- Notification library +local naughty = require("naughty") +-- Declarative object management +local ruled = require("ruled") +local hotkeys_popup = require("awful.hotkeys_popup") +-- Enable hotkeys help widget for VIM and other apps +-- when client with a matching name is opened: +require("awful.hotkeys_popup.keys") + +local dpi = beautiful.xresources.apply_dpi + +-- {{{ Error handling +-- Check if awesome encountered an error during startup and fell back to +-- another config (This code will only ever execute for the fallback config) +naughty.connect_signal("request::display_error", function(message, startup) + naughty.notification({ + urgency = "critical", + title = "Oops, an error happened" .. (startup and " during startup!" or "!"), + message = message, + }) +end) +-- }}} + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +beautiful.init("~/.config/awesome/theme-def.lua") + +-- This is used later as the default terminal and editor to run. +terminal = "wezterm" +editor = os.getenv("EDITOR") or "nvim" +editor_cmd = terminal .. " -e " .. editor + +-- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. +-- If you do not like this or do not have such a key, +-- I suggest you to remap Mod4 to another key using xmodmap or other tools. +-- However, you can use another modifier like Mod1, but it may interact with others. +modkey = "Mod4" +-- }}} + +-- {{{ Menu + +polybar = { + { + "Kill bar", + function() + awful.spawn.with_shell("sh ~/.config/awesome/kpolybar.sh") + end, + }, + { + "Spawn bar", + function() + awful.spawn.with_shell("sh ~/.config/awesome/spolybar.sh") + end, + }, +} + +mymainmenu = awful.menu({ + items = { + { + "Apps", + function() + awful.spawn.with_shell("sleep 0.5s && sh ~/.config/rofi/launchers/type-6/launcher.sh") + end, + }, + { + "Nemo", + function() + awful.spawn.with_shell("nemo") + end, + }, + { + "Scrshot", + function() + awful.spawn.with_shell("sleep 0.5s && flameshot full") + end, + }, + { "Terminal", terminal }, + { "Polybar", polybar, beautiful.menu_submenu_icon }, + { + "Xkill", + function() + awful.spawn.with_shell("sleep 0.5s && xkill") + end, + }, + { "Restart", awesome.restart }, + { + "Quit", + function() + awesome.quit() + end, + }, + }, +}) + +-- {{{ Tag layout +-- Table of layouts to cover with awful.layout.inc, order matters. +tag.connect_signal("request::default_layouts", function() + awful.layout.append_default_layouts({ + awful.layout.suit.spiral.dwindle, + awful.layout.suit.floating, + }) +end) +-- }}} + +-- {{{ Wallpaper +screen.connect_signal("request::wallpaper", function(s) + awful.wallpaper({ + screen = s, + widget = { + { + image = beautiful.wallpaper, + upscale = true, + downscale = true, + widget = wibox.widget.imagebox, + }, + valign = "center", + halign = "center", + tiled = false, + widget = wibox.container.tile, + }, + }) +end) +-- }}} + +-- {{{ Tags +screen.connect_signal("request::desktop_decoration", function(s) + -- Each screen has its own tag table. + local names = { "1", "2", "3", "4", "5" } + local l = awful.layout.suit + local layouts = { l.spiral.dwindle, l.spiral.dwindle, l.spiral.dwindle, l.spiral.dwindle, l.floating } + awful.tag(names, s, layouts) +end) +-- }}} + +-- {{{ Mouse bindings +awful.mouse.append_global_mousebindings({ + awful.button({}, 3, function() + mymainmenu:toggle() + end), + awful.button({}, 4, awful.tag.viewprev), + awful.button({}, 5, awful.tag.viewnext), +}) +-- }}} + +-- {{{ Calendar widget +local calendar_widget = require("calendar") +local cw = calendar_widget({ + theme = "catppuccin", + placement = "top center", + start_sunday = false, + radius = 8, +}) +-- }}} + +-- {{{ Key bindings + +-- General Awesome keys +awful.keyboard.append_global_keybindings({ + awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }), + 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 }, "Return", function() + awful.spawn(terminal) + end, { description = "open a terminal", group = "launcher" }), + + awful.key({}, "XF86AudioRaiseVolume", function() + awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ +5%") + end), + + awful.key({}, "XF86AudioMute", function() + awful.spawn.with_shell("pactl set-sink-mute @DEFAULT_SINK@ toggle") + end), + + awful.key({}, "F6", function() + awful.util.spawn("playerctl play-pause", false) + end), + + awful.key({}, "F8", function() + awful.util.spawn("playerctl next", false) + end), + + awful.key({}, "F7", function() + awful.util.spawn("playerctl previous", false) + end), + + awful.key({}, "XF86AudioLowerVolume", function() + awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ -5%") + end), + + awful.key({}, "XF86MonBrightnessDown", function() + awful.util.spawn("brightnessctl s 10%-") + end), + + awful.key({}, "XF86MonBrightnessUp", function() + awful.util.spawn("brightnessctl s +10%") + end), +}) + +-- Tags related keybindings +awful.keyboard.append_global_keybindings({ + 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" }), +}) + +-- Focus related keybindings +awful.keyboard.append_global_keybindings({ + awful.key({ "Mod1" }, "Tab", function() + awful.client.focus.byidx(1) + end, { description = "focus next 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, "Control" }, "n", function() + local c = awful.client.restore() + -- Focus restored client + if c then + c:activate({ raise = true, context = "key.unminimize" }) + end + end, { description = "restore minimized", group = "client" }), +}) + +-- Layout related keybindings +awful.keyboard.append_global_keybindings({ + 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 }, "u", awful.client.urgent.jumpto, { description = "jump to urgent client", group = "client" }), + 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, "Control" }, "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" }), + + -- Prompt + awful.key({ modkey }, "a", function() + awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher.sh") + end, { description = "run rofi apps", group = "launcher" }), + + awful.key({ modkey }, "r", function() + awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher2.sh") + end, { description = "run rofi programs", group = "launcher" }), + + awful.key({ modkey }, "w", function() + awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher1.sh") + end, { description = "run rofi windows", group = "launcher" }), + + awful.key({ modkey }, "e", function() + awful.spawn.with_shell("nemo") + end, { description = "run nemo", group = "launcher" }), + + awful.key({ modkey }, "`", function() + awful.spawn.with_shell("sh ~/.config/rofi/powermenu/type-6/powermenu.sh") + end, { description = "power options", group = "awesome" }), + + awful.key({ modkey }, "c", function() + cw.toggle() + end, { description = "calendar popup", group = "launcher" }), + + awful.key({}, "F4", function() + awful.spawn.with_shell("flameshot gui") + end, { description = "run flameshot", group = "launcher" }), + + awful.key({ modkey }, "p", function() + awful.spawn.with_shell("scrcpy -S --power-off-on-close --window-x 10") + end, { description = "run scrcpy", group = "launcher" }), + + awful.key({ modkey }, "z", function() + awful.spawn.with_shell("sh ~/.config/awesome/kpolybar.sh") + end, { description = "kill polybar", group = "launcher" }), + + awful.key({ modkey }, "x", function() + awful.spawn.with_shell("sh ~/.config/awesome/spolybar.sh") + end, { description = "run polybar", group = "launcher" }), +}) + +awful.keyboard.append_global_keybindings({ + awful.key({ + modifiers = { modkey }, + keygroup = "numrow", + description = "only view tag", + group = "tag", + on_press = function(index) + local screen = awful.screen.focused() + local tag = screen.tags[index] + if tag then + tag:view_only() + end + end, + }), + awful.key({ + modifiers = { modkey, "Shift" }, + keygroup = "numrow", + description = "move focused client to tag", + group = "tag", + on_press = function(index) + if client.focus then + local tag = client.focus.screen.tags[index] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + }), +}) + +client.connect_signal("request::default_mousebindings", function() + awful.mouse.append_client_mousebindings({ + awful.button({}, 1, function(c) + c:activate({ context = "mouse_click" }) + end), + awful.button({ modkey }, 1, function(c) + c:activate({ context = "mouse_click", action = "mouse_move" }) + end), + awful.button({ modkey }, 3, function(c) + c:activate({ context = "mouse_click", action = "mouse_resize" }) + end), + }) +end) + +client.connect_signal("request::default_keybindings", function() + awful.keyboard.append_client_keybindings({ + awful.key({ modkey }, "f", function(c) + c.fullscreen = not c.fullscreen + c:raise() + end, { description = "toggle fullscreen", group = "client" }), + awful.key({ modkey }, "q", function(c) + c:kill() + end, { description = "close", group = "client" }), + awful.key({ modkey }, "space", function(c) + awful.client.floating.toggle(c) + c.width = 1000 + c.height = 550 + awful.placement.centered(c) + end, { 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" }), + }) +end) + +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients. +ruled.client.connect_signal("request::rules", function() + -- All clients will match this rule. + ruled.client.append_rule({ + id = "global", + rule = {}, + properties = { + focus = awful.client.focus.filter, + raise = true, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap + awful.placement.no_offscreen, + }, + }) + + -- Floating clients. + ruled.client.append_rule({ + id = "floating", + rule_any = { + instance = { "copyq", "pinentry" }, + class = { + "Arandr", + "Blueman-manager", + "Gpick", + "Kruler", + "Sxiv", + "Tor Browser", + "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. + }, + 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 + ruled.client.append_rule({ + id = "titlebars", + rule_any = { type = { "normal", "dialog" } }, + properties = { titlebars_enabled = false }, + }) + + ruled.client.append_rule({ + rule_any = { + class = { "firefox" }, + }, + properties = { screen = 1 }, + }) + ruled.client.append_rule({ + rule = { instance = "chromium" }, + properties = { screen = 1, tag = "4", floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "Steam" }, + properties = { screen = 1, tag = "4", floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "discord" }, + properties = { screen = 1, tag = "2" }, + }) + ruled.client.append_rule({ + rule = { instance = "discord-screenaudio" }, + properties = { screen = 1, tag = "2" }, + }) + ruled.client.append_rule({ + rule_any = { + instance = { "youtube music" }, + }, + properties = { screen = 1, tag = "3" }, + }) + ruled.client.append_rule({ + rule_any = { + class = { "thunderbird" }, + }, + properties = { screen = 1, tag = "3" }, + }) + ruled.client.append_rule({ + rule = { instance = "vscodium" }, + properties = { screen = 1, tag = "4" }, + }) + ruled.client.append_rule({ + rule = { instance = "dolphin-emu" }, + properties = { floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "Windscribe" }, + properties = { floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "feh" }, + properties = { floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "nm-connection-editor" }, + properties = { floating = true }, + }) + + ruled.client.append_rule({ + rule = { instance = "scrcpy" }, + properties = { floating = true }, + }) + ruled.client.append_rule({ + rule = { instance = "polybar" }, + properties = { border_width = 0 }, + }) +end) +-- }}} + +-- {{{ Notifications + +naughty.config.defaults.ontop = true +naughty.config.defaults.screen = awful.screen.focused() +naughty.config.defaults.timeout = 4 +naughty.config.defaults.title = "Notification" +naughty.config.defaults.position = "top_right" +naughty.config.defaults.border_width = 0 +beautiful.notification_spacing = 16 + +local function create_notif(n) + local icon_visibility + + if n.icon == nil then + icon_visibility = false + else + icon_visibility = true + end + + -- Action widget + local action_widget = { + { + { + id = "text_role", + align = "center", + font = "Product Sans 10", + widget = wibox.widget.textbox, + }, + margins = { left = dpi(3), right = dpi(3) }, + widget = wibox.container.margin, + }, + widget = wibox.container.background, + } + + -- Apply action widget ^ + local actions = wibox.widget({ + notification = n, + base_layout = wibox.widget({ + spacing = dpi(20), + layout = wibox.layout.flex.horizontal, + }), + widget_template = action_widget, + widget = naughty.list.actions, + }) + + local function space_h(length, circumstances) + return wibox.widget({ + forced_width = length, + visible = circumstances, + layout = wibox.layout.fixed.horizontal, + }) + end + + -- Make other widgets + local title = wibox.widget.textbox() + title.font = "Product Sans Bold 12" + title.align = "center" + title.markup = n.title + + local message = wibox.widget.textbox() + message.font = "Product Sans 12" + message.align = "left" + message.markup = n.message + + local icon = wibox.widget({ + nil, + { + { + image = n.icon, + visible = icon_visibility, + widget = wibox.widget.imagebox, + }, + strategy = "max", + width = dpi(115), + height = dpi(115), + widget = wibox.container.constraint, + }, + expand = "none", + layout = wibox.layout.align.vertical, + }) + + local container = wibox.widget({ + { + title, + { + icon, + space_h(dpi(25), icon_visibility), + message, + layout = wibox.layout.fixed.horizontal, + }, + actions, + spacing = dpi(20), + layout = wibox.layout.fixed.vertical, + }, + margins = dpi(15), + widget = wibox.container.margin, + }) + + naughty.layout.box({ + notification = n, + type = "notification", + bg = beautiful.bg, + border_width = 0, + shape = function(cr, w, h) + gears.shape.rounded_rect(cr, w, h, 5) + end, + widget_template = { + { + { + { + widget = container, + }, + strategy = "max", + width = dpi(300), + height = dpi(200), + widget = wibox.container.constraint, + }, + strategy = "min", + width = dpi(300), + height = dpi(130), + widget = wibox.container.constraint, + }, + bg = beautiful.bg, + widget = wibox.container.background, + }, + }) +end + +naughty.connect_signal("request::display", function(n) + create_notif(n) +end) + +ruled.notification.connect_signal("request::rules", function() + ruled.notification.append_rule({ + rule = {}, + properties = { + screen = awful.screen.focused(), + implicit_timeout = 4, + }, + }) +end) + +-- }}} + +-- Autostart + +awful.spawn.with_shell("sh ~/.config/awesome/autorun.sh") +awful.spawn.with_shell("pkill http-server") +awful.spawn.with_shell("http-server ~/.config/chevron/dist") +awful.spawn.with_shell("sleep 20s && conky -c ~/.config/conky/mocha.conf") +awful.spawn.with_shell("kdeconnect-indicator") +awful.spawn.with_shell("feh --no-fehbg --bg-fill ~/Downloads/alena-aenami-stardust-1k.jpg") + +-- Garbage collection + +collectgarbage("setpause", 110) +collectgarbage("setstepmul", 1000) +gears.timer({ + timeout = 5, + autostart = true, + call_now = true, + callback = function() + collectgarbage("collect") + end, +}) diff --git a/awesome/.config/awesome/spolybar.sh b/awesome/.config/awesome/spolybar.sh new file mode 100755 index 0000000..e54246e --- /dev/null +++ b/awesome/.config/awesome/spolybar.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +polybar left & +polybar right & +polybar middle & +polybar tray & +polybar xwindow & diff --git a/awesome/.config/awesome/theme-def.lua b/awesome/.config/awesome/theme-def.lua new file mode 100644 index 0000000..cb930a0 --- /dev/null +++ b/awesome/.config/awesome/theme-def.lua @@ -0,0 +1,56 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi + +local gfs = require("gears.filesystem") +local themes_path = gfs.get_themes_dir() + +local theme = {} + +theme.font = "Product Sans 11" + +theme.bg_normal = "#181825" +theme.bg_focus = "#1e1e2e" +theme.bg_urgent = "#eba0ac" +theme.bg_minimize = "#313244" +theme.bg_systray = theme.bg_normal + +theme.fg_normal = "#cdd6f4" +theme.fg_focus = "#737994" +theme.fg_urgent = "#ea999c" +theme.fg_minimize = "#99d1db" + +theme.useless_gap = dpi(5) +theme.border_normal = "#1e1e2e" +theme.border_focus = "#1e1e2e" +theme.border_marked = "#1e1e2e" +theme.border_radius = dpi(8) +theme.border_width = dpi(0) + +theme.menu_height = 30 +theme.menu_width = 120 + +-- Generate taglist squares: +local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +) + +--Signals +client.connect_signal("focus", function(c) + c.border_color = theme.border_focus end) +client.connect_signal("unfocus", function(c) + c.border_color = theme.border_normal end) + +theme.icon_theme = nil + +return theme + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/polybar/.config/polybar/config.ini b/polybar/.config/polybar/config.ini new file mode 100644 index 0000000..734af34 --- /dev/null +++ b/polybar/.config/polybar/config.ini @@ -0,0 +1,284 @@ +[colors] +disabled = #707880 +Rosewater = #f5e0dc +Flamingo = #f2cdcd +Pink = #f5c2e7 +Mauve = #cba6f7 +Red = #f38ba8 +Maroon = #eba0ac +Peach = #fab387 +Yellow = #f9e2af +Green = #a6e3a1 +Teal = #94e2d5 +Sky = #89dceb +Sapphire = #74c7ec +Blue = #89b4fa +Lavender = #b4befe +Base = #1e1e2e +Mantle = #181825 + +[bar/left] + +width = 16% +offset-x = 1% +offset-y = 1% +height = 22pt +fixed-center = true + +background = ${colors.Mantle} +foreground = ${colors.Lavender} + +line-size = 1pt + +font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2" +font-1 = "RobotoMono Nerd Font:size=10;3" +font-2 = "RobotoMono Nerd Font:size=11;3" +font-3 = "NotoEmoji:scale=11;3" +font-4 = "Noto Sans CJK JP:size=10;3" + +modules-left = space space power xworkspaces sep space weather + +enable-ipc = true + +wm-restack = generic + +[bar/middle] + +width = 14% +offset-x = 43% +offset-y = 1% +height = 22pt +fixed-center = true + +background = ${colors.Mantle} +foreground = ${colors.Lavender} + +line-size = 1pt + +font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2" +font-1 = "RobotoMono Nerd Font:size=10;3" +font-2 = "RobotoMono Nerd Font:size=11;3" + +modules-center = day space sep space date space sep space time + +enable-ipc = true + +wm-restack = generic + +[bar/right] + +width = 8% +offset-x = 91% +offset-y = 1% +height = 22pt +fixed-center = true + +background = ${colors.Mantle} +foreground = ${colors.Lavender} + +line-size = 1pt + +font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2" +font-1 = "RobotoMono Nerd Font:size=10;3" +font-2 = "RobotoMono Nerd Font:size=11;3" + +modules-center = space pulseaudio space sep space backlight space +enable-ipc = true + +wm-restack = generic + +[bar/tray] + +width = 9% +offset-x = 81% +offset-y = 1% +height = 22pt +fixed-center = true + +background = ${colors.Mantle} +foreground = ${colors.Lavender} + +line-size = 1pt + +font-0 = "RobotoMono Nerd Font:size=10;3" + +modules-center = tray + +; tray-position = center + +; tray-detached = false + +; tray-maxsize = 16 + +enable-ipc = true + +wm-restack = generic + +[bar/xwindow] + +width = 19% +offset-x = 18% +offset-y = 1% +height = 22pt +fixed-center = true + +background = ${colors.Mantle} +foreground = ${colors.Lavender} + +line-size = 1pt + +font-0 = "RobotoMono Nerd Font:weight=bold:size=10;3" +font-1 = "Noto Sans CJK JP:style=Regular;size=10;1" + +modules-center = space xwindow space +enable-ipc = true + +wm-restack = generic + +[module/xworkspaces] +type = internal/xworkspaces + +label-active = +label-active-padding = 2 +label-active-foreground = ${colors.Lavender} +label-active-font = 2 + +label-occupied = +label-occupied-padding = 2 +label-occupied-font = 2 + +label-empty = +label-empty-foreground = ${colors.disabled} +label-empty-padding = 2 +label-empty-font = 2 + +[module/xwindow] + +type = internal/xwindow +format = +format-background = ${colors.Mantle} +format-foreground = ${colors.Lavender} +format-padding = 2 + +label = %title% +label-maxlen = 40 + +label-empty = ~/ +label-empty-foreground = ${colors.disabled} + +[module/pulseaudio] +type = internal/pulseaudio +format-volume-prefix = "墳 " +format-volume-prefix-foreground = ${colors.Rosewater} +format-volume = +format-volume-prefix-font = 3 + +label-volume = %percentage%% + +label-muted = muted +label-muted-foreground = ${colors.disabled} + +[network-base] +type = internal/network +interval = 5 +format-connected = +format-disconnected = +label-disconnected = disconnected +format-connected-foreground = ${colors.Lavender} + +[module/wlan] +inherit = network-base +interface-type = wireless +label-connected-font = 3 +label-connected = +label-connected-foreground = ${colors.Rosewater} + +[module/day] +type = internal/date +interval = 1 + +date = %A + +label = %date% +label-foreground = ${colors.Lavender} + +[module/date] +type = internal/date +interval = 1 + +date = %d-%m-%Y + +label = %date% +label-foreground = ${colors.Lavender} + +[module/time] +type = internal/date +interval = 1 + +date = %H:%M:%S + +label = %date% +label-foreground = ${colors.Lavender} + +[module/battery] +type = internal/battery +poll-interval = 5 +full-at = 99 +format-full-prefix = " " +format-charging-prefix = " " +format-discharging-prefix = " " +format-full-prefix-foreground = ${colors.Rosewater} +format-charging-prefix-foreground = ${colors.Rosewater} +format-discharging-prefix-foreground = ${colors.Red} +label-charging = %percentage%% +label-discharging = %percentage%% +label-full = %percentage%% + +[module/backlight] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ + +card = amdgpu_bl1 +use-actual-brightness = true +format-prefix = "盛 " +format-prefix-foreground = ${colors.Rosewater} +format-prefix-font = 3 +enable-scroll = true + +[module/tray] +type = internal/tray +format-margin = 8px +; tray-spacing = 8px +tray-padding = 4px + +[module/power] +type = custom/text +content = +content-font = 3 +content-foreground = ${colors.Red} +content-margin = 1 +click-left = "sh ~/.config/rofi/powermenu/type-6/powermenu.sh" + +[module/weather] +type = custom/script +exec = "sh ~/.config/polybar/weather.sh" +interval = 700 + +; decor + +[module/sep] +type = custom/text +content = "|" +content-foreground = ${colors.disabled} + +[module/space] +type = custom/text +content = " " + +[settings] +screenchange-reload = true +pseudo-transparency = true + +; vim:ft=dosini diff --git a/polybar/.config/polybar/weather.py b/polybar/.config/polybar/weather.py new file mode 100644 index 0000000..269bf14 --- /dev/null +++ b/polybar/.config/polybar/weather.py @@ -0,0 +1,99 @@ +import json +import requests + +def wc_extract(wc): + wc = str(wc) + if wc in ("0", "1"): + if day == "1": + return ("☀️") + else: + return("🌙") + elif wc == "2": + if day == "1": + return ("⛅") + else: + return("☁️") + elif wc in ("3", "45", "48"): + return ("☁️") + elif wc in ("51", "53", "55", "61", "63", "65", "80", "81", "82"): + return ("🌧️") + elif wc in ("56", "57", "66", "67", "85", "86"): + return ("🌨️") + elif wc in ("71", "73", "75", "77"): + return ("❄️") + elif wc in ("95", "96", "99"): + return ("⛈️") + +def json_extract(obj, path): + ''' + Extracts an element from a nested dictionary or + a list of nested dictionaries along a specified path. + If the input is a dictionary, a list is returned. + If the input is a list of dictionary, a list of lists is returned. + obj - list or dict - input dictionary or list of dictionaries + path - list - list of strings that form the path to the desired element + ''' + def extract(obj, path, ind, arr): + ''' + Extracts an element from a nested dictionary + along a specified path and returns a list. + obj - dict - input dictionary + path - list - list of strings that form the JSON path + ind - int - starting index + arr - list - output list + ''' + key = path[ind] + if ind + 1 < len(path): + if isinstance(obj, dict): + if key in obj.keys(): + extract(obj.get(key), path, ind + 1, arr) + else: + arr.append(None) + elif isinstance(obj, list): + if not obj: + arr.append(None) + else: + for item in obj: + extract(item, path, ind, arr) + else: + arr.append(None) + if ind + 1 == len(path): + if isinstance(obj, list): + if not obj: + arr.append(None) + else: + for item in obj: + arr.append(item.get(key, None)) + elif isinstance(obj, dict): + arr.append(obj.get(key, None)) + else: + arr.append(None) + return arr + if isinstance(obj, dict): + return extract(obj, path, 0, []) + elif isinstance(obj, list): + outer_arr = [] + for item in obj: + outer_arr.append(extract(item, path, 0, [])) + return outer_arr + +latitude = 26.50 +longitude = 80.24 + +wurl = "https://api.open-meteo.com/v1/forecast?latitude=" + str(latitude) + "&longitude=" + str(longitude) + "&hourly=temperature_2m,is_day¤t_weather=true&timezone=auto" + +wjson = requests.get(wurl).content +wjson = json.loads(wjson) +tmp = str(json_extract(wjson, ["current_weather", "temperature"])[0]) +day = str(json_extract(wjson, ["current_weather", "is_day"])[0]) +wcode = wc_extract(str(json_extract(wjson, ["current_weather", "weathercode"])[0])) + +temp = "" +for i in tmp: + if i == ".": + break + else: + temp += i + +print(wcode, temp+"°C") + diff --git a/polybar/.config/polybar/weather.sh b/polybar/.config/polybar/weather.sh new file mode 100755 index 0000000..423a9b7 --- /dev/null +++ b/polybar/.config/polybar/weather.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +sleep 5 +if 2>/dev/null 1>&2 ping -c 1 www.archlinux.org; then + python3 ~/.config/polybar/weather.py +else + echo '\_(ツ)_/' +fi diff --git a/rofi/.config/rofi/colors/adapta.rasi b/rofi/.config/rofi/colors/adapta.rasi new file mode 100644 index 0000000..dcde9e5 --- /dev/null +++ b/rofi/.config/rofi/colors/adapta.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #222D32FF; + background-alt: #29353BFF; + foreground: #B8C2C6FF; + selected: #00BCD4FF; + active: #21FF90FF; + urgent: #FF4B60FF; +} diff --git a/rofi/.config/rofi/colors/arc.rasi b/rofi/.config/rofi/colors/arc.rasi new file mode 100644 index 0000000..0dfb773 --- /dev/null +++ b/rofi/.config/rofi/colors/arc.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #2F343FFF; + background-alt: #383C4AFF; + foreground: #BAC5D0FF; + selected: #5294E2FF; + active: #98C379FF; + urgent: #E06B74FF; +} diff --git a/rofi/.config/rofi/colors/black.rasi b/rofi/.config/rofi/colors/black.rasi new file mode 100644 index 0000000..fa7b76f --- /dev/null +++ b/rofi/.config/rofi/colors/black.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #000000FF; + background-alt: #101010FF; + foreground: #FFFFFFFF; + selected: #62AEEFFF; + active: #98C379FF; + urgent: #E06B74FF; +} diff --git a/rofi/.config/rofi/colors/catppuccin.rasi b/rofi/.config/rofi/colors/catppuccin.rasi new file mode 100644 index 0000000..62c5945 --- /dev/null +++ b/rofi/.config/rofi/colors/catppuccin.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E1D2FFF; + background-alt: #282839FF; + foreground: #D9E0EEFF; + selected: #7AA2F7FF; + active: #ABE9B3FF; + urgent: #F28FADFF; +} diff --git a/rofi/.config/rofi/colors/cyberpunk.rasi b/rofi/.config/rofi/colors/cyberpunk.rasi new file mode 100644 index 0000000..f5fa0e7 --- /dev/null +++ b/rofi/.config/rofi/colors/cyberpunk.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #000B1EFF; + background-alt: #0A1528FF; + foreground: #0ABDC6FF; + selected: #0ABDC6FF; + active: #00FF00FF; + urgent: #FF0000FF; +} diff --git a/rofi/.config/rofi/colors/dracula.rasi b/rofi/.config/rofi/colors/dracula.rasi new file mode 100644 index 0000000..7ae606d --- /dev/null +++ b/rofi/.config/rofi/colors/dracula.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E1F29FF; + background-alt: #282A36FF; + foreground: #FFFFFFFF; + selected: #BD93F9FF; + active: #50FA7BFF; + urgent: #FF5555FF; +} diff --git a/rofi/.config/rofi/colors/everforest.rasi b/rofi/.config/rofi/colors/everforest.rasi new file mode 100644 index 0000000..83d4f71 --- /dev/null +++ b/rofi/.config/rofi/colors/everforest.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #323D43FF; + background-alt: #3C474DFF; + foreground: #DAD1BEFF; + selected: #7FBBB3FF; + active: #A7C080FF; + urgent: #E67E80FF; +} diff --git a/rofi/.config/rofi/colors/gruvbox.rasi b/rofi/.config/rofi/colors/gruvbox.rasi new file mode 100644 index 0000000..2ee85d0 --- /dev/null +++ b/rofi/.config/rofi/colors/gruvbox.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #282828FF; + background-alt: #353535FF; + foreground: #EBDBB2FF; + selected: #83A598FF; + active: #B8BB26FF; + urgent: #FB4934FF; +} diff --git a/rofi/.config/rofi/colors/lovelace.rasi b/rofi/.config/rofi/colors/lovelace.rasi new file mode 100644 index 0000000..80140ee --- /dev/null +++ b/rofi/.config/rofi/colors/lovelace.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1D1F28FF; + background-alt: #282A36FF; + foreground: #FDFDFDFF; + selected: #79E6F3FF; + active: #5ADECDFF; + urgent: #F37F97FF; +} diff --git a/rofi/.config/rofi/colors/navy.rasi b/rofi/.config/rofi/colors/navy.rasi new file mode 100644 index 0000000..1289f53 --- /dev/null +++ b/rofi/.config/rofi/colors/navy.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #021B21FF; + background-alt: #0C252BFF; + foreground: #F2F1B9FF; + selected: #44B5B1FF; + active: #7CBF9EFF; + urgent: #C2454EFF; +} diff --git a/rofi/.config/rofi/colors/nord.rasi b/rofi/.config/rofi/colors/nord.rasi new file mode 100644 index 0000000..c6bc05d --- /dev/null +++ b/rofi/.config/rofi/colors/nord.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #2E3440FF; + background-alt: #383E4AFF; + foreground: #E5E9F0FF; + selected: #81A1C1FF; + active: #A3BE8CFF; + urgent: #BF616AFF; +} diff --git a/rofi/.config/rofi/colors/onedark.rasi b/rofi/.config/rofi/colors/onedark.rasi new file mode 100644 index 0000000..7c76108 --- /dev/null +++ b/rofi/.config/rofi/colors/onedark.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E2127FF; + background-alt: #282B31FF; + foreground: #FFFFFFFF; + selected: #61AFEFFF; + active: #98C379FF; + urgent: #E06C75FF; +} diff --git a/rofi/.config/rofi/colors/paper.rasi b/rofi/.config/rofi/colors/paper.rasi new file mode 100644 index 0000000..c3d76e8 --- /dev/null +++ b/rofi/.config/rofi/colors/paper.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #F1F1F1FF; + background-alt: #E0E0E0FF; + foreground: #252525FF; + selected: #008EC4FF; + active: #10A778FF; + urgent: #C30771FF; +} diff --git a/rofi/.config/rofi/colors/solarized.rasi b/rofi/.config/rofi/colors/solarized.rasi new file mode 100644 index 0000000..9051e13 --- /dev/null +++ b/rofi/.config/rofi/colors/solarized.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #002B36FF; + background-alt: #073642FF; + foreground: #EEE8D5FF; + selected: #268BD2FF; + active: #859900FF; + urgent: #DC322FFF; +} diff --git a/rofi/.config/rofi/colors/tokyonight.rasi b/rofi/.config/rofi/colors/tokyonight.rasi new file mode 100644 index 0000000..1145cbd --- /dev/null +++ b/rofi/.config/rofi/colors/tokyonight.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Levi Lacoss (fishyfishfish55) + * Github : @fishyfishfish55 + * + * Colors + **/ + +* { + background: #15161EFF; + background-alt: #1A1B26FF; + foreground: #C0CAF5FF; + selected: #33467CFF; + active: #414868FF; + urgent: #F7768EFF; +} diff --git a/rofi/.config/rofi/colors/yousai.rasi b/rofi/.config/rofi/colors/yousai.rasi new file mode 100644 index 0000000..757cab3 --- /dev/null +++ b/rofi/.config/rofi/colors/yousai.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #F5E7DEFF; + background-alt: #EBDCD2FF; + foreground: #34302DFF; + selected: #D97742FF; + active: #BF8F60FF; + urgent: #B23636FF; +} diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi index 2658c20..58a5e0d 100644 --- a/rofi/.config/rofi/config.rasi +++ b/rofi/.config/rofi/config.rasi @@ -1,2614 +1,181 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rofi/basic/.config/rofi/config.rasi at main · catppuccin/rofi · GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content - - - - - - - - - - - - - - - - - - - - - - - - - - - Navigation Menu - - - Toggle navigation - - - - - - - - - - - - - - - - - - - - - - Sign in - - - - - - - - - - - - Product - - - - - - - - - - - - - - Actions - Automate any workflow - - - - - - - - - - - - Packages - Host and manage packages - - - - - - - - - - - - Security - Find and fix vulnerabilities - - - - - - - - - - - - Codespaces - Instant dev environments - - - - - - - - - - - - GitHub Copilot - Write better code with AI - - - - - - - - - - - - Code review - Manage code changes - - - - - - - - - - - - Issues - Plan and track work - - - - - - - - - - - - Discussions - Collaborate outside of code - - - - - - - - - Explore - - - - All features - - - - - - - Documentation - - - - - - - - - GitHub Skills - - - - - - - - - Blog - - - - - - - - - - - - - - Solutions - - - - - - - By size - - - - Enterprise - - - - - - - Teams - - - - - - - Startups - - - - - - - - By industry - - - - Healthcare - - - - - - - Financial services - - - - - - - Manufacturing - - - - - - - - By use case - - - - CI/CD & Automation - - - - - - - DevOps - - - - - - - DevSecOps - - - - - - - - - - - - Resources - - - - - - - Topics - - - - AI - - - - - - - DevOps - - - - - - - Security - - - - - - - Software Development - - - - - - - View all - - - - - - - - Explore - - - - Learning Pathways - - - - - - - - - White papers, Ebooks, Webinars - - - - - - - - - Customer Stories - - - - - - - Partners - - - - - - - - - - - - - - - Open Source - - - - - - - - - - - - GitHub Sponsors - Fund open source developers - - - - - - - - - - - - - - The ReadME Project - GitHub community articles - - - - - - - - - Repositories - - - - Topics - - - - - - - Trending - - - - - - - Collections - - - - - - - - - - - - - Enterprise - - - - - - - - - - - - - - Enterprise platform - AI-powered developer platform - - - - - - - - - Available add-ons - - - - - - - - Advanced Security - Enterprise-grade security features - - - - - - - - - - - - GitHub Copilot - Enterprise-grade AI features - - - - - - - - - - - - Premium Support - Enterprise-grade 24/7 support - - - - - - - - - - - - - Pricing - - - - - - - - - - - - - - - - - - Search or jump to... - - - - - - - - - - - - Search code, repositories, users, issues, pull requests... - - - - - - - - Search - - - - - - - - - - - - - - - Clear - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Search syntax tips - - - - - - - - - - - - - - - - - - Provide feedback - - - - - - - - - - - - - - We read every piece of feedback, and take your input very seriously. - - - Include my email address so I can be contacted - - - - - - - - - - - - - - Saved searches - - Use saved searches to filter your results more quickly - - - - - - - - - - - - - - - - - - - - Name - - - - - - - - Query - - - - - To see all available qualifiers, see our documentation. - - - - - - - - - - - - - - - - - - Sign in - - - - - Sign up - - Reseting focus - - - - - - - - - - - - You signed in with another tab or window. Reload to refresh your session. - You signed out in another tab or window. Reload to refresh your session. - You switched accounts on another tab or window. Reload to refresh your session. - - - - -Dismiss alert - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ message }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catppuccin - - / - - rofi - - - Public - - - - - - - - - - - - - - - - - -Notifications - You must be signed in to change notification settings - - - - - - -Fork - 27 - - - - - - - - - Star - 308 - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - Issues - 1 - - - - - - - - - - - Pull requests - 3 - - - - - - - - - - - Actions - - - - - - - - - - - - Projects - 0 - - - - - - - - - - - Security - - - - - - - - - - - Insights - - - - - - - - - - - -Additional navigation options - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - Issues - - - - - - - - - - - - - - - - Pull requests - - - - - - - - - - - - - - - - Actions - - - - - - - - - - - - - - - - Projects - - - - - - - - - - - - - - - - Security - - - - - - - - - - - - - - - - Insights - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Files mainBreadcrumbsrofi/basic/.config/rofi/config.rasi Blame Blame Latest commit HistoryHistory18 lines (16 loc) · 429 Bytes mainBreadcrumbsrofi/basic/.config/rofi/config.rasiTopFile metadata and controlsCodeBlame18 lines (16 loc) · 429 BytesRaw1234567891011121314151617configuration{ modi: "run,drun,window"; icon-theme: "Oranchelo"; show-icons: true; terminal: "alacritty"; drun-display-format: "{icon} {name}"; location: 0; disable-history: false; hide-scrollbar: true; display-drun: " Apps "; display-run: " Run "; display-window: " Window"; display-Network: " Network"; sidebar-mode: true;} -@theme "catppuccin-mocha" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You can’t perform that action at this time. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Configuration For Rofi Version: 1.7.3 + **/ + +configuration { + /*---------- General setting ----------*/ + modi: "drun,run,filebrowser,window"; + case-sensitive: false; + cycle: true; + filter: ""; + scroll-method: 0; + normalize-match: true; + show-icons: true; + icon-theme: "Papirus"; +/* cache-dir: ;*/ + steal-focus: false; +/* dpi: -1;*/ + + /*---------- Matching setting ----------*/ + matching: "normal"; + tokenize: true; + + /*---------- SSH settings ----------*/ + ssh-client: "ssh"; + ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; + parse-hosts: true; + parse-known-hosts: true; + + /*---------- Drun settings ----------*/ + drun-categories: ""; + drun-match-fields: "name,generic,exec,categories,keywords"; + drun-display-format: "{name} [({generic})]"; + drun-show-actions: false; + drun-url-launcher: "xdg-open"; + drun-use-desktop-cache: false; + drun-reload-desktop-cache: false; + drun { + /** Parse user desktop files. */ + parse-user: true; + /** Parse system desktop files. */ + parse-system: true; + } + + /*---------- Run settings ----------*/ + run-command: "{cmd}"; + run-list-command: ""; + run-shell-command: "{terminal} -e {cmd}"; + + /*---------- Fallback Icon ----------*/ + run,drun { + fallback-icon: "application-x-addon"; + } + + /*---------- Window switcher settings ----------*/ + window-match-fields: "title,class,role,name,desktop"; + window-command: "wmctrl -i -R {window}"; + window-format: "{w} - {c} - {t:0}"; + window-thumbnail: false; + + /*---------- Combi settings ----------*/ +/* combi-modi: "window,run";*/ +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ + + /*---------- History and Sorting ----------*/ + disable-history: false; + sorting-method: "normal"; + max-history-size: 25; + + /*---------- Display setting ----------*/ + display-window: "Windows"; + display-windowcd: "Window CD"; + display-run: "Run"; + display-ssh: "SSH"; + display-drun: "Apps"; + display-combi: "Combi"; + display-keys: "Keys"; + display-filebrowser: "Files"; + + /*---------- Misc setting ----------*/ + terminal: "rofi-sensible-terminal"; + font: "Mono 12"; + sort: false; + threads: 0; + click-to-exit: true; +/* ignored-prefixes: "";*/ +/* pid: "/run/user/1000/rofi.pid";*/ + + /*---------- File browser settings ----------*/ + filebrowser { +/* directory: "/home";*/ + directories-first: true; + sorting-method: "name"; + } + + /*---------- Other settings ----------*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + + /*---------- Keybindings ----------*/ +/* + kb-primary-paste: "Control+V,Shift+Insert"; + kb-secondary-paste: "Control+v,Insert"; + kb-clear-line: "Control+w"; + kb-move-front: "Control+a"; + kb-move-end: "Control+e"; + kb-move-word-back: "Alt+b,Control+Left"; + kb-move-word-forward: "Alt+f,Control+Right"; + kb-move-char-back: "Left,Control+b"; + kb-move-char-forward: "Right,Control+f"; + kb-remove-word-back: "Control+Alt+h,Control+BackSpace"; + kb-remove-word-forward: "Control+Alt+d"; + kb-remove-char-forward: "Delete,Control+d"; + kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h"; + kb-remove-to-eol: "Control+k"; + kb-remove-to-sol: "Control+u"; + kb-accept-entry: "Control+j,Control+m,Return,KP_Enter"; + kb-accept-custom: "Control+Return"; + kb-accept-custom-alt: "Control+Shift+Return"; + kb-accept-alt: "Shift+Return"; + kb-delete-entry: "Shift+Delete"; + kb-mode-next: "Shift+Right,Control+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; + kb-mode-complete: "Control+l"; + kb-row-left: "Control+Page_Up"; + kb-row-right: "Control+Page_Down"; + kb-row-down: "Down,Control+n"; + kb-page-prev: "Page_Up"; + kb-page-next: "Page_Down"; + kb-row-first: "Home,KP_Home"; + kb-row-last: "End,KP_End"; + kb-row-select: "Control+space"; + kb-screenshot: "Alt+S"; + kb-ellipsize: "Alt+period"; + kb-toggle-case-sensitivity: "grave,dead_grave"; + kb-toggle-sort: "Alt+grave"; + kb-cancel: "Escape,Control+g,Control+bracketleft"; + kb-custom-1: "Alt+1"; + kb-custom-2: "Alt+2"; + kb-custom-3: "Alt+3"; + kb-custom-4: "Alt+4"; + kb-custom-5: "Alt+5"; + kb-custom-6: "Alt+6"; + kb-custom-7: "Alt+7"; + kb-custom-8: "Alt+8"; + kb-custom-9: "Alt+9"; + kb-custom-10: "Alt+0"; + kb-custom-11: "Alt+exclam"; + kb-custom-12: "Alt+at"; + kb-custom-13: "Alt+numbersign"; + kb-custom-14: "Alt+dollar"; + kb-custom-15: "Alt+percent"; + kb-custom-16: "Alt+dead_circumflex"; + kb-custom-17: "Alt+ampersand"; + kb-custom-18: "Alt+asterisk"; + kb-custom-19: "Alt+parenleft"; + kb-select-1: "Super+1"; + kb-select-2: "Super+2"; + kb-select-3: "Super+3"; + kb-select-4: "Super+4"; + kb-select-5: "Super+5"; + kb-select-6: "Super+6"; + kb-select-7: "Super+7"; + kb-select-8: "Super+8"; + kb-select-9: "Super+9"; + kb-select-10: "Super+0"; + ml-row-left: "ScrollLeft"; + ml-row-right: "ScrollRight"; + ml-row-up: "ScrollUp"; + ml-row-down: "ScrollDown"; + me-select-entry: "MousePrimary"; + me-accept-entry: "MouseDPrimary"; + me-accept-custom: "Control+MouseDPrimary"; +*/ +} diff --git a/rofi/.config/rofi/images/a.png b/rofi/.config/rofi/images/a.png new file mode 100644 index 0000000..d70c5fb Binary files /dev/null and b/rofi/.config/rofi/images/a.png differ diff --git a/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png b/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png new file mode 100644 index 0000000..292c405 Binary files /dev/null and b/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png differ diff --git a/rofi/.config/rofi/images/alena-aenami-portal-crop.png b/rofi/.config/rofi/images/alena-aenami-portal-crop.png new file mode 100644 index 0000000..fda6a22 Binary files /dev/null and b/rofi/.config/rofi/images/alena-aenami-portal-crop.png differ diff --git a/rofi/.config/rofi/images/b.png b/rofi/.config/rofi/images/b.png new file mode 100644 index 0000000..34214a2 Binary files /dev/null and b/rofi/.config/rofi/images/b.png differ diff --git a/rofi/.config/rofi/images/c.png b/rofi/.config/rofi/images/c.png new file mode 100644 index 0000000..9e18e5f Binary files /dev/null and b/rofi/.config/rofi/images/c.png differ diff --git a/rofi/.config/rofi/images/d.png b/rofi/.config/rofi/images/d.png new file mode 100644 index 0000000..5f68a1b Binary files /dev/null and b/rofi/.config/rofi/images/d.png differ diff --git a/rofi/.config/rofi/images/e.jpg b/rofi/.config/rofi/images/e.jpg new file mode 100644 index 0000000..51995e4 Binary files /dev/null and b/rofi/.config/rofi/images/e.jpg differ diff --git a/rofi/.config/rofi/images/f.png b/rofi/.config/rofi/images/f.png new file mode 100644 index 0000000..fb69e73 Binary files /dev/null and b/rofi/.config/rofi/images/f.png differ diff --git a/rofi/.config/rofi/images/flowers-1.png b/rofi/.config/rofi/images/flowers-1.png new file mode 100644 index 0000000..155b593 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-1.png differ diff --git a/rofi/.config/rofi/images/flowers-2.png b/rofi/.config/rofi/images/flowers-2.png new file mode 100644 index 0000000..e4bf205 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-2.png differ diff --git a/rofi/.config/rofi/images/flowers-3.png b/rofi/.config/rofi/images/flowers-3.png new file mode 100644 index 0000000..2c6f3a6 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-3.png differ diff --git a/rofi/.config/rofi/images/g.png b/rofi/.config/rofi/images/g.png new file mode 100644 index 0000000..d42e1f4 Binary files /dev/null and b/rofi/.config/rofi/images/g.png differ diff --git a/rofi/.config/rofi/images/gradient.png b/rofi/.config/rofi/images/gradient.png new file mode 100644 index 0000000..e51c308 Binary files /dev/null and b/rofi/.config/rofi/images/gradient.png differ diff --git a/rofi/.config/rofi/images/h.jpg b/rofi/.config/rofi/images/h.jpg new file mode 100644 index 0000000..7829121 Binary files /dev/null and b/rofi/.config/rofi/images/h.jpg differ diff --git a/rofi/.config/rofi/images/i.jpg b/rofi/.config/rofi/images/i.jpg new file mode 100644 index 0000000..f31ee84 Binary files /dev/null and b/rofi/.config/rofi/images/i.jpg differ diff --git a/rofi/.config/rofi/images/j.jpg b/rofi/.config/rofi/images/j.jpg new file mode 100644 index 0000000..e70a715 Binary files /dev/null and b/rofi/.config/rofi/images/j.jpg differ diff --git a/rofi/.config/rofi/images/paper.png b/rofi/.config/rofi/images/paper.png new file mode 100644 index 0000000..4e073fd Binary files /dev/null and b/rofi/.config/rofi/images/paper.png differ diff --git a/rofi/.config/rofi/images/user.jpeg b/rofi/.config/rofi/images/user.jpeg new file mode 100644 index 0000000..3490fed Binary files /dev/null and b/rofi/.config/rofi/images/user.jpeg differ diff --git a/rofi/.config/rofi/images/yoi1-crop.png b/rofi/.config/rofi/images/yoi1-crop.png new file mode 100644 index 0000000..e820162 Binary files /dev/null and b/rofi/.config/rofi/images/yoi1-crop.png differ diff --git a/rofi/.config/rofi/images/yoi2.jpg b/rofi/.config/rofi/images/yoi2.jpg new file mode 100644 index 0000000..78f88c1 Binary files /dev/null and b/rofi/.config/rofi/images/yoi2.jpg differ diff --git a/rofi/.config/rofi/launchers/type-6/launcher.sh b/rofi/.config/rofi/launchers/type-6/launcher.sh new file mode 100644 index 0000000..5f8e6c4 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Rofi : Launcher (Modi Drun, Run, File Browser, Window) +# +## Available Styles +# +## style-1 style-2 style-3 style-4 style-5 +## style-6 style-7 style-8 style-9 style-10 + +dir="$HOME/.config/rofi/launchers/type-6" +theme='style-10' + +## Run +rofi \ + -show drun \ + -theme ${dir}/${theme}.rasi diff --git a/rofi/.config/rofi/launchers/type-6/launcher1.sh b/rofi/.config/rofi/launchers/type-6/launcher1.sh new file mode 100644 index 0000000..ba15d51 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher1.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +dir="$HOME/.config/rofi/launchers/type-6" +theme='style-10' + +## Run +rofi \ + -show window \ + -theme ${dir}/${theme}.rasi diff --git a/rofi/.config/rofi/launchers/type-6/launcher2.sh b/rofi/.config/rofi/launchers/type-6/launcher2.sh new file mode 100644 index 0000000..b7eda29 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher2.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +dir="$HOME/.config/rofi/launchers/type-6" +theme='style-10' + +## Run +rofi \ + -show run \ + -theme ${dir}/${theme}.rasi diff --git a/rofi/.config/rofi/launchers/type-6/style-10.rasi b/rofi/.config/rofi/launchers/type-6/style-10.rasi new file mode 100644 index 0000000..c0101d2 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/style-10.rasi @@ -0,0 +1,208 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,window"; + show-icons: true; + display-drun: "Apps"; + display-run: "Run"; + display-window: "Window"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +* { + font: "ProductSans 11"; + background: #181825; + background-alt: #181825; + foreground: #FFFFFF; + selected: #292c3c; + active: #292c3c; + urgent: #292c3c; +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 1000px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + border-radius: 15px; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + background-color: transparent; + orientation: horizontal; + children: [ "imagebox", "listbox" ]; +} + +imagebox { + padding: 20px; + background-color: transparent; + background-image: url("~/.config/rofi/images/alena-aenami-bluehour-1k-crop.png", height); + orientation: vertical; + children: [ "inputbar", "dummy", "mode-switcher" ]; +} + +listbox { + spacing: 20px; + padding: 20px; + background-color: transparent; + orientation: vertical; + children: [ "message", "listview" ]; +} + +dummy { + background-color: transparent; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 15px; + border-radius: 10px; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry" ]; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search"; + placeholder-color: inherit; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 20px; + background-color: transparent; + text-color: @foreground; +} +button { + padding: 15px; + border-radius: 10px; + background-color: @background-alt; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: @selected; + text-color: @foreground; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 10px; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 15px; + padding: 8px; + border-radius: 10px; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal { + background-color: inherit; + text-color: inherit; +} +element normal.urgent { + background-color: @urgent; + text-color: @foreground; +} +element normal.active { + background-color: @active; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @foreground; +} +element selected.urgent { + background-color: @urgent; + text-color: @foreground; +} +element selected.active { + background-color: @urgent; + text-color: @foreground; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +message { + background-color: transparent; +} +textbox { + padding: 15px; + border-radius: 10px; + background-color: @background-alt; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; +} +error-message { + padding: 15px; + border-radius: 20px; + background-color: @background; + text-color: @foreground; +} diff --git a/rofi/.config/rofi/powermenu/type-6/powermenu.sh b/rofi/.config/rofi/powermenu/type-6/powermenu.sh new file mode 100644 index 0000000..fac9fb7 --- /dev/null +++ b/rofi/.config/rofi/powermenu/type-6/powermenu.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Rofi : Power Menu +# +## Available Styles +# +## style-1 style-2 style-3 style-4 style-5 + +# Current Theme +dir="$HOME/.config/rofi/powermenu/type-6" +theme='style-1' + +# CMDs +lastlogin="`last $USER | head -n1 | tr -s ' ' | cut -d' ' -f5,6,7`" +uptime="`uptime -p | sed -e 's/up //g'`" +host=`hostname` + +# Options +hibernate='' +shutdown='' +reboot='' +lock='' +suspend='' +logout='' +yes='' +no='' + +# Rofi CMD +rofi_cmd() { + rofi -dmenu \ + -p " $USER@$host" \ + -mesg " Uptime: $uptime" \ + -theme ${dir}/${theme}.rasi +} + +# Confirmation CMD +confirm_cmd() { + rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ + -theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \ + -theme-str 'listview {columns: 2; lines: 1;}' \ + -theme-str 'element-text {horizontal-align: 0.5;}' \ + -theme-str 'textbox {horizontal-align: 0.5;}' \ + -dmenu \ + -p 'Confirmation' \ + -mesg 'Are you Sure?' \ + -theme ${dir}/${theme}.rasi +} + +# Ask for confirmation +confirm_exit() { + echo -e "$yes\n$no" | confirm_cmd +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$lock\n$suspend\n$logout\n$hibernate\n$reboot\n$shutdown" | rofi_cmd +} + +# Execute Command +run_cmd() { + selected="$(confirm_exit)" + if [[ "$selected" == "$yes" ]]; then + if [[ $1 == '--shutdown' ]]; then + systemctl poweroff + elif [[ $1 == '--reboot' ]]; then + systemctl reboot + elif [[ $1 == '--hibernate' ]]; then + systemctl hibernate + elif [[ $1 == '--suspend' ]]; then + systemctl suspend + elif [[ $1 == '--logout' ]]; then + betterlockscreen -l + fi + else + exit 0 + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $shutdown) + run_cmd --shutdown + ;; + $reboot) + run_cmd --reboot + ;; + $hibernate) + run_cmd --hibernate + ;; + $lock) + if [[ -x '/usr/bin/betterlockscreen' ]]; then + betterlockscreen -l + elif [[ -x '/usr/bin/i3lock' ]]; then + i3lock + fi + ;; + $suspend) + run_cmd --suspend + ;; + $logout) + run_cmd --logout + ;; +esac diff --git a/rofi/.config/rofi/powermenu/type-6/style-1.rasi b/rofi/.config/rofi/powermenu/type-6/style-1.rasi new file mode 100644 index 0000000..ed82580 --- /dev/null +++ b/rofi/.config/rofi/powermenu/type-6/style-1.rasi @@ -0,0 +1,147 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +* { + font: "ProductSans 11"; + background: #181825; + background-alt: #1e1e2e; + foreground: #FFFFFF; + selected: #b4befe; + active: #1e1e2e; + urgent: #1e1e2e; +} + +/* +USE_BUTTONS=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 760px; + x-offset: 0px; + y-offset: 0px; + + padding: 0px; + border: 0px solid; + border-radius: 15px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + background-color: transparent; + orientation: horizontal; + children: [ "imagebox", "listview" ]; +} + +/*****----- Imagebox -----*****/ +imagebox { + spacing: 30px; + padding: 20px; + background-color: transparent; + background-image: url("~/.config/rofi/images/alena-aenami-portal-crop.png", height); + children: [ "inputbar", "dummy", "message" ]; +} + +/*****----- User -----*****/ +userimage { + margin: 0px 0px; + border: 10px; + border-radius: 10px; + border-color: @background-alt; + background-color: transparent; + background-image: url("~/.config/rofi/images/a.png", height); +} + +/*****----- Inputbar -----*****/ +inputbar { + padding: 15px; + border-radius: 10px; + background-color: @urgent; + text-color: @foreground; + children: [ "dummy", "prompt", "dummy"]; +} + +dummy { + background-color: transparent; +} + +prompt { + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border-radius: 10px; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 30px; + margin: 30px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 40px 10px; + border-radius: 10px; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather bold 32"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +}
We read every piece of feedback, and take your input very seriously.
- To see all available qualifiers, see our documentation. -