diff --git a/.gitignore b/.gitignore index 6ec9ce4..14882b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,156 +1,25 @@ # ---> Linux *~ - -# temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* - -# KDE directory preferences .directory - -# Linux trash folder which might appear on any partition or disk .Trash-* - -# .nfs files are created when an open file is removed but is still being accessed .nfs* # ---> Perl !Build/ .last_cover_stats -/META.yml -/META.json -/MYMETA.* *.o *.pm.tdy *.bs -# Devel::Cover -cover_db/ - -# Devel::NYTProf -nytprof.out - -# Dist::Zilla -/.build/ - -# Module::Build -_build/ -Build -Build.bat - -# Module::Install -inc/ - -# ExtUtils::MakeMaker -/blib/ -/_eumm/ -/*.gz -/Makefile -/Makefile.old -/MANIFEST.bak -/pm_to_blib -/*.zip - -# ---> Lua -# Compiled Lua sources -luac.out - -# luarocks build files -*.src.rock -*.zip -*.tar.gz - -# Object files -*.o -*.os -*.ko -*.obj -*.elf - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo -*.def -*.exp - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - - -# ---> Windows -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# ---> macOS -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# awesome widgets/modules/etc that should not be included +# ---> awesomewm awesome/awesome-wm-widgets/ awesome/cyclefocus/ -# VS Code -.vscode/ \ No newline at end of file +# ---> fish/oh my fish +fish/bundle +fish/channel + +# ---> rofi +# plain dumped theme that only serves as a reference +rofi/theme.rasi \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..698c39c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "cSpell.ignoreWords": [ + "byidx", + "drun", + "filebrowser", + "incmwfact", + "incncol", + "incnmaster", + "jumpto", + "mainmenu", + "moveresize", + "mypromptbox", + "rclick", + "textbox", + "viewnext", + "viewprev" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 9783aef..aeb4808 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # dotfiles A collection of my dotfiles and other miscellaneous configs and scripts and whatnot -Unless mentioned otherwise, everything here is licensed under MIT \ No newline at end of file +Unless mentioned otherwise, everything here is licensed under MIT diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml index 073f6e9..892c903 100644 --- a/alacritty/alacritty.yml +++ b/alacritty/alacritty.yml @@ -24,11 +24,6 @@ window: # General application class general: Alacritty - # Override the variant of the System theme/GTK theme/Wayland client side - # decorations. Commonly supported values are `Dark`, `Light`, and `None` for - # auto pick-up. Set this to `None` to use the default theme variant. - #decorations_theme_variant: None - scrolling: history: 150 transparent_background_colors: true diff --git a/awesome/README.md b/awesome/README.md index 4cd4c55..66b15c7 100644 --- a/awesome/README.md +++ b/awesome/README.md @@ -1,12 +1,19 @@ # awesome config + ## Deps + - picom - [Fira Code](https://github.com/tonsky/FiraCode) *(technically optional, but the `spacestation` theme uses it)* - pactl [fc38 `pulseaudio-utils`] (for `volume_widget`) + ## Credits + ### Widgets/modules/etc I use -_You'll need to download these yourself if you're taking bits from my dotfiles_ + +You'll need to download these yourself if you're taking bits from my dotfiles + - `volume_widget` comes from [awesome-wm-widgets by streetturtle](https://github.com/streetturtle/awesome-wm-widgets) (MIT) -- `cyclefocus` comes from [awesome-cyclefocus by blueyed](https://github.com/blueyed/awesome-cyclefocus) (GPL 2.0) + ### Other people's dotfiles I took from + - Modularization is from [epsi-rns' awesome dotfiles](https://gitlab.com/epsi-rns/dotfiles) (MIT) diff --git a/awesome/bindings/keys/client.lua b/awesome/bindings/keys/client.lua index 02cc845..06b42c3 100644 --- a/awesome/bindings/keys/client.lua +++ b/awesome/bindings/keys/client.lua @@ -7,47 +7,79 @@ local modkey = RC.vars.modkey ------------------------------------------ function _M.get() local client_keys = gears.table.join( - awful.key({ modkey, }, "f", - function (c) + awful.key({ modkey }, "f", + function(c) c.fullscreen = not c.fullscreen c:raise() end, - {description = "toggle fullscreen", group = "client"}), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, - {description = "close", group = "client"}), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , - {description = "toggle floating", group = "client"}), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, - {description = "move to master", group = "client"}), - awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, - {description = "move to screen", group = "client"}), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, - {description = "toggle keep on top", group = "client"}), - awful.key({ modkey, }, "n", - function (c) + { description = "toggle fullscreen", + group = "client"}), + + awful.key({ modkey, "Shift" }, "c", + function(c) + c:kill() + end, + { description = "close", + group = "client" }), + + awful.key({ modkey, "Control" }, "space", + awful.client.floating.toggle, + { description = "toggle floating", + group = "client" }), + + awful.key({ modkey, "Control" }, "Return", + function(c) + c:swap(awful.client.getmaster()) + end, + { description = "move to master", + group = "client" }), + + awful.key({ modkey }, "o", + function(c) + c:move_to_screen() + end, + { description = "move to screen", + group = "client" }), + + awful.key({ modkey }, "t", + function(c) + c.ontop = not c.ontop + end, + { description = "toggle keep on top", + group = "client" }), + + awful.key({ modkey }, "n", + function(c) -- The client currently has the input focus, so it cannot be -- minimized, since minimized clients can't have the focus. c.minimized = true - end , - {description = "minimize", group = "client"}), + end, + { description = "minimize", + group = "client"}), + awful.key({ modkey, }, "m", - function (c) + function(c) c.maximized = not c.maximized c:raise() - end , - {description = "(un)maximize", group = "client"}), + end, + { description = "(un)maximize", + group = "client" }), + awful.key({ modkey, "Control" }, "m", - function (c) + function(c) c.maximized_vertical = not c.maximized_vertical c:raise() - end , - {description = "(un)maximize vertically", group = "client"}), + end, + { description = "(un)maximize vertically", + group = "client" }), + awful.key({ modkey, "Shift" }, "m", - function (c) + function(c) c.maximized_horizontal = not c.maximized_horizontal c:raise() - end , - {description = "(un)maximize horizontally", group = "client"}) + end, + { description = "(un)maximize horizontally", + group = "client" }) ) return client_keys diff --git a/awesome/bindings/keys/global.lua b/awesome/bindings/keys/global.lua index b55eaa4..c8844d5 100644 --- a/awesome/bindings/keys/global.lua +++ b/awesome/bindings/keys/global.lua @@ -3,148 +3,266 @@ local gears = require("gears") local awful = require("awful") --- others local hotkeys_popup = require("awful.hotkeys_popup") -local menubar = require("menubar") +local menubar = require("menubar") --- resource configuration -local modkey = RC.vars.modkey +local modkey = RC.vars.modkey local terminal = RC.vars.terminal local _M = {} ------------------ function _M.get() local global_keys = gears.table.join( - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - {description="show help", group="awesome"}), + --- show help [mod+s] + awful.key({ modkey }, "s", + hotkeys_popup.show_help, + { description = "show help", + group = "awesome" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Tag browsing - 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"}), + ------------------ + --------- tag browsing + --- view previous tag [global::mod+left] + awful.key({ modkey }, "Left", + awful.tag.viewprev, + { description = "view previous", + group = "tag" }), - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - end, - {description = "focus next by index", group = "client"} - ), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - end, - {description = "focus previous by index", group = "client"} - ), - awful.key({ modkey, }, "w", function () RC.mainmenu:show() end, - {description = "show main menu", group = "awesome"}), + --- view next tag [global::mod+right] + awful.key({ modkey }, "Right", + awful.tag.viewnext, + { description = "view next", + group = "tag" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, - {description = "swap with next client by index", group = "client"}), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, - {description = "swap with previous client by index", group = "client"}), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - {description = "jump to urgent client", group = "client"}), - -- awful.key({ modkey, }, "Tab", - -- function () - -- awful.client.focus.history.previous() - -- if client.focus then - -- client.focus:raise() - -- end - -- end, - -- {description = "go back", group = "client"}), + ------------------ + --------- screen focus + awful.key({ modkey, "Control" }, "j", + function() + awful.screen.focus_relative( 1) + end, + { description = "focus the next screen", + group = "screen" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Standard program - awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, - {description = "open a terminal", group = "launcher"}), - awful.key({ modkey, "Control" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"}), - awful.key({ modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"}), + awful.key({ modkey, "Control" }, "k", + function() + awful.screen.focus_relative(-1) + end, + { description = "focus the previous screen", + group = "screen" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Layout manipulation - 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 }, "u", + awful.client.urgent.jumpto, + { description = "jump to urgent client", + group = "client" }), - awful.key({ modkey, "Control" }, "n", - function () - local c = awful.client.restore() - -- Focus restored client - if c then - c:emit_signal( - "request::activate", "key.unminimize", {raise = true} - ) - end - end, - {description = "restore minimized", group = "client"}), + awful.key({ modkey }, "Tab", + function() awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end, + { description = "go back", + group = "client" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Prompt - awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), + ------------------ + --------- tiling manip + awful.key({ modkey, "Shift" }, "l", + function() + awful.tag.incmwfact( 0.05 ) + end, + { description = "increase master width factor", + group = "layout" }), - awful.key({ modkey }, "x", - function () - awful.prompt.run { - prompt = "Run Lua code: ", - textbox = awful.screen.focused().mypromptbox.widget, - exe_callback = awful.util.eval, - history_path = awful.util.get_cache_dir() .. "/history_eval" - } - end, - {description = "lua execute prompt", group = "awesome"}), + awful.key({ modkey, "Shift" }, "h", + function() + awful.tag.incmwfact( -0.05 ) + end, + { description = "decrease master width factor", + group = "layout" }), - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -- Resize - --awful.key({ modkey, "Control" }, "Left", function () awful.client.moveresize( 20, 20, -40, -40) end), - --awful.key({ modkey, "Control" }, "Right", function () awful.client.moveresize(-20, -20, 40, 40) end), - awful.key({ modkey, "Control" }, "Down", - function () awful.client.moveresize( 0, 0, 0, -20) end), - awful.key({ modkey, "Control" }, "Up", - function () awful.client.moveresize( 0, 0, 0, 20) end), - awful.key({ modkey, "Control" }, "Left", - function () awful.client.moveresize( 0, 0, -20, 0) end), - awful.key({ modkey, "Control" }, "Right", - function () awful.client.moveresize( 0, 0, 20, 0) end), + awful.key({ modkey }, "h", + function() + awful.tag.incnmaster( 1, nil, true ) + end, + { description = "increase the number of master clients", + group = "layout" }), - -- Move - awful.key({ modkey, "Shift" }, "Down", - function () awful.client.moveresize( 0, 20, 0, 0) end), - awful.key({ modkey, "Shift" }, "Up", - function () awful.client.moveresize( 0, -20, 0, 0) end), - awful.key({ modkey, "Shift" }, "Left", - function () awful.client.moveresize(-20, 0, 0, 0) end), - awful.key({ modkey, "Shift" }, "Right", - function () awful.client.moveresize( 20, 0, 0, 0) end), + awful.key({ modkey }, "l", + function() + awful.tag.incnmaster(-1, nil, true) + end, + { description = "decrease the number of master clients", + group = "layout" }), - awful.key({ modkey, }, "p", function() - awful.util.spawn("rofi -show combi -modes combi,filebrowser -combi-modes \"drun,filebrowser,run\"") end, - {description = "open rofi runner", group = "launcher"}), + awful.key({ modkey, "Control" }, "h", + function() + awful.tag.incncol(1, nil, true) + end, + { description = "increase the number of columns", + group = "layout" }), - awful.key({ modkey, }, "y", function() - awful.util.spawn("scrot") end, - {description = "scrot", group = "launcher"}) + awful.key({ modkey, "Control" }, "l", + function() + awful.tag.incncol(-1, nil, true) + end, + { description = "decrease the number of columns", + group = "layout" }), + + --------- client controls + ------ focus switching + --- focus next client by index [global::mod+j] + awful.key({ modkey }, "j", + function() + awful.client.focus.byidx( 1) + end, + { description = "focus next by index", + group = "client" }), + + --- focus last client by index [global::mod+k] + awful.key({ modkey }, "k", + function() + awful.client.focus.byidx(-1) + end, + { description = "focus previous by index", + group = "client" }), + + ------ reordering + --- swap with next client by index [global::mod+shift+j] + awful.key({ modkey, "Shift" }, "j", + function() + awful.client.swap.byidx( 1) + end, + { description = "swap with next client by index", + group = "client" }), + + --- swap with previous client by index [global::mod+shift+k] + awful.key({ modkey, "Shift" }, "k", + function() + awful.client.swap.byidx( -1) + end, + { description = "swap with previous client by index", + group = "client" }), + + ------ resize + + awful.key({ modkey, "Control" }, "Down", + function() + awful.client.moveresize(0, 0, 0, -20) + end), + + awful.key({ modkey, "Control" }, "Up", + function() + awful.client.moveresize(0, 0, 0, 20) + end), + + awful.key({ modkey, "Control" }, "Left", + function() + awful.client.moveresize(0, 0, -20, 0) + end), + + awful.key({ modkey, "Control" }, "Right", + function() + awful.client.moveresize(0, 0, 20, 0) + end), + + ------ move + awful.key({ modkey, "Shift" }, "Down", + function() + awful.client.moveresize(0, 20, 0, 0) + end), + + awful.key({ modkey, "Shift" }, "Up", + function() + awful.client.moveresize(0, -20, 0, 0) + end), + + awful.key({ modkey, "Shift" }, "Left", + function() + awful.client.moveresize(-20, 0, 0, 0) + end), + + awful.key({ modkey, "Shift" }, "Right", + function() + awful.client.moveresize(20, 0, 0, 0) + end), + + awful.key({modkey, "Control" }, "n", + function() local c = awful.client.restore() + --- focus restored client + if c then c:emit_signal("request::activate", + "key.unminimize", {raise = true}) + end + end, + { description = "restore minimized", + group = "client" }), + + ------------------ + --------- prompt + ------ awesome + --- show main menu [global::mod+w] + awful.key({ modkey }, "w", + function() + RC.mainmenu:show() + end, + { description = "show main menu", + group = "awesome" }), + + --- reload awesome [global::mod+ctrl+r] + awful.key({ modkey, "Control" }, "r", + awesome.restart, + { description = "reload awesome", + group = "awesome" }), + + --- open the run prompt [global::mod+r] + awful.key({ modkey }, "r", + function() + awful.screen.focused().mypromptbox:run() + end, + { description = "prompt: execute command", + group = "launcher" }), + + --- open the lua code prompt [global::mod+x] + awful.key({ modkey }, "x", + function() + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = + awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. + "/history_eval" } + end, + { description = "prompt: execute lua", + group = "awesome" }), + + ------ external + --- open terminal [global::mod+enter] + awful.key({ modkey }, "Return", + function() + awful.spawn(terminal) + end, + { description = "open terminal", + group = "launcher" }), + + --- take screenshot of entire screen [global::mod+y] + awful.key( {modkey }, "y", + function() + awful.util.spawn("scrot") + end, + { description = "take fullscreen screenshot", + group = "launcher" }), + + --- open rofi launcher [global::mod+p] + awful.key({ modkey }, "p", + function() + awful.util.spawn("rofi -show drun") + end, + { description = "open rofi launcher", + group = "launcher" }) ) return global_keys end ------------------ -return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) \ No newline at end of file +return setmetatable({}, { + __call = function(_, ...) + return _M.get(...) + end }) \ No newline at end of file diff --git a/awesome/bindings/mouse/client.lua b/awesome/bindings/mouse/client.lua index 837fc56..f115fa8 100644 --- a/awesome/bindings/mouse/client.lua +++ b/awesome/bindings/mouse/client.lua @@ -6,20 +6,31 @@ local _M = {} ------------------------------------------ function _M.get() local client_buttons = gears.table.join( - awful.button({ }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) + --- focus client [client::click] + awful.button({ }, 1, + function(c) + c:emit_signal("request::activate", "mouse_click", + {raise = true}) end), - - awful.button({ modkey }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) + --- move client [client::mod+click] + awful.button({ modkey }, 1, + function(c) + c:emit_signal("request::activate", "mouse_click", + {raise = true}) awful.mouse.client.move(c) end), - - awful.button({ modkey }, 3, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) + --- resize client [client::mod+click_r] + awful.button({ modkey }, 3, + function(c) + c:emit_signal("request::activate", "mouse_click", + {raise = true}) awful.mouse.client.resize(c) - end)) + end) + ) return client_buttons end ------------------------------------------ -return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) \ No newline at end of file +return setmetatable({}, { + __call = function(_, ...) + return _M.get(...) + end }) \ No newline at end of file diff --git a/awesome/bindings/mouse/global.lua b/awesome/bindings/mouse/global.lua index b0cb05d..4ad0c3c 100644 --- a/awesome/bindings/mouse/global.lua +++ b/awesome/bindings/mouse/global.lua @@ -6,11 +6,30 @@ local _M = {} ------------------------------------------ function _M.get() local global_buttons = gears.table.join( - awful.button({ }, 3, function () RC.mainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) + --- hide menu [desktop::click] + awful.button({ }, 1, + function() + RC.mainmenu:hide() + end), + + --- toggle menu [desktop::click_r] + awful.button({ }, 3, + function () + RC.mainmenu:toggle() + end), + + --- go to previous tag [desktop::scroll_u] + awful.button({ }, 4, + awful.tag.viewprev), + + --- go to next tag [desktop::scroll_d] + awful.button({ }, 5, + awful.tag.viewnext) ) return global_buttons end ------------------------------------------ -return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) \ No newline at end of file +return setmetatable({}, { + __call = function(_, ...) + return _M.get(...) + end }) \ No newline at end of file diff --git a/awesome/main/layouts.lua b/awesome/main/layouts.lua index dfbe2d7..4fc933f 100644 --- a/awesome/main/layouts.lua +++ b/awesome/main/layouts.lua @@ -8,17 +8,17 @@ local _M = {} function _M.get () -- Table of layouts to cover with awful.layout.inc, order matters. local layouts = { - awful.layout.suit.floating, -- 1: + awful.layout.suit.floating, - awful.layout.suit.tile, -- 2: - awful.layout.suit.tile.left, -- 3: - awful.layout.suit.tile.bottom, -- 4: - awful.layout.suit.tile.top, -- 5: + awful.layout.suit.tile, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, + awful.layout.suit.tile.top, - awful.layout.suit.fair, -- 6: - awful.layout.suit.fair.horizontal, -- 7: + awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, - awful.layout.suit.max, -- 8: + awful.layout.suit.max, } return layouts diff --git a/awesome/main/menu.lua b/awesome/main/menu.lua index a33debe..47fb924 100644 --- a/awesome/main/menu.lua +++ b/awesome/main/menu.lua @@ -7,8 +7,9 @@ local beautiful = require("beautiful") --- for awesome.icon local M = {} local _M = {} ------------------------------------------ ---- import terminal variable from rc.lua -local terminal = RC.vars.terminal +--- import preferred programs +local terminal = RC.vars.terminal +local file_manager = RC.vars.file_manager --- import editor variable from OS environment local editor = os.getenv("EDITOR") or "nano" @@ -17,133 +18,187 @@ local editor_cmd = terminal .. " -e " .. editor ------------------------------------------ --- make it harder to quit awesome accidentally M.quitmenu = - {{ "i mean it!", function() awesome.quit() end }} + {{ "i mean it!", + function() + awesome.quit() + end }} --- "awesome" menu M.awesome = { - { "hotkeys" , function() hotkeys_popup.show_help(nil,awful.screen.focused()) - end }, - { "manual" , terminal - .. " -e man awesome" }, - { "edit config" , editor_cmd - .. " " - .. awesome.conffile }, - { "terminal" , terminal }, - { "restart" , awesome.restart }, - { "quit" , M.quitmenu } + { "hotkeys", + function() + hotkeys_popup.show_help(nil,awful.screen.focused()) + end }, + + { "manual", + terminal .. " -e man awesome" }, + + { "edit config", + editor_cmd .. " " .. awesome.conffile }, + + { "terminal", terminal }, + + { "restart", awesome.restart }, + + { "quit", M.quitmenu } } --- browsers and other network-oriented software M.network = { - { "firefox" , "firefox" }, - { "discord" , "flatpak run\ - com.discordapp.Discord" }, - { "thunderbird" , "thunderbird" }, - { "steam" , "steam" }, - { "qbittorrent" , "qbittorrent" }, - { "keepassxc" , "keepassxc" } + { "firefox", "firefox" }, + + { "discord", + "flatpak run com.discordapp.Discord" }, + + { "thunderbird", "thunderbird" }, + + { "steam", "steam" }, + + { "hyperbeam", + "/opt/AppImages/Hyperbeam-0.21.0.AppImage" }, + + { "qbittorrent", "qbittorrent" }, + + { "keepassxc", "keepassxc" }, } --- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS M.develop = { - { "vs code" , "code" }, - { "bless" , "bless" }, - -- { "dbeaver studio" , "flatpak run\ - -- io.dbeaver.DBeaverCommunity" }, - -- { "beekeeper studio" , "flatpak run\ - -- io.beekeeperstudio.Studio" }, - { "sqlite browser" , "sqlitebrowser" } + { "vs code", "code" }, + + { "bless", "bless" }, + + { "sqlite browser", "sqlitebrowser" } } --- emulators M.emulators = { - { "citra" , "flatpak run\ - org.citra_emu.citra" }, - { "dolphin" , "flatpak run\ - org.DolphinEmu.dolphin-emu" }, - { "yuzu" , "flatpak run\ - org.yuzu_emu.yuzu" }, - { "duckstation" , "flatpak run\ - org.duckstation.DuckStation" }, - { "PPSSPP" , "flatpak run\ - org.ppsspp.PPSSPP" } + { "citra", + "flatpak run org.citra_emu.citra" }, + + { "dolphin", + "flatpak run org.DolphinEmu.dolphin-emu" }, + + { "yuzu", + "flatpak run org.yuzu_emu.yuzu" }, + + { "duckstation", + "flatpak run org.duckstation.DuckStation" }, + + { "PPSSPP", + "flatpak run org.ppsspp.PPSSPP" } } --- vintage story [different versions of VS for mods] M.vtgstry = { - { "latest" , "vintagestory" }, - { "flatpak" , "flatpak run\ - at.vintagestory.VintageStory" } + { "latest", "vintagestory" }, + + { "flatpak", + "flatpak run at.vintagestory.VintageStory" } } --- videogames M.games = { - { "emulators" , M.emulators }, - { "vintage story" , M.vtgstry }, - { "team fortress 2" , "steam\ - steam://rungameid/440" }, - { "ballisticNG" , "steam\ - steam://rungameid/473770" }, - { "them's fightin' herds" , "steam\ - steam://rungameid/574980" }, - { "doom" , "gzdoom" }, - { "osu!" , "flatpak run\ - sh.ppy.osu" }, - { "minecraft" , "flatpak run\ - org.prismlauncher.PrismLauncher" }, - { "solitaire" , "pysol" } + { "emulators", M.emulators }, + + { "vintage story", M.vtgstry}, + + { "team fortress 2", + "steam steam://rungameid/440" }, + + { "ballisticNG", + "steam steam://rungameid/473770" }, + + { "them's fightin' herds", + "steam steam://rungameid/574980" }, + + { "doom", "gzdoom" }, + + { "osu!", + "flatpak run sh.ppy.osu" }, + + { "minecraft", + "flatpak run org.prismlauncher.PrismLauncher" }, + + { "solitaire", "pysol" } } --- utilities [kind of a misc category] M.utils = { - { "xed" , "xed" }, - { "catfish" , "catfish" }, - { "anki" , "flatpak run net.ankiweb.Anki" }, - { "mkvtoolnix" , "mkvtoolnix-gui" }, - { "text pieces" , "flatpak run\ - com.github.liferooter.textpieces" }, - { "alacarte" , "alacarte" }, - { "flatseal" , "flatpak run com.github.tchx84.Flatseal" }, - { "xarchiver" , "xarchiver" }, - { "piper" , "piper" }, - { "wally" , "wally" } + { "catfish", "catfish" }, + + { "xed", "xed" }, + + { "xarchiver", "xarchiver" }, + + { "flatseal", + "flatpak run com.github.tchx84.Flatseal" }, + + { "text pieces", + "flatpak run com.github.liferooter.textpieces" }, + + { "alacarte", "alacarte" }, + + { "piper", "piper" }, --- mouse config + + { "wally", "wally" } --- keyboard fw flasher } --- "media" programs [image viewers, video players, etc] M.media = { - { "hydrus" , "flatpak run io.github.hydrusnetwork.hydrus" }, - { "vlc" , "vlc" }, - { "youtube" , "/usr/lib64/chromium-browser/chromium-browser.sh\ - --profile-directory=Default\ - --app-id=agimnkijcaahngcdmfeangaknmldooml" }, - { "spotify" , "flatpak run com.spotify.Client" }, - { "nomacs" , "nomacs" } - } + { "hydrus", + "flatpak run io.github.hydrusnetwork.hydrus" }, + + { "vlc", "vlc" }, + + { "youtube", + "/usr/lib64/chromium-browser/chromium-browser.sh\ + --profile-directory=Default\ + --app-id=agimnkijcaahngcdmfeangaknmldooml" }, + + { "spotify", + "flatpak run com.spotify.Client" }, + + { "mkvtoolnix", + "mkvtoolnix-gui" }, + + { "nomacs", "nomacs" } +} + +--- educationf +M.edu = { + { "anki", + "flatpak run net.ankiweb.Anki" }, + { "zotero", + "flatpak run org.zotero.Zotero" } +} --- "visual arts" stuff M.vis = { - { "blender" , "steam\ - steam://rungameid/365670" }, - { "krita" , "krita" }, - { "GIMP" , "gimp-2.10" }, - { "beeref" , "flatpak run\ - org.beeref.BeeRef" } + { "blender", + "steam steam://rungameid/365670" }, + + { "krita", "krita" }, + { "GIMP", "gimp-2.10" }, + { "beeref", + "flatpak run org.beeref.BeeRef" } } ------------------------------------------ function _M.get() --- main menu local menu_items = { - { "awesome" , M.awesome, - beautiful.awesome_subicon }, - { "terminal" , terminal }, - { "thunar" , "Thunar" }, - { "www" , M.network }, - { "media" , M.media }, - { "dev" , M.develop }, - { "art" , M.vis }, - { "games" , M.games }, - { "utils" , M.utils } + { "awesome", + M.awesome, beautiful.awesome_subicon }, + { "terminal", terminal }, + { "files" , file_manager }, + { "www" , M.network }, + { "media" , M.media }, + { "dev" , M.develop }, + { "edu" , M.edu }, + { "art" , M.vis }, + { "games" , M.games }, + { "utils" , M.utils } } return menu_items end diff --git a/awesome/main/signals.lua b/awesome/main/signals.lua index 5f196a4..992d82e 100644 --- a/awesome/main/signals.lua +++ b/awesome/main/signals.lua @@ -1,14 +1,11 @@ --- Standard awesome library +--- awesome stdlib local gears = require("gears") local awful = require("awful") - --- Widget and layout library +--- widget and layout lib local wibox = require("wibox") - --- Theme handling library +--- theme lib local beautiful = require("beautiful") - --- Custom Local Library: Common Functional Decoration +--- custom local lib require("deco.titlebar") -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- diff --git a/awesome/main/user_vars.lua b/awesome/main/user_vars.lua index d4111f9..d3866ac 100644 --- a/awesome/main/user_vars.lua +++ b/awesome/main/user_vars.lua @@ -1,10 +1,10 @@ local home = os.getenv("HOME") local _M = { - terminal = "alacritty", - modkey = "Mod4", - wallpaper = "/usr/share/backgrounds/custom/space_station.jpg" + terminal = "alacritty", + file_manager = "Thunar", + modkey = "Mod4", + wallpaper = "/usr/share/backgrounds/custom/space_station.jpg" } return _M - diff --git a/awesome/rc.lua b/awesome/rc.lua index 37c57fc..2ad20d2 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -1,14 +1,11 @@ ------ includes --- enable luarocks if installed pcall(require, "luarocks.loader") - --- awesome stdlib local gears = require("gears") local awful = require("awful") - --- theme lib local beautiful = require("beautiful") - --- other awesome libs local menubar = require("menubar") @@ -50,7 +47,7 @@ RC.tags = main.tags() ------ menu RC.mainmenu = awful.menu({ items = main.menu() }) -- in globalkeys --- a variable needed in statusbar (helper) +--- a variable needed in statusbar (helper) RC.launcher = awful.widget.launcher( { image = beautiful.awesome_icon, menu = RC.mainmenu } ) diff --git a/firefox/README.md b/firefox/README.md index d5282f0..6f88d56 100644 --- a/firefox/README.md +++ b/firefox/README.md @@ -1 +1,5 @@ -I believe the userChrome CSS for the Tree Style Tabs addon comes from the Github wiki for the addon itself, but I'm genuinely not quite sure atm. Will definitely have to double-check later \ No newline at end of file +# Firefox + +## chrome + +I believe the userChrome CSS for the Tree Style Tabs addon comes from the Github wiki for the addon itself, but I'm genuinely not quite sure atm. Will definitely have to double-check later diff --git a/fish/init.fish b/fish/init.fish new file mode 100644 index 0000000..be65cd9 --- /dev/null +++ b/fish/init.fish @@ -0,0 +1,10 @@ +## kawasaki theme settings +# use kawasaki env prompt +set -x VIRTUAL_ENV_DISABLE_PROMPT 1 +# other +set -g theme_display_group no +set -g theme_display_virtualenv yes +set -g theme_display_time yes + +## Perl +set -xg DBIC_TRACE 1 \ No newline at end of file diff --git a/fish/theme b/fish/theme new file mode 100644 index 0000000..5597cc8 --- /dev/null +++ b/fish/theme @@ -0,0 +1 @@ +kawasaki diff --git a/linkdir.pl b/linkdir.pl new file mode 100755 index 0000000..302310a --- /dev/null +++ b/linkdir.pl @@ -0,0 +1,23 @@ +#!/usr/bin/env perl + +if ($< != 0) { die "Can't link dirs. Please re-run as root." } + +my $conf = + "/home/nu/.config/"; +my $git = + "/mnt/Storage/(500) Programming/598.\ Groups\ of\ smaller\ projects/dotfiles/"; + +my %confDirs = ( +# `.conf` dir -> git repo dir + "alacritty" => "alacritty", + "awesome" => "awesome", + "omf" => "fish", + "picom" => "picom", + "rofi" => "rofi", +); + +while (my ($key, $value) = each %confDirs) { + `mount --bind "/home/nu/.config\/$key" "/mnt/Storage/(500) Programming/598. Groups of smaller projects/dotfiles\/$value"` +} + +print("Done!"); \ No newline at end of file diff --git a/perl/.perltidyrc b/perl/.perltidyrc new file mode 100644 index 0000000..5c33361 --- /dev/null +++ b/perl/.perltidyrc @@ -0,0 +1,42 @@ +-w +-log +-i=2 +-l=70 +-enc=utf8 +-gcs +-ole=unix +-it=2 +-ci=4 +-xci +-cti=1 +-nolq +-nola +-pt=2 +-bt=1 +-bbt=0 +-tso +-nsts +-sfs +-nasc +-dsm +-aws +-dws +-fpva +-lop +-ibc +-nfs +-ce +-nbl +-olc +-dsm +-olq +-kis +-bbb +-kbl=1 +-bar +-otr +-bbhb=3 +-bbhbi=1 +-wn +-vt=1 +-nlal \ No newline at end of file diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..933cf2d --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1,153 @@ +// generic, theme-agnostic settings +configuration { +/* modes: "window,drun,run,ssh";*/ +/* location: 0;*/ +/* yoffset: 0;*/ +/* xoffset: 0;*/ +/* fixed-num-lines: true;*/ + terminal: "alacritty"; +/* ssh-client: "ssh";*/ +/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ +/* run-command: "{cmd}";*/ +/* run-list-command: "";*/ +/* run-shell-command: "{terminal} -e {cmd}";*/ +/* window-command: "wmctrl -i -R {window}";*/ +/* window-match-fields: "all";*/ +/* drun-match-fields: "name,generic,exec,categories,keywords";*/ +/* drun-categories: ;*/ +/* drun-show-actions: false;*/ +/* drun-display-format: "{name} [({generic})]";*/ +/* drun-url-launcher: "xdg-open";*/ +/* disable-history: false;*/ +/* ignored-prefixes: "";*/ +/* sort: false;*/ +/* sorting-method: "normal";*/ + case-sensitive: false; +/* cycle: true;*/ +/* sidebar-mode: false;*/ +/* hover-select: false;*/ +/* eh: 1;*/ +/* auto-select: false;*/ +/* parse-hosts: false;*/ +/* parse-known-hosts: true;*/ +/* combi-modes: "window,run";*/ +/* matching: "normal";*/ +/* tokenize: true;*/ +/* m: "-5";*/ +/* filter: ;*/ +/* dpi: -1;*/ +/* threads: 0;*/ +/* scroll-method: 0;*/ +/* window-format: "{w} {c} {t}";*/ + click-to-exit: true; + max-history-size: 50; +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ +/* matching-negate-char: '-' /* unsupported */;*/ +/* cache-dir: ;*/ + window-thumbnail: true; +/* drun-use-desktop-cache: false;*/ +/* drun-reload-desktop-cache: false;*/ +/* normalize-match: false;*/ +/* steal-focus: false;*/ +/* application-fallback-icon: ;*/ +/* refilter-timeout-limit: 8192;*/ +/* xserver-i300-workaround: false;*/ +/* pid: "/run/user/1000/rofi.pid";*/ +/* display-window: ;*/ +/* display-windowcd: ;*/ +/* display-run: ;*/ +/* display-ssh: ;*/ +/* display-drun: ;*/ +/* display-combi: ;*/ +/* display-keys: ;*/ +/* display-filebrowser: ;*/ +/* 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-up: "Up,Control+p";*/ +/* kb-row-down: "Down,Control+n";*/ +/* kb-row-tab: "";*/ +/* kb-element-next: "Tab";*/ +/* kb-element-prev: "ISO_Left_Tab";*/ +/* 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";*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + + filebrowser { + directories-first: true; + sorting-method: "name"; + } +} + +// theme-specific stuff +@import "spaceship/config.rasi" \ No newline at end of file diff --git a/rofi/spaceship/config.rasi b/rofi/spaceship/config.rasi new file mode 100644 index 0000000..4b84581 --- /dev/null +++ b/rofi/spaceship/config.rasi @@ -0,0 +1,9 @@ +// "spaceship" theme config +configuration { + font: "Fira Code 14"; + show-icons: true; + icon-theme: "hicolor"; + icon { theme: "hicolor"; } +} +// actual styling +@theme "spaceship/theme.rasi" \ No newline at end of file diff --git a/rofi/spaceship/theme.rasi b/rofi/spaceship/theme.rasi new file mode 100644 index 0000000..3bc2a6b --- /dev/null +++ b/rofi/spaceship/theme.rasi @@ -0,0 +1,155 @@ +* { + // generic colour vars + red: rgba(198, 77, 56, 100%); + blue: rgba( 56, 177, 198, 100%); + black: rgba( 15, 35, 86, 100%); + faded: rgba( 15, 35, 86, 40%); + yellow: rgba(225, 182, 97, 100%); + background: rgba(255, 255, 255, 58%); + + // specific colour vars + background-color: transparent; + border-color: var(black); + + // other things?? + spacing: 5; +} +element { + padding: 1px ; + cursor: pointer; + spacing: 15px ; + border: 0; +} +element normal.normal { + background-color: transparent; + text-color: var(black); +} +element normal.urgent { + background-color: var(black); + text-color: var(red); +} +element normal.active { + background-color: transparent; + text-color: var(black); +} +element selected.normal { + background-color: var(yellow); + text-color: var(black); +} +element selected.urgent { + background-color: var(red); + text-color: var(black); +} +element selected.active { + background-color: var(yellow); + text-color: var(black); +} +element alternate.normal { + background-color: transparent; + text-color: var(black); +} +element alternate.urgent { + background-color: var(black); + text-color: var(red); +} +element alternate.active { + background-color: var(red); + text-color: var(black); +} +element-text { + background-color: transparent; + cursor: inherit; + highlight: inherit; + text-color: inherit; +} +element-icon { + background-color: transparent; + size: 1.2000em ; + cursor: inherit; + text-color: inherit; +} +window { + padding: 12; + background-color: var(background); + border: 1; +} +mainbox { + padding: 0; + border: 0; +} +message { + padding: 1px ; + border-color: var(black); + border: 2px dash 0px 0px ; +} +textbox { + text-color: var(black); +} +listview { + padding: 2px 0px 0px ; + scrollbar: true; + border-color: var(black); + spacing: 5px; + fixed-height: 0; + border: 2px dash 0px 0px ; +} +scrollbar { + width: 5px ; + padding: 0; + handle-width: 8px ; + border: 0; + handle-color: var(black); +} +sidebar { + border-color: var(black); + border: 2px dash 0px 0px ; +} +button { + cursor: pointer; + spacing: 0; + text-color: var(black); +} +button selected { + background-color: var(yellow); + text-color: var(black); +} +num-filtered-rows { + expand: false; + text-color: var(faded); +} +num-rows { + expand: false; + text-color: var(faded); +} +textbox-num-sep { + expand: false; + str: "/"; + text-color: var(faded); +} +inputbar { + padding: 1px ; + spacing: 0px ; + text-color: var(black); + children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ]; +} +case-indicator { + spacing: 0; + text-color: var(black); +} +entry { + text-color: var(black); + cursor: text; + spacing: 5; + placeholder-color: var(faded); + placeholder: "Type to filter"; +} +prompt { + spacing: 0; + text-color: var(black); +} +textbox-prompt-colon { + margin: 0px 0.3000em 0.0000em 0.0000em ; + expand: false; + str: ":"; + text-color: inherit; +}