go crazy aaaa go stupid

This commit is contained in:
ngoomie 2023-05-25 20:15:43 -06:00
parent 4f85d44623
commit 4cc5ac749a
22 changed files with 936 additions and 421 deletions

147
.gitignore vendored
View File

@ -1,156 +1,25 @@
# ---> Linux # ---> Linux
*~ *~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden* .fuse_hidden*
# KDE directory preferences
.directory .directory
# Linux trash folder which might appear on any partition or disk
.Trash-* .Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs* .nfs*
# ---> Perl # ---> Perl
!Build/ !Build/
.last_cover_stats .last_cover_stats
/META.yml
/META.json
/MYMETA.*
*.o *.o
*.pm.tdy *.pm.tdy
*.bs *.bs
# Devel::Cover # ---> awesomewm
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
awesome/awesome-wm-widgets/ awesome/awesome-wm-widgets/
awesome/cyclefocus/ awesome/cyclefocus/
# VS Code # ---> fish/oh my fish
.vscode/ fish/bundle
fish/channel
# ---> rofi
# plain dumped theme that only serves as a reference
rofi/theme.rasi

18
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,18 @@
{
"cSpell.ignoreWords": [
"byidx",
"drun",
"filebrowser",
"incmwfact",
"incncol",
"incnmaster",
"jumpto",
"mainmenu",
"moveresize",
"mypromptbox",
"rclick",
"textbox",
"viewnext",
"viewprev"
]
}

View File

@ -24,11 +24,6 @@ window:
# General application class # General application class
general: Alacritty 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: scrolling:
history: 150 history: 150
transparent_background_colors: true transparent_background_colors: true

View File

@ -1,12 +1,19 @@
# awesome config # awesome config
## Deps ## Deps
- picom - picom
- [Fira Code](https://github.com/tonsky/FiraCode) *(technically optional, but the `spacestation` theme uses it)* - [Fira Code](https://github.com/tonsky/FiraCode) *(technically optional, but the `spacestation` theme uses it)*
- pactl [fc38 `pulseaudio-utils`] (for `volume_widget`) - pactl [fc38 `pulseaudio-utils`] (for `volume_widget`)
## Credits ## Credits
### Widgets/modules/etc I use ### 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) - `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 ### Other people's dotfiles I took from
- Modularization is from [epsi-rns' awesome dotfiles](https://gitlab.com/epsi-rns/dotfiles) (MIT) - Modularization is from [epsi-rns' awesome dotfiles](https://gitlab.com/epsi-rns/dotfiles) (MIT)

View File

@ -7,47 +7,79 @@ local modkey = RC.vars.modkey
------------------------------------------ ------------------------------------------
function _M.get() function _M.get()
local client_keys = gears.table.join( local client_keys = gears.table.join(
awful.key({ modkey, }, "f", awful.key({ modkey }, "f",
function(c) function(c)
c.fullscreen = not c.fullscreen c.fullscreen = not c.fullscreen
c:raise() c:raise()
end, end,
{description = "toggle fullscreen", group = "client"}), { description = "toggle fullscreen",
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, group = "client"}),
{description = "close", group = "client"}),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , awful.key({ modkey, "Shift" }, "c",
{description = "toggle floating", group = "client"}), function(c)
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, c:kill()
{description = "move to master", group = "client"}), end,
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, { description = "close",
{description = "move to screen", group = "client"}), group = "client" }),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}), awful.key({ modkey, "Control" }, "space",
awful.key({ modkey, }, "n", 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) function(c)
-- The client currently has the input focus, so it cannot be -- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus. -- minimized, since minimized clients can't have the focus.
c.minimized = true c.minimized = true
end, end,
{description = "minimize", group = "client"}), { description = "minimize",
group = "client"}),
awful.key({ modkey, }, "m", awful.key({ modkey, }, "m",
function(c) function(c)
c.maximized = not c.maximized c.maximized = not c.maximized
c:raise() c:raise()
end, end,
{description = "(un)maximize", group = "client"}), { description = "(un)maximize",
group = "client" }),
awful.key({ modkey, "Control" }, "m", awful.key({ modkey, "Control" }, "m",
function(c) function(c)
c.maximized_vertical = not c.maximized_vertical c.maximized_vertical = not c.maximized_vertical
c:raise() c:raise()
end, end,
{description = "(un)maximize vertically", group = "client"}), { description = "(un)maximize vertically",
group = "client" }),
awful.key({ modkey, "Shift" }, "m", awful.key({ modkey, "Shift" }, "m",
function(c) function(c)
c.maximized_horizontal = not c.maximized_horizontal c.maximized_horizontal = not c.maximized_horizontal
c:raise() c:raise()
end, end,
{description = "(un)maximize horizontally", group = "client"}) { description = "(un)maximize horizontally",
group = "client" })
) )
return client_keys return client_keys

View File

@ -12,139 +12,257 @@ local _M = {}
------------------ ------------------
function _M.get() function _M.get()
local global_keys = gears.table.join( local global_keys = gears.table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help, --- show help [mod+s]
{description="show help", group="awesome"}), awful.key({ modkey }, "s",
hotkeys_popup.show_help,
{ description = "show help",
group = "awesome" }),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ------------------
-- Tag browsing --------- tag browsing
awful.key({ modkey, }, "Left", awful.tag.viewprev, --- view previous tag [global::mod+left]
{description = "view previous", group = "tag"}), awful.key({ modkey }, "Left",
awful.key({ modkey, }, "Right", awful.tag.viewnext, awful.tag.viewprev,
{description = "view next", group = "tag"}), { description = "view previous",
awful.key({ modkey, }, "Escape", awful.tag.history.restore, group = "tag" }),
{description = "go back", group = "tag"}),
awful.key({ modkey, }, "j", --- view next tag [global::mod+right]
awful.key({ modkey }, "Right",
awful.tag.viewnext,
{ description = "view next",
group = "tag" }),
------------------
--------- screen focus
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" }),
------------------
--------- tiling manip
awful.key({ modkey, "Shift" }, "l",
function()
awful.tag.incmwfact( 0.05 )
end,
{ description = "increase master width factor",
group = "layout" }),
awful.key({ modkey, "Shift" }, "h",
function()
awful.tag.incmwfact( -0.05 )
end,
{ description = "decrease master width factor",
group = "layout" }),
awful.key({ modkey }, "h",
function()
awful.tag.incnmaster( 1, nil, true )
end,
{ description = "increase the number of master clients",
group = "layout" }),
awful.key({ modkey }, "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" }),
--------- client controls
------ focus switching
--- focus next client by index [global::mod+j]
awful.key({ modkey }, "j",
function() function()
awful.client.focus.byidx( 1) awful.client.focus.byidx( 1)
end, end,
{description = "focus next by index", group = "client"} { description = "focus next by index",
), group = "client" }),
awful.key({ modkey, }, "k",
--- focus last client by index [global::mod+k]
awful.key({ modkey }, "k",
function() function()
awful.client.focus.byidx(-1) awful.client.focus.byidx(-1)
end, end,
{description = "focus previous by index", group = "client"} { description = "focus previous by index",
), group = "client" }),
awful.key({ modkey, }, "w", function () RC.mainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ------ reordering
-- Layout manipulation --- swap with next client by index [global::mod+shift+j]
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, awful.key({ modkey, "Shift" }, "j",
{description = "swap with next client by index", group = "client"}), function()
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, awful.client.swap.byidx( 1)
{description = "swap with previous client by index", group = "client"}), end,
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, { description = "swap with next client by index",
{description = "focus the next screen", group = "screen"}), group = "client" }),
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"}),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- swap with previous client by index [global::mod+shift+k]
-- Standard program awful.key({ modkey, "Shift" }, "k",
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, function()
{description = "open a terminal", group = "launcher"}), awful.client.swap.byidx( -1)
awful.key({ modkey, "Control" }, "r", awesome.restart, end,
{description = "reload awesome", group = "awesome"}), { description = "swap with previous client by index",
awful.key({ modkey, "Shift" }, "q", awesome.quit, group = "client" }),
{description = "quit awesome", group = "awesome"}),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ------ resize
-- Layout manipulation
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, awful.key({ modkey, "Control" }, "Down",
{description = "increase master width factor", group = "layout"}), function()
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, awful.client.moveresize(0, 0, 0, -20)
{description = "decrease master width factor", group = "layout"}), end),
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, "Control" }, "Up",
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, function()
{description = "decrease the number of master clients", group = "layout"}), awful.client.moveresize(0, 0, 0, 20)
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, end),
{description = "increase the number of columns", group = "layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, awful.key({ modkey, "Control" }, "Left",
{description = "decrease the number of columns", group = "layout"}), 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", awful.key({modkey, "Control" }, "n",
function () function() local c = awful.client.restore()
local c = awful.client.restore() --- focus restored client
-- Focus restored client if c then c:emit_signal("request::activate",
if c then "key.unminimize", {raise = true})
c:emit_signal(
"request::activate", "key.unminimize", {raise = true}
)
end end
end, end,
{description = "restore minimized", group = "client"}), { description = "restore minimized",
group = "client" }),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ------------------
-- Prompt --------- prompt
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, ------ awesome
{description = "run prompt", group = "launcher"}), --- 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", awful.key({ modkey }, "x",
function() function()
awful.prompt.run { awful.prompt.run {
prompt = "Run Lua code: ", prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget, textbox =
awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval, exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval" history_path = awful.util.get_cache_dir() ..
} "/history_eval" }
end, end,
{description = "lua execute prompt", group = "awesome"}), { description = "prompt: execute lua",
group = "awesome" }),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ------ external
-- Resize --- open terminal [global::mod+enter]
--awful.key({ modkey, "Control" }, "Left", function () awful.client.moveresize( 20, 20, -40, -40) end), awful.key({ modkey }, "Return",
--awful.key({ modkey, "Control" }, "Right", function () awful.client.moveresize(-20, -20, 40, 40) end), function()
awful.key({ modkey, "Control" }, "Down", awful.spawn(terminal)
function () awful.client.moveresize( 0, 0, 0, -20) end), end,
awful.key({ modkey, "Control" }, "Up", { description = "open terminal",
function () awful.client.moveresize( 0, 0, 0, 20) end), group = "launcher" }),
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 --- take screenshot of entire screen [global::mod+y]
awful.key({ modkey, "Shift" }, "Down", awful.key( {modkey }, "y",
function () awful.client.moveresize( 0, 20, 0, 0) end), function()
awful.key({ modkey, "Shift" }, "Up", awful.util.spawn("scrot")
function () awful.client.moveresize( 0, -20, 0, 0) end), end,
awful.key({ modkey, "Shift" }, "Left", { description = "take fullscreen screenshot",
function () awful.client.moveresize(-20, 0, 0, 0) end), group = "launcher" }),
awful.key({ modkey, "Shift" }, "Right",
function () awful.client.moveresize( 20, 0, 0, 0) end),
awful.key({ modkey, }, "p", function() --- open rofi launcher [global::mod+p]
awful.util.spawn("rofi -show combi -modes combi,filebrowser -combi-modes \"drun,filebrowser,run\"") end, awful.key({ modkey }, "p",
{description = "open rofi runner", group = "launcher"}), function()
awful.util.spawn("rofi -show drun")
awful.key({ modkey, }, "y", function() end,
awful.util.spawn("scrot") end, { description = "open rofi launcher",
{description = "scrot", group = "launcher"}) group = "launcher" })
) )
return global_keys return global_keys
end end
------------------ ------------------
return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) return setmetatable({}, {
__call = function(_, ...)
return _M.get(...)
end })

View File

@ -6,20 +6,31 @@ local _M = {}
------------------------------------------ ------------------------------------------
function _M.get() function _M.get()
local client_buttons = gears.table.join( local client_buttons = gears.table.join(
awful.button({ }, 1, function (c) --- focus client [client::click]
c:emit_signal("request::activate", "mouse_click", {raise = true}) awful.button({ }, 1,
function(c)
c:emit_signal("request::activate", "mouse_click",
{raise = true})
end), end),
--- move client [client::mod+click]
awful.button({ modkey }, 1, function (c) awful.button({ modkey }, 1,
c:emit_signal("request::activate", "mouse_click", {raise = true}) function(c)
c:emit_signal("request::activate", "mouse_click",
{raise = true})
awful.mouse.client.move(c) awful.mouse.client.move(c)
end), end),
--- resize client [client::mod+click_r]
awful.button({ modkey }, 3, function (c) awful.button({ modkey }, 3,
c:emit_signal("request::activate", "mouse_click", {raise = true}) function(c)
c:emit_signal("request::activate", "mouse_click",
{raise = true})
awful.mouse.client.resize(c) awful.mouse.client.resize(c)
end)) end)
)
return client_buttons return client_buttons
end end
------------------------------------------ ------------------------------------------
return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) return setmetatable({}, {
__call = function(_, ...)
return _M.get(...)
end })

View File

@ -6,11 +6,30 @@ local _M = {}
------------------------------------------ ------------------------------------------
function _M.get() function _M.get()
local global_buttons = gears.table.join( local global_buttons = gears.table.join(
awful.button({ }, 3, function () RC.mainmenu:toggle() end), --- hide menu [desktop::click]
awful.button({ }, 4, awful.tag.viewnext), awful.button({ }, 1,
awful.button({ }, 5, awful.tag.viewprev) 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 return global_buttons
end end
------------------------------------------ ------------------------------------------
return setmetatable({}, { __call = function(_, ...) return _M.get(...) end }) return setmetatable({}, {
__call = function(_, ...)
return _M.get(...)
end })

View File

@ -8,17 +8,17 @@ local _M = {}
function _M.get () function _M.get ()
-- Table of layouts to cover with awful.layout.inc, order matters. -- Table of layouts to cover with awful.layout.inc, order matters.
local layouts = { local layouts = {
awful.layout.suit.floating, -- 1: awful.layout.suit.floating,
awful.layout.suit.tile, -- 2: awful.layout.suit.tile,
awful.layout.suit.tile.left, -- 3: awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom, -- 4: awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top, -- 5: awful.layout.suit.tile.top,
awful.layout.suit.fair, -- 6: awful.layout.suit.fair,
awful.layout.suit.fair.horizontal, -- 7: awful.layout.suit.fair.horizontal,
awful.layout.suit.max, -- 8: awful.layout.suit.max,
} }
return layouts return layouts

View File

@ -7,8 +7,9 @@ local beautiful = require("beautiful") --- for awesome.icon
local M = {} local M = {}
local _M = {} local _M = {}
------------------------------------------ ------------------------------------------
--- import terminal variable from rc.lua --- import preferred programs
local terminal = RC.vars.terminal local terminal = RC.vars.terminal
local file_manager = RC.vars.file_manager
--- import editor variable from OS environment --- import editor variable from OS environment
local editor = os.getenv("EDITOR") or "nano" local editor = os.getenv("EDITOR") or "nano"
@ -17,130 +18,184 @@ local editor_cmd = terminal .. " -e " .. editor
------------------------------------------ ------------------------------------------
--- make it harder to quit awesome accidentally --- make it harder to quit awesome accidentally
M.quitmenu = M.quitmenu =
{{ "i mean it!", function() awesome.quit() end }} {{ "i mean it!",
function()
awesome.quit()
end }}
--- "awesome" menu --- "awesome" menu
M.awesome = { M.awesome = {
{ "hotkeys" , function() hotkeys_popup.show_help(nil,awful.screen.focused()) { "hotkeys",
function()
hotkeys_popup.show_help(nil,awful.screen.focused())
end }, end },
{ "manual" , terminal
.. " -e man awesome" }, { "manual",
{ "edit config" , editor_cmd terminal .. " -e man awesome" },
.. " "
.. awesome.conffile }, { "edit config",
editor_cmd .. " " .. awesome.conffile },
{ "terminal", terminal }, { "terminal", terminal },
{ "restart", awesome.restart }, { "restart", awesome.restart },
{ "quit", M.quitmenu } { "quit", M.quitmenu }
} }
--- browsers and other network-oriented software --- browsers and other network-oriented software
M.network = { M.network = {
{ "firefox", "firefox" }, { "firefox", "firefox" },
{ "discord" , "flatpak run\
com.discordapp.Discord" }, { "discord",
"flatpak run com.discordapp.Discord" },
{ "thunderbird", "thunderbird" }, { "thunderbird", "thunderbird" },
{ "steam", "steam" }, { "steam", "steam" },
{ "hyperbeam",
"/opt/AppImages/Hyperbeam-0.21.0.AppImage" },
{ "qbittorrent", "qbittorrent" }, { "qbittorrent", "qbittorrent" },
{ "keepassxc" , "keepassxc" }
{ "keepassxc", "keepassxc" },
} }
--- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS --- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS
M.develop = { M.develop = {
{ "vs code", "code" }, { "vs code", "code" },
{ "bless", "bless" }, { "bless", "bless" },
-- { "dbeaver studio" , "flatpak run\
-- io.dbeaver.DBeaverCommunity" },
-- { "beekeeper studio" , "flatpak run\
-- io.beekeeperstudio.Studio" },
{ "sqlite browser", "sqlitebrowser" } { "sqlite browser", "sqlitebrowser" }
} }
--- emulators --- emulators
M.emulators = { M.emulators = {
{ "citra" , "flatpak run\ { "citra",
org.citra_emu.citra" }, "flatpak run org.citra_emu.citra" },
{ "dolphin" , "flatpak run\
org.DolphinEmu.dolphin-emu" }, { "dolphin",
{ "yuzu" , "flatpak run\ "flatpak run org.DolphinEmu.dolphin-emu" },
org.yuzu_emu.yuzu" },
{ "duckstation" , "flatpak run\ { "yuzu",
org.duckstation.DuckStation" }, "flatpak run org.yuzu_emu.yuzu" },
{ "PPSSPP" , "flatpak run\
org.ppsspp.PPSSPP" } { "duckstation",
"flatpak run org.duckstation.DuckStation" },
{ "PPSSPP",
"flatpak run org.ppsspp.PPSSPP" }
} }
--- vintage story [different versions of VS for mods] --- vintage story [different versions of VS for mods]
M.vtgstry = { M.vtgstry = {
{ "latest", "vintagestory" }, { "latest", "vintagestory" },
{ "flatpak" , "flatpak run\
at.vintagestory.VintageStory" } { "flatpak",
"flatpak run at.vintagestory.VintageStory" }
} }
--- videogames --- videogames
M.games = { M.games = {
{ "emulators", M.emulators }, { "emulators", M.emulators },
{ "vintage story", M.vtgstry}, { "vintage story", M.vtgstry},
{ "team fortress 2" , "steam\
steam://rungameid/440" }, { "team fortress 2",
{ "ballisticNG" , "steam\ "steam steam://rungameid/440" },
steam://rungameid/473770" },
{ "them's fightin' herds" , "steam\ { "ballisticNG",
steam://rungameid/574980" }, "steam steam://rungameid/473770" },
{ "them's fightin' herds",
"steam steam://rungameid/574980" },
{ "doom", "gzdoom" }, { "doom", "gzdoom" },
{ "osu!" , "flatpak run\
sh.ppy.osu" }, { "osu!",
{ "minecraft" , "flatpak run\ "flatpak run sh.ppy.osu" },
org.prismlauncher.PrismLauncher" },
{ "minecraft",
"flatpak run org.prismlauncher.PrismLauncher" },
{ "solitaire", "pysol" } { "solitaire", "pysol" }
} }
--- utilities [kind of a misc category] --- utilities [kind of a misc category]
M.utils = { M.utils = {
{ "xed" , "xed" },
{ "catfish", "catfish" }, { "catfish", "catfish" },
{ "anki" , "flatpak run net.ankiweb.Anki" },
{ "mkvtoolnix" , "mkvtoolnix-gui" }, { "xed", "xed" },
{ "text pieces" , "flatpak run\
com.github.liferooter.textpieces" },
{ "alacarte" , "alacarte" },
{ "flatseal" , "flatpak run com.github.tchx84.Flatseal" },
{ "xarchiver", "xarchiver" }, { "xarchiver", "xarchiver" },
{ "piper" , "piper" },
{ "wally" , "wally" } { "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] --- "media" programs [image viewers, video players, etc]
M.media = { M.media = {
{ "hydrus" , "flatpak run io.github.hydrusnetwork.hydrus" }, { "hydrus",
"flatpak run io.github.hydrusnetwork.hydrus" },
{ "vlc", "vlc" }, { "vlc", "vlc" },
{ "youtube" , "/usr/lib64/chromium-browser/chromium-browser.sh\
{ "youtube",
"/usr/lib64/chromium-browser/chromium-browser.sh\
--profile-directory=Default\ --profile-directory=Default\
--app-id=agimnkijcaahngcdmfeangaknmldooml" }, --app-id=agimnkijcaahngcdmfeangaknmldooml" },
{ "spotify" , "flatpak run com.spotify.Client" },
{ "spotify",
"flatpak run com.spotify.Client" },
{ "mkvtoolnix",
"mkvtoolnix-gui" },
{ "nomacs", "nomacs" } { "nomacs", "nomacs" }
} }
--- educationf
M.edu = {
{ "anki",
"flatpak run net.ankiweb.Anki" },
{ "zotero",
"flatpak run org.zotero.Zotero" }
}
--- "visual arts" stuff --- "visual arts" stuff
M.vis = { M.vis = {
{ "blender" , "steam\ { "blender",
steam://rungameid/365670" }, "steam steam://rungameid/365670" },
{ "krita", "krita" }, { "krita", "krita" },
{ "GIMP", "gimp-2.10" }, { "GIMP", "gimp-2.10" },
{ "beeref" , "flatpak run\ { "beeref",
org.beeref.BeeRef" } "flatpak run org.beeref.BeeRef" }
} }
------------------------------------------ ------------------------------------------
function _M.get() function _M.get()
--- main menu --- main menu
local menu_items = { local menu_items = {
{ "awesome" , M.awesome, { "awesome",
beautiful.awesome_subicon }, M.awesome, beautiful.awesome_subicon },
{ "terminal", terminal }, { "terminal", terminal },
{ "thunar" , "Thunar" }, { "files" , file_manager },
{ "www" , M.network }, { "www" , M.network },
{ "media" , M.media }, { "media" , M.media },
{ "dev" , M.develop }, { "dev" , M.develop },
{ "edu" , M.edu },
{ "art" , M.vis }, { "art" , M.vis },
{ "games" , M.games }, { "games" , M.games },
{ "utils" , M.utils } { "utils" , M.utils }

View File

@ -1,14 +1,11 @@
-- Standard awesome library --- awesome stdlib
local gears = require("gears") local gears = require("gears")
local awful = require("awful") local awful = require("awful")
--- widget and layout lib
-- Widget and layout library
local wibox = require("wibox") local wibox = require("wibox")
--- theme lib
-- Theme handling library
local beautiful = require("beautiful") local beautiful = require("beautiful")
--- custom local lib
-- Custom Local Library: Common Functional Decoration
require("deco.titlebar") require("deco.titlebar")
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

View File

@ -2,9 +2,9 @@ local home = os.getenv("HOME")
local _M = { local _M = {
terminal = "alacritty", terminal = "alacritty",
file_manager = "Thunar",
modkey = "Mod4", modkey = "Mod4",
wallpaper = "/usr/share/backgrounds/custom/space_station.jpg" wallpaper = "/usr/share/backgrounds/custom/space_station.jpg"
} }
return _M return _M

View File

@ -1,14 +1,11 @@
------ includes ------ includes
--- enable luarocks if installed --- enable luarocks if installed
pcall(require, "luarocks.loader") pcall(require, "luarocks.loader")
--- awesome stdlib --- awesome stdlib
local gears = require("gears") local gears = require("gears")
local awful = require("awful") local awful = require("awful")
--- theme lib --- theme lib
local beautiful = require("beautiful") local beautiful = require("beautiful")
--- other awesome libs --- other awesome libs
local menubar = require("menubar") local menubar = require("menubar")
@ -50,7 +47,7 @@ RC.tags = main.tags()
------ menu ------ menu
RC.mainmenu = awful.menu({ items = main.menu() }) -- in globalkeys 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( RC.launcher = awful.widget.launcher(
{ image = beautiful.awesome_icon, menu = RC.mainmenu } { image = beautiful.awesome_icon, menu = RC.mainmenu }
) )

View File

@ -1 +1,5 @@
# 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 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

10
fish/init.fish Normal file
View File

@ -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

1
fish/theme Normal file
View File

@ -0,0 +1 @@
kawasaki

23
linkdir.pl Executable file
View File

@ -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!");

42
perl/.perltidyrc Normal file
View File

@ -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

153
rofi/config.rasi Normal file
View File

@ -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} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* 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"

View File

@ -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"

155
rofi/spaceship/theme.rasi Normal file
View File

@ -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;
}