diff --git a/.gitignore b/.gitignore index de9ced0..b0e613f 100644 --- a/.gitignore +++ b/.gitignore @@ -24,12 +24,13 @@ fish/channel rofi/theme.rasi # ---> BetterDiscord -# generalistic -discord/data/ +discord/data/betterdiscord.asar +discord/data/stable/* +!discord/data/stable/custom.scss +!discord/data/stable/settings.json discord/plugins/* +!discord/plugins/CollapsibleUI.config.json discord/themes/* -# specific -### there's actually nothing here yet lol # ---> status.cafe miscellany/websites/status cafe/*.css diff --git a/awesome/bindings/keys/global.lua b/awesome/bindings/keys/global.lua index c8844d5..79f95ad 100644 --- a/awesome/bindings/keys/global.lua +++ b/awesome/bindings/keys/global.lua @@ -212,7 +212,7 @@ function _M.get() group = "awesome" }), --- open the run prompt [global::mod+r] - awful.key({ modkey }, "r", + awful.key({ modkey, "Shift" }, "r", function() awful.screen.focused().mypromptbox:run() end, @@ -256,7 +256,47 @@ function _M.get() awful.util.spawn("rofi -show drun") end, { description = "open rofi launcher", - group = "launcher" }) + group = "launcher" }), + + --- ames: start/stop audio recording [global::mod+alt+r] + awful.key({ modkey, "Mod1" }, "r", + function() + awful.util.spawn("bash /home/nu/opt/ames/ames.sh -r") + end, + { description = "start/stop audio recording", + group = "ames" }), + + --- ames: screenshot selection [global::mod+alt+s] + awful.key({ modkey, "Mod1" }, "s", + function() + awful.util.spawn("bash /home/nu/opt/ames/ames.sh -s") + end, + { description = "screenshot selection", + group = "ames" }), + + --- ames: repeat previous screenshot selection [global::mod+alt+a] + awful.key({ modkey, "Mod1" }, "a", + function() + awful.util.spawn("bash /home/nu/opt/ames/ames.sh -a") + end, + { description = "repeat previous screenshot selection", + group = "ames" }), + + --- ames: screenshot active window [global::mod+alt+w] + awful.key({ modkey, "Mod1" }, "w", + function() + awful.util.spawn("bash /home/nu/opt/ames/ames.sh -w") + end, + { description = "screenshot active window", + group = "ames" }), + + --- ames: export copied text to card [global::mod+alt+c] + awful.key({ modkey, "Mod1" }, "c", + function() + awful.util.spawn("bash /home/nu/opt/ames/ames.sh -c") + end, + { description = "export copied text to card", + group = "ames" }) ) return global_keys diff --git a/awesome/main/rules.lua b/awesome/main/rules.lua index 8817384..84174e4 100644 --- a/awesome/main/rules.lua +++ b/awesome/main/rules.lua @@ -52,7 +52,8 @@ function _M.get(clientkeys, clientbuttons) "Picture-in-picture", "review files to import", -- Hydrus import window "Spotify", - "Calculator" + "Calculator", + "Steam Games List" }, role = { "AlarmWindow", -- Thunderbird's calendar. diff --git a/awesome/main/startup.lua b/awesome/main/startup.lua index 666521b..043e9cd 100644 --- a/awesome/main/startup.lua +++ b/awesome/main/startup.lua @@ -1,3 +1,7 @@ local awful = require("awful") -awful.spawn.single_instance("picom --config /home/nu/.config/picom/picom.conf") \ No newline at end of file +awful.spawn.single_instance("picom --config /home/nu/.config/picom/picom.conf") +--- TODO: fix reloads spawning an additional instance of caffeine +--- adding `killall -9 caffeine-ng` before doesn't work for some reason? +--- awful.spawn.single_instance("caffeine") +awful.spawn.single_instance("ibus-daemon -drxR") \ No newline at end of file diff --git a/awesome/main/tags.lua b/awesome/main/tags.lua index e30f120..9e3f807 100644 --- a/awesome/main/tags.lua +++ b/awesome/main/tags.lua @@ -8,18 +8,15 @@ local _M = {} function _M.get () local tags = {} - awful.tag.add("➊ home", + awful.tag.add("1", { layout = awful.layout.suit.floating, }) - awful.tag.add("➋ code", - { layout = awful.layout.suit.tile, }) - - awful.tag.add("➌ art", + awful.tag.add("2", { layout = awful.layout.suit.floating, }) - awful.tag.add("➍ games", + awful.tag.add("3", { layout = awful.layout.suit.floating, }) - + return tags end diff --git a/awesome/main/user_vars.lua b/awesome/main/user_vars.lua index d3866ac..cdac120 100644 --- a/awesome/main/user_vars.lua +++ b/awesome/main/user_vars.lua @@ -3,8 +3,7 @@ local home = os.getenv("HOME") local _M = { terminal = "alacritty", file_manager = "Thunar", - modkey = "Mod4", - wallpaper = "/usr/share/backgrounds/custom/space_station.jpg" + modkey = "Mod4" } return _M diff --git a/awesome/rc.lua b/awesome/rc.lua index 7f7d801..3f66e90 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -16,10 +16,12 @@ RC.vars = require("main.user_vars") require("main.errors") ------ theme stuff ---- TODO: implement a not-shitty way of handling multiple themes ---local theme = require("themes.spacestation") -beautiful.init("~/.config/awesome/themes/spacestation/theme.lua") -beautiful.wallpaper = RC.vars.wallpaper +local themename = "spacestation" +local style = { + vars = require("themes." .. themename .. ".vars") +} +beautiful.init("~/.config/awesome/themes/" .. themename .. "/theme.lua") +beautiful.wallpaper = style.vars.wallpaper ------- custom Local Library --- main @@ -69,7 +71,7 @@ root.keys(RC.global_keys) mykeyboardlayout = awful.widget.keyboardlayout() ------ statusbar -require("deco.statusbar") +require("themes."..themename..".statusbar") ------ rules --- rules to apply to new clients diff --git a/awesome/themes/neo/layouts/cornerne.png b/awesome/themes/neo/layouts/cornerne.png new file mode 100644 index 0000000..c85bd56 Binary files /dev/null and b/awesome/themes/neo/layouts/cornerne.png differ diff --git a/awesome/themes/neo/layouts/cornernew.png b/awesome/themes/neo/layouts/cornernew.png new file mode 100644 index 0000000..c3fd986 Binary files /dev/null and b/awesome/themes/neo/layouts/cornernew.png differ diff --git a/awesome/themes/neo/layouts/cornernw.png b/awesome/themes/neo/layouts/cornernw.png new file mode 100644 index 0000000..dfe78b3 Binary files /dev/null and b/awesome/themes/neo/layouts/cornernw.png differ diff --git a/awesome/themes/neo/layouts/cornernww.png b/awesome/themes/neo/layouts/cornernww.png new file mode 100644 index 0000000..f489010 Binary files /dev/null and b/awesome/themes/neo/layouts/cornernww.png differ diff --git a/awesome/themes/neo/layouts/cornerse.png b/awesome/themes/neo/layouts/cornerse.png new file mode 100644 index 0000000..023ae79 Binary files /dev/null and b/awesome/themes/neo/layouts/cornerse.png differ diff --git a/awesome/themes/neo/layouts/cornersew.png b/awesome/themes/neo/layouts/cornersew.png new file mode 100644 index 0000000..f7cfa1c Binary files /dev/null and b/awesome/themes/neo/layouts/cornersew.png differ diff --git a/awesome/themes/neo/layouts/cornersw.png b/awesome/themes/neo/layouts/cornersw.png new file mode 100644 index 0000000..c1453c9 Binary files /dev/null and b/awesome/themes/neo/layouts/cornersw.png differ diff --git a/awesome/themes/neo/layouts/cornersww.png b/awesome/themes/neo/layouts/cornersww.png new file mode 100644 index 0000000..a65a043 Binary files /dev/null and b/awesome/themes/neo/layouts/cornersww.png differ diff --git a/awesome/themes/neo/layouts/dwindle.png b/awesome/themes/neo/layouts/dwindle.png new file mode 100644 index 0000000..9902d22 Binary files /dev/null and b/awesome/themes/neo/layouts/dwindle.png differ diff --git a/awesome/themes/neo/layouts/dwindlew.png b/awesome/themes/neo/layouts/dwindlew.png new file mode 100644 index 0000000..9199049 Binary files /dev/null and b/awesome/themes/neo/layouts/dwindlew.png differ diff --git a/awesome/themes/neo/layouts/fairh.png b/awesome/themes/neo/layouts/fairh.png new file mode 100644 index 0000000..d41deea Binary files /dev/null and b/awesome/themes/neo/layouts/fairh.png differ diff --git a/awesome/themes/neo/layouts/fairhw.png b/awesome/themes/neo/layouts/fairhw.png new file mode 100644 index 0000000..bb50e3a Binary files /dev/null and b/awesome/themes/neo/layouts/fairhw.png differ diff --git a/awesome/themes/neo/layouts/fairv.png b/awesome/themes/neo/layouts/fairv.png new file mode 100644 index 0000000..f5f0288 Binary files /dev/null and b/awesome/themes/neo/layouts/fairv.png differ diff --git a/awesome/themes/neo/layouts/fairvw.png b/awesome/themes/neo/layouts/fairvw.png new file mode 100644 index 0000000..4f4ed52 Binary files /dev/null and b/awesome/themes/neo/layouts/fairvw.png differ diff --git a/awesome/themes/neo/layouts/floating.png b/awesome/themes/neo/layouts/floating.png new file mode 100644 index 0000000..b8061a0 Binary files /dev/null and b/awesome/themes/neo/layouts/floating.png differ diff --git a/awesome/themes/neo/layouts/floatingw.png b/awesome/themes/neo/layouts/floatingw.png new file mode 100644 index 0000000..4815894 Binary files /dev/null and b/awesome/themes/neo/layouts/floatingw.png differ diff --git a/awesome/themes/neo/layouts/fullscreen.png b/awesome/themes/neo/layouts/fullscreen.png new file mode 100644 index 0000000..d02f6fc Binary files /dev/null and b/awesome/themes/neo/layouts/fullscreen.png differ diff --git a/awesome/themes/neo/layouts/fullscreenw.png b/awesome/themes/neo/layouts/fullscreenw.png new file mode 100644 index 0000000..5c35bfa Binary files /dev/null and b/awesome/themes/neo/layouts/fullscreenw.png differ diff --git a/awesome/themes/neo/layouts/magnifier.png b/awesome/themes/neo/layouts/magnifier.png new file mode 100644 index 0000000..2925414 Binary files /dev/null and b/awesome/themes/neo/layouts/magnifier.png differ diff --git a/awesome/themes/neo/layouts/magnifierw.png b/awesome/themes/neo/layouts/magnifierw.png new file mode 100644 index 0000000..6209556 Binary files /dev/null and b/awesome/themes/neo/layouts/magnifierw.png differ diff --git a/awesome/themes/neo/layouts/max.png b/awesome/themes/neo/layouts/max.png new file mode 100644 index 0000000..8d20844 Binary files /dev/null and b/awesome/themes/neo/layouts/max.png differ diff --git a/awesome/themes/neo/layouts/maxw.png b/awesome/themes/neo/layouts/maxw.png new file mode 100644 index 0000000..85f5ce3 Binary files /dev/null and b/awesome/themes/neo/layouts/maxw.png differ diff --git a/awesome/themes/neo/layouts/spiral.png b/awesome/themes/neo/layouts/spiral.png new file mode 100644 index 0000000..d9434be Binary files /dev/null and b/awesome/themes/neo/layouts/spiral.png differ diff --git a/awesome/themes/neo/layouts/spiralw.png b/awesome/themes/neo/layouts/spiralw.png new file mode 100644 index 0000000..b78dd86 Binary files /dev/null and b/awesome/themes/neo/layouts/spiralw.png differ diff --git a/awesome/themes/neo/layouts/tile.png b/awesome/themes/neo/layouts/tile.png new file mode 100644 index 0000000..3ede21e Binary files /dev/null and b/awesome/themes/neo/layouts/tile.png differ diff --git a/awesome/themes/neo/layouts/tilebottom.png b/awesome/themes/neo/layouts/tilebottom.png new file mode 100644 index 0000000..6f8c257 Binary files /dev/null and b/awesome/themes/neo/layouts/tilebottom.png differ diff --git a/awesome/themes/neo/layouts/tilebottomw.png b/awesome/themes/neo/layouts/tilebottomw.png new file mode 100644 index 0000000..a1de7b2 Binary files /dev/null and b/awesome/themes/neo/layouts/tilebottomw.png differ diff --git a/awesome/themes/neo/layouts/tileleft.png b/awesome/themes/neo/layouts/tileleft.png new file mode 100644 index 0000000..31d6870 Binary files /dev/null and b/awesome/themes/neo/layouts/tileleft.png differ diff --git a/awesome/themes/neo/layouts/tileleftw.png b/awesome/themes/neo/layouts/tileleftw.png new file mode 100644 index 0000000..cf14c25 Binary files /dev/null and b/awesome/themes/neo/layouts/tileleftw.png differ diff --git a/awesome/themes/neo/layouts/tiletop.png b/awesome/themes/neo/layouts/tiletop.png new file mode 100644 index 0000000..98cade2 Binary files /dev/null and b/awesome/themes/neo/layouts/tiletop.png differ diff --git a/awesome/themes/neo/layouts/tiletopw.png b/awesome/themes/neo/layouts/tiletopw.png new file mode 100644 index 0000000..d1d0872 Binary files /dev/null and b/awesome/themes/neo/layouts/tiletopw.png differ diff --git a/awesome/themes/neo/layouts/tilew.png b/awesome/themes/neo/layouts/tilew.png new file mode 100644 index 0000000..fde2ca4 Binary files /dev/null and b/awesome/themes/neo/layouts/tilew.png differ diff --git a/awesome/themes/neo/statusbar.lua b/awesome/themes/neo/statusbar.lua new file mode 100644 index 0000000..14615eb --- /dev/null +++ b/awesome/themes/neo/statusbar.lua @@ -0,0 +1,84 @@ +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") + +-- Wibox handling library +local wibox = require("wibox") + +-- Custom Local Library: Common Functional Decoration +local deco = { + wallpaper = require("deco.wallpaper"), + taglist = require("deco.taglist"), + tasklist = require("deco.tasklist"), + borders = require("deco.borders") +} + +local taglist_buttons = deco.taglist() +local tasklist_buttons = deco.tasklist() + +local _M = {} + +-- Custom Local Library: widgets +local volume_widget = require('awesome-wm-widgets.pactl-widget.volume') + +-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + +-- Create a textclock widget +text_clock = wibox.widget.textclock('%l:%M %p :: %b. %e, %Y ') + +awful.screen.connect_for_each_screen(function(s) + -- Wallpaper + set_wallpaper(s) + + -- 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) + )) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist { + 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, + buttons = tasklist_buttons + } + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = 25 }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, +-- RC.launcher, + s.mytaglist, + s.mypromptbox, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + volume_widget{ + widget_type = 'arc', + tooltip = 'true' + }, + text_clock, + s.mylayoutbox + }, + } +end) diff --git a/awesome/themes/neo/submenu.png b/awesome/themes/neo/submenu.png new file mode 100644 index 0000000..b2778e2 Binary files /dev/null and b/awesome/themes/neo/submenu.png differ diff --git a/awesome/themes/neo/taglist/squarefw.png b/awesome/themes/neo/taglist/squarefw.png new file mode 100644 index 0000000..2a86430 Binary files /dev/null and b/awesome/themes/neo/taglist/squarefw.png differ diff --git a/awesome/themes/neo/taglist/squarew.png b/awesome/themes/neo/taglist/squarew.png new file mode 100644 index 0000000..913f2ca Binary files /dev/null and b/awesome/themes/neo/taglist/squarew.png differ diff --git a/awesome/themes/neo/theme.lua b/awesome/themes/neo/theme.lua new file mode 100644 index 0000000..672b570 --- /dev/null +++ b/awesome/themes/neo/theme.lua @@ -0,0 +1,153 @@ +------------------------------ +--- spacestation - ngoomie --- +------------------------------ + +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 = { + color = { + transparent = "#00000000", + dark = "#3b3b3b", + white = "#fbfbfb", + black = "#191919", + }, + fonts = { + main = "Noto Sans CJK JP " + } +} + +theme.font = theme.fonts.main .. "Medium 9" + +theme.bg_normal = theme.color.dark .. "70" +theme.bg_focus = theme.color.white +theme.bg_urgent = theme.color.dark +theme.bg_minimize = theme.color.transparent +theme.bg_systray = theme.color.transparent + +theme.fg_normal = theme.color.white +theme.fg_focus = theme.color.black +theme.fg_urgent = theme.color.white +theme.fg_minimize = theme.color.white + +theme.border_width = 0 +theme.border_normal = theme.color.dark +theme.border_focus = theme.color.dark +theme.border_marked = theme.color.dark + +theme.notification_font = theme.fonts.main .. "10" + +theme.notification_bg = theme.bg_normal +theme.notification_fg = theme.fg_normal +theme.notification_border_color = theme.border_normal + +theme.tooltip_fg_color = theme.color.white +theme.tooltip_bg_color = theme.color.dark .. 38 +theme.tooltip_border_color = theme.color.dark + +theme.prompt_bg = theme.bg_normal + +theme.tasklist_bg_normal = theme.bg_minimize + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +-- 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 +) + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_submenu_icon = themes_path.."default/submenu.png" +theme.menu_height = dpi(17) +theme.menu_width = dpi(100) +theme.menu_bg_normal = theme.bg_normal +theme.menu_bg_focus = theme.bg_focus +theme.menu_border_color = theme.fg_normal + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +-- Define the image to load +theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png" +theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png" + +theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png" + +theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png" + +theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png" + +theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png" + +theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png" + +-- You can use your own layout icons like this: +theme.layout_fairh = themes_path.."default/layouts/fairhw.png" +theme.layout_fairv = themes_path.."default/layouts/fairvw.png" +theme.layout_floating = themes_path.."default/layouts/floatingw.png" +theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png" +theme.layout_max = themes_path.."default/layouts/maxw.png" +theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png" +theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png" +theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png" +theme.layout_tile = themes_path.."default/layouts/tilew.png" +theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png" +theme.layout_spiral = themes_path.."default/layouts/spiralw.png" +theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png" +theme.layout_cornernw = themes_path.."default/layouts/cornernww.png" +theme.layout_cornerne = themes_path.."default/layouts/cornernew.png" +theme.layout_cornersw = themes_path.."default/layouts/cornersww.png" +theme.layout_cornerse = themes_path.."default/layouts/cornersew.png" + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + theme.menu_height, theme.bg_focus, theme.fg_focus +) + +-- Define the icon theme for application icons. If not set then the icons +-- from /usr/share/icons and /usr/share/icons/hicolor will be used. +theme.icon_theme = nil + +return theme diff --git a/awesome/themes/neo/titlebar/close_focus.png b/awesome/themes/neo/titlebar/close_focus.png new file mode 100644 index 0000000..01ef825 Binary files /dev/null and b/awesome/themes/neo/titlebar/close_focus.png differ diff --git a/awesome/themes/neo/titlebar/close_normal.png b/awesome/themes/neo/titlebar/close_normal.png new file mode 100644 index 0000000..5448ed8 Binary files /dev/null and b/awesome/themes/neo/titlebar/close_normal.png differ diff --git a/awesome/themes/neo/titlebar/floating_focus_active.png b/awesome/themes/neo/titlebar/floating_focus_active.png new file mode 100644 index 0000000..82dcc7c Binary files /dev/null and b/awesome/themes/neo/titlebar/floating_focus_active.png differ diff --git a/awesome/themes/neo/titlebar/floating_focus_inactive.png b/awesome/themes/neo/titlebar/floating_focus_inactive.png new file mode 100644 index 0000000..c19ba80 Binary files /dev/null and b/awesome/themes/neo/titlebar/floating_focus_inactive.png differ diff --git a/awesome/themes/neo/titlebar/floating_normal_active.png b/awesome/themes/neo/titlebar/floating_normal_active.png new file mode 100644 index 0000000..62342d1 Binary files /dev/null and b/awesome/themes/neo/titlebar/floating_normal_active.png differ diff --git a/awesome/themes/neo/titlebar/floating_normal_inactive.png b/awesome/themes/neo/titlebar/floating_normal_inactive.png new file mode 100644 index 0000000..e2bbdfa Binary files /dev/null and b/awesome/themes/neo/titlebar/floating_normal_inactive.png differ diff --git a/awesome/themes/neo/titlebar/maximized_focus_active.png b/awesome/themes/neo/titlebar/maximized_focus_active.png new file mode 100644 index 0000000..d7dffd7 Binary files /dev/null and b/awesome/themes/neo/titlebar/maximized_focus_active.png differ diff --git a/awesome/themes/neo/titlebar/maximized_focus_inactive.png b/awesome/themes/neo/titlebar/maximized_focus_inactive.png new file mode 100644 index 0000000..844389f Binary files /dev/null and b/awesome/themes/neo/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/themes/neo/titlebar/maximized_normal_active.png b/awesome/themes/neo/titlebar/maximized_normal_active.png new file mode 100644 index 0000000..a705f81 Binary files /dev/null and b/awesome/themes/neo/titlebar/maximized_normal_active.png differ diff --git a/awesome/themes/neo/titlebar/maximized_normal_inactive.png b/awesome/themes/neo/titlebar/maximized_normal_inactive.png new file mode 100644 index 0000000..4c1ab1f Binary files /dev/null and b/awesome/themes/neo/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/themes/neo/titlebar/minimize_focus.png b/awesome/themes/neo/titlebar/minimize_focus.png new file mode 100644 index 0000000..caaceb2 Binary files /dev/null and b/awesome/themes/neo/titlebar/minimize_focus.png differ diff --git a/awesome/themes/neo/titlebar/minimize_normal.png b/awesome/themes/neo/titlebar/minimize_normal.png new file mode 100644 index 0000000..36621d0 Binary files /dev/null and b/awesome/themes/neo/titlebar/minimize_normal.png differ diff --git a/awesome/themes/neo/titlebar/ontop_focus_active.png b/awesome/themes/neo/titlebar/ontop_focus_active.png new file mode 100644 index 0000000..312c00b Binary files /dev/null and b/awesome/themes/neo/titlebar/ontop_focus_active.png differ diff --git a/awesome/themes/neo/titlebar/ontop_focus_inactive.png b/awesome/themes/neo/titlebar/ontop_focus_inactive.png new file mode 100644 index 0000000..a48e1c5 Binary files /dev/null and b/awesome/themes/neo/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/themes/neo/titlebar/ontop_normal_active.png b/awesome/themes/neo/titlebar/ontop_normal_active.png new file mode 100644 index 0000000..117a203 Binary files /dev/null and b/awesome/themes/neo/titlebar/ontop_normal_active.png differ diff --git a/awesome/themes/neo/titlebar/ontop_normal_inactive.png b/awesome/themes/neo/titlebar/ontop_normal_inactive.png new file mode 100644 index 0000000..d3a10c8 Binary files /dev/null and b/awesome/themes/neo/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/themes/neo/titlebar/sticky_focus_active.png b/awesome/themes/neo/titlebar/sticky_focus_active.png new file mode 100644 index 0000000..814499b Binary files /dev/null and b/awesome/themes/neo/titlebar/sticky_focus_active.png differ diff --git a/awesome/themes/neo/titlebar/sticky_focus_inactive.png b/awesome/themes/neo/titlebar/sticky_focus_inactive.png new file mode 100644 index 0000000..21b000d Binary files /dev/null and b/awesome/themes/neo/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/themes/neo/titlebar/sticky_normal_active.png b/awesome/themes/neo/titlebar/sticky_normal_active.png new file mode 100644 index 0000000..bdb5595 Binary files /dev/null and b/awesome/themes/neo/titlebar/sticky_normal_active.png differ diff --git a/awesome/themes/neo/titlebar/sticky_normal_inactive.png b/awesome/themes/neo/titlebar/sticky_normal_inactive.png new file mode 100644 index 0000000..a96b9b1 Binary files /dev/null and b/awesome/themes/neo/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/themes/neo/vars.lua b/awesome/themes/neo/vars.lua new file mode 100644 index 0000000..b3f74bf --- /dev/null +++ b/awesome/themes/neo/vars.lua @@ -0,0 +1,5 @@ +local _M = { + wallpaper = "/usr/share/backgrounds/custom/space_station.jpg" +} + +return _M \ No newline at end of file diff --git a/awesome/deco/statusbar.lua b/awesome/themes/spacestation/statusbar.lua similarity index 99% rename from awesome/deco/statusbar.lua rename to awesome/themes/spacestation/statusbar.lua index 7a668f0..77ecffa 100644 --- a/awesome/deco/statusbar.lua +++ b/awesome/themes/spacestation/statusbar.lua @@ -81,4 +81,4 @@ awful.screen.connect_for_each_screen(function(s) s.mylayoutbox }, } -end) +end) \ No newline at end of file diff --git a/discord/data/stable/custom.scss b/discord/data/stable/custom.scss new file mode 100644 index 0000000..4711a95 --- /dev/null +++ b/discord/data/stable/custom.scss @@ -0,0 +1,27 @@ +// --- SQUARE ICONS +// -- border radius vars +$small: 4px; +$medium: $small; +$large: 6px; + +// -- clear mask that makes icons round in various spots +foreignObject[mask*="url(#"] { + mask: none; + //! SIDENOTE: while this removes the rounding, it also removes any cutout for the status icon. i'm going to be frank and say i think this looks like shit. i will look into crafting my own SVG instead at some point if i can, as an alternative to just entirely clearing it (but i'll still be using border rads for custom icon rounding) +} + +// -- now apply border rads +// - user list icons (DM list, server member list) +.wrapper_edb6e0 svg foreignObject { + border-radius: $small; +} + +// - user icons in chat +.avatar__08316 { + border-radius: $medium; +} + +// - profile modal icons +.clickable__35918 svg foreignObject { + border-radius: $large; +} \ No newline at end of file diff --git a/discord/data/stable/settings.json b/discord/data/stable/settings.json new file mode 100644 index 0000000..94080c4 --- /dev/null +++ b/discord/data/stable/settings.json @@ -0,0 +1,37 @@ +{ + "general": { + "voiceDisconnect": false, + "showToasts": true, + "mediaKeys": true + }, + "addons": { + "addonErrors": true, + "editAction": "detached" + }, + "customcss": { + "customcss": true, + "liveUpdate": true, + "openAction": "system" + }, + "editor": { + "lineNumbers": true, + "minimap": true, + "hover": true, + "quickSuggestions": true, + "fontSize": 14, + "renderWhitespace": "selection" + }, + "window": { + "transparency": false, + "removeMinimumSize": true, + "frame": false + }, + "developer": { + "debugLogs": false, + "devTools": true, + "debuggerHotkey": false, + "reactDevTools": false, + "inspectElement": true, + "devToolsWarning": true + } +} \ No newline at end of file diff --git a/discord/plugins/CollapsibleUI.config.json b/discord/plugins/CollapsibleUI.config.json new file mode 100644 index 0000000..a419fe6 --- /dev/null +++ b/discord/plugins/CollapsibleUI.config.json @@ -0,0 +1,46 @@ +{ + "currentVersionInfo": { + "version": "7.4.2", + "hasShownChangelog": true + }, + "cuiSettingsVersion": "10", + "disableTransitions": "false", + "transitionSpeed": "250", + "disableToolbarCollapse": "false", + "disableSettingsCollapse": "false", + "disableMsgBarBtnCollapse": "false", + "enableFullToolbarCollapse": "false", + "dynamicUncollapse": "true", + "dynamicUncollapseDistance": "30,30,30,30,30,30,30,30", + "dynamicUncollapseCloseDistance": "30,30,30,30,30,30,30,30", + "dynamicUncollapseDelay": "15", + "autoCollapse": "true", + "autoCollapseThreshold": "500,600,400,200,950,0,550,1000", + "conditionalAutoCollapse": "false", + "autoCollapseConditionals": ",,,,,,,", + "resizableChannelList": "true", + "resizableMembersList": "true", + "channelListWidth": "0", + "buttonsOrder": "1,2,4,6,7,3,5,8", + "dynamicUncollapseEnabled": "true,true,true,true,true,false,true,false", + "disabledButtonsStayCollapsed": "false", + "keyBindsEnabled": "true", + "keyStringList": "Alt+S,Alt+C,Alt+T,Alt+W,Alt+M,Alt+U,Alt+P,Alt+I", + "settingsButtonsMaxWidth": "100", + "messageBarButtonsMaxWidth": "200", + "messageBarButtonsMinWidth": "40", + "toolbarIconMaxWidth": "300", + "profilePanelMaxWidth": "340", + "toolbarMaxWidth": "800", + "userAreaMaxHeight": "300", + "msgBarMaxHeight": "400", + "windowBarHeight": "18", + "collapsedDistance": "0", + "buttonCollapseFudgeFactor": "10", + "serverListButtonActive": "true", + "channelListButtonActive": "true", + "msgBarButtonActive": "true", + "userAreaButtonActive": "true", + "profilePanelButtonActive": "false", + "membersListButtonActive": "true" +} \ No newline at end of file diff --git a/linkdir.pl b/linkdir.pl index c6315fd..89ba64e 100755 --- a/linkdir.pl +++ b/linkdir.pl @@ -14,12 +14,21 @@ my %confDirs = ( "omf" => "fish", "picom" => "picom", "rofi" => "rofi", - "BetterDiscord" => "discord", "Thunar" => "thunar", + "polybar" => "polybar" +); +my %otherDirs = ( + "/home/nu/.var/app/com.discordapp.Discord/config/BetterDiscord/" + => "discord" ); +# mount from %confDirs while (my ($key, $value) = each %confDirs) { `mount --bind "/home/nu/.config\/$key" "/mnt/Storage/(500) Programming/598. Groups of smaller projects/dotfiles\/$value"` } +# mount from %otherDirs +while (my ($key, $value) = each %otherDirs) { + `mount --bind "$key" "/mnt/Storage/(500) Programming/598. Groups of smaller projects/dotfiles\/$value"` +} print("Done!"); \ No newline at end of file diff --git a/miscellany/yt-dlp.pl b/miscellany/yt-dlp.pl new file mode 100755 index 0000000..c54b8ee --- /dev/null +++ b/miscellany/yt-dlp.pl @@ -0,0 +1,53 @@ +#! /usr/bin/env perl +use warnings; +use strict; +use utf8; +use YAML::Syck; +use File::Slurp; + +# vars with static values during runtime +my $skip = " Skipping...\n"; +my $conf = LoadFile('yt-dlp.yml'); +# declare empty vars for use later +my $site; +my $type; + +foreach my ($url) (@ARGV) { + if ($url =~ /^(https?:?\/\/)?((www|m)\.)?(youtube(-nocookie)?\.com|youtu\.be)/g ) { + + $site = "yout"; + print "[".$url."] YouTube URL"; + + if ( $url =~ /((watch\?v=)([0-9A-Za-z_-]{10}[048AEIMQUYcgkosw])|playlist|watch)(&|\?)(list=)(PL)([A-Z0-9]{16}|[0-9A-Za-z_-]{32})((&v=)([0-9A-Za-z_-]{10}[048AEIMQUYcgkosw]))?&?$/g ) { + + $type = "lst"; + print ": playlist\n"; + + } elsif ( $url =~ /((channel\/)(UC)?[0-9A-Za-z_-]{21}[AQgw]|(@|\/c\/|\/user\/).{1,})$/g ) { + + $type = "usr"; + print ": channel\n"; + + } elsif ( $url =~ /(watch\?v=)([0-9A-Za-z_-]{10}[048AEIMQUYcgkosw])(\?t=\d{3,5})?$/g ) { + + $type = "vid"; + print ": video\n"; + + } else { + print "\nCannot determine whether this is a video, playlist, or channel.".$skip; + } + + } elsif ($url =~ /^(https?:\/\/)?((www)\.)?(bilibili\.com)/g ) { + + $site = "bili"; + print "[".$url."] Bilibili URL\n"; + + } elsif ($url =~ /^(https?:\/\/)?((www)\.)?(nicovideo\.jp)/g ) { + + $site = "nico"; + print "[".$url."] niconico URL\n"; + + } else { + print "Unknown or invalid URL: `".$url."`".$skip; + } +} \ No newline at end of file diff --git a/miscellany/yt-dlp.yml b/miscellany/yt-dlp.yml new file mode 100644 index 0000000..502e32b --- /dev/null +++ b/miscellany/yt-dlp.yml @@ -0,0 +1,5 @@ +default: + video: --write-thumbnail --write-link --write-info-json + +youtube: + video: --write-thumbnail --write-link --sponsorblock-mark=all --write-info-json \ No newline at end of file diff --git a/polybar/config.ini b/polybar/config.ini new file mode 100644 index 0000000..d407fe2 --- /dev/null +++ b/polybar/config.ini @@ -0,0 +1,172 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +background = #282A2E +background-alt = #373B41 +foreground = #C5C8C6 +primary = #F0C674 +secondary = #8ABEB7 +alert = #A54242 +disabled = #707880 + +[bar/example] +width = 100% +height = 24pt +radius = 6 + +; dpi = 96 + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3pt + +border-size = 4pt +border-color = #00000000 + +padding-left = 0 +padding-right = 1 + +module-margin = 1 + +separator = | +separator-foreground = ${colors.disabled} + +font-0 = monospace;2 + +modules-left = xworkspaces xwindow +modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +; tray-position = right + +; wm-restack = generic +; wm-restack = bspwm +; wm-restack = i3 + +; override-redirect = true + +[module/xworkspaces] +type = internal/xworkspaces + +label-active = %name% +label-active-background = ${colors.background-alt} +label-active-underline= ${colors.primary} +label-active-padding = 1 + +label-occupied = %name% +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +[module/xwindow] +type = internal/xwindow +label = %title:0:60:...% + +[module/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / + +label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%% + +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.disabled} + +[module/pulseaudio] +type = internal/pulseaudio + +format-volume-prefix = "VOL " +format-volume-prefix-foreground = ${colors.primary} +format-volume = + +label-volume = %percentage%% + +label-muted = muted +label-muted-foreground = ${colors.disabled} + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +label-layout = %layout% +label-layout-foreground = ${colors.primary} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-foreground = ${colors.background} +label-indicator-background = ${colors.secondary} + +[module/memory] +type = internal/memory +interval = 2 +format-prefix = "RAM " +format-prefix-foreground = ${colors.primary} +label = %percentage_used:2%% + +[module/cpu] +type = internal/cpu +interval = 2 +format-prefix = "CPU " +format-prefix-foreground = ${colors.primary} +label = %percentage:2%% + +[network-base] +type = internal/network +interval = 5 +format-connected = +format-disconnected = +label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected + +[module/wlan] +inherit = network-base +interface-type = wireless +label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip% + +[module/eth] +inherit = network-base +interface-type = wired +label-connected = %{F#F0C674}%ifname%%{F-} %local_ip% + +[module/date] +type = internal/date +interval = 1 + +date = %H:%M +date-alt = %Y-%m-%d %H:%M:%S + +label = %date% +label-foreground = ${colors.primary} + +[settings] +screenchange-reload = true +pseudo-transparency = true + +; vim:ft=dosini diff --git a/thunderbird/filters/AliExpress/README.md b/thunderbird/filters/AliExpress/README.md new file mode 100644 index 0000000..5a104e3 --- /dev/null +++ b/thunderbird/filters/AliExpress/README.md @@ -0,0 +1,13 @@ +# Thunderbird filters for AliExpress emails + +## `sort.dat` + +Moves all AliExpress emails to a folder of your choice + +## `[SPAM] ae-news.dat` + +Deletes emails sent from domains like `ae-news.a*@mail.aliexpress.com` since these seem to all be promotional mumbo jumbo that fills your inbox + +## `[SPAM] promotion.dat` + +Deletes emails sent from domain `promotion@aliexpress.com` UNLESS their subject matches `Price drop on your Wish List`, as all of these other emails are promotional mumbo jumbo that fills your inbox (other people might want to edit this filter so it even deletes the wishlist price drop notifications, I'd imagine) diff --git a/thunderbird/filters/AliExpress/[SPAM] ae-news.dat b/thunderbird/filters/AliExpress/[SPAM] ae-news.dat new file mode 100644 index 0000000..5e958b3 --- /dev/null +++ b/thunderbird/filters/AliExpress/[SPAM] ae-news.dat @@ -0,0 +1,5 @@ +name="SPAM: AliExpress (ae-news)" +enabled="yes" +type="17" +action="Delete" +condition="AND (from,begins with,ae-news.a) AND (from,ends with,@mail.aliexpress.com)" diff --git a/thunderbird/filters/AliExpress/[SPAM] promotion.dat b/thunderbird/filters/AliExpress/[SPAM] promotion.dat new file mode 100644 index 0000000..a7936c1 --- /dev/null +++ b/thunderbird/filters/AliExpress/[SPAM] promotion.dat @@ -0,0 +1,5 @@ +name="SPAM: AliExpress (promotion@aliexpress.com minus wishlist price reductions)" +enabled="yes" +type="17" +action="Delete" +condition="AND (from,is,promotion@aliexpress.com) AND (subject,isn't,Price drop on your Wish List)" diff --git a/thunderbird/filters/AliExpress/sort.dat b/thunderbird/filters/AliExpress/sort.dat new file mode 100644 index 0000000..88e7d97 --- /dev/null +++ b/thunderbird/filters/AliExpress/sort.dat @@ -0,0 +1,6 @@ +name="AliExpress" +enabled="yes" +type="17" +action="Move to folder" +actionValue="imap://{YOUREMAIL}@{YOURPROVIDER}/INBOX/Shopping/AliExpress" +condition="OR (from,ends with,.aliexpress.com) OR (from,ends with,@aliexpress.com)" diff --git a/thunderbird/filters/Etsy/[SPAM] email@email.etsy.com.dat b/thunderbird/filters/Etsy/[SPAM] email@email.etsy.com.dat new file mode 100644 index 0000000..46e8ed1 --- /dev/null +++ b/thunderbird/filters/Etsy/[SPAM] email@email.etsy.com.dat @@ -0,0 +1,5 @@ +name="SPAM: Etsy" +enabled="yes" +type="17" +action="Delete" +condition="AND (from,is,email@email.etsy.com)" \ No newline at end of file diff --git a/thunderbird/filters/Etsy/sort.dat b/thunderbird/filters/Etsy/sort.dat new file mode 100644 index 0000000..46d4e1f --- /dev/null +++ b/thunderbird/filters/Etsy/sort.dat @@ -0,0 +1,6 @@ +name="Etsy" +enabled="yes" +type="17" +action="Move to folder" +actionValue="imap://{YOUREMAIL}@{YOURPROVIDER}/INBOX/Shopping/Etsy" +condition="OR (from,ends with,.etsy.com) OR (from,ends with,@etsy.com)" \ No newline at end of file diff --git a/thunderbird/filters/MyUS/sort.dat b/thunderbird/filters/MyUS/sort.dat new file mode 100644 index 0000000..2f7a529 --- /dev/null +++ b/thunderbird/filters/MyUS/sort.dat @@ -0,0 +1,6 @@ +name="MyUS" +enabled="yes" +type="48" +action="Move to folder" +actionValue="imap://{YOUREMAIL}@{YOURPROVIDER}/INBOX/Shopping/MyUS" +condition="OR (from,ends with,.myus.com) OR (from,ends with,@myus.com)" \ No newline at end of file diff --git a/thunderbird/filters/README.md b/thunderbird/filters/README.md new file mode 100644 index 0000000..6b1c881 --- /dev/null +++ b/thunderbird/filters/README.md @@ -0,0 +1,13 @@ +# Thunderbird filters + +Here are my Thunderbird email filters. These are individual filters for things like sorting inbox content or deleting stuff that amounts to spam from otherwise okay senders (i.e. promotional emails from shopping sites or whatever) + +You're meant to paste them into your `msgFilterRules.dat` for a given email account (after the header, which I have excluded from any individual filters saved here because they're basically just fragments of one of those files anyways) + +## subfolder README.md contents + +If there's more than a `sort.dat` in a given folder, it will have its own `README.md` which provides information on what each individual filter does. + +If a filter is for sorting emails into folders, you'll need to edit it to replace the `actionValue` in the file with the imap URL to the folder you want to move it to. by default all of mine here have my actual email replaced with `{YOUREMAIL}@{YOURPROVIDER}` (partially because a lot of these are for my irl personal email which I just don't want to share here lol). + +For the filters marked `[SPAM]`, if you have any sorting filters for the same domain you'll want to make sure the spam-deleting filters are listed above the sorting filters inside Thunderbird.