diff --git a/.config/awesome/awesome-wm-widgets b/.config/awesome/awesome-wm-widgets deleted file mode 160000 index ef70d16..0000000 --- a/.config/awesome/awesome-wm-widgets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ef70d16c43c2f566a4fe2955b8d6c08f6c185af8 diff --git a/.config/awesome/binds/client.lua b/.config/awesome/binds/client.lua deleted file mode 100644 index 1c516ec..0000000 --- a/.config/awesome/binds/client.lua +++ /dev/null @@ -1,21 +0,0 @@ --- Keys that affect the current window -clientkeys = Gears.table.join( - Awful.key({ Modkey, }, "f", function (c) c.fullscreen = not c.fullscreen c:raise() end, - {description = "toggle fullscreen", group = "client"}), - Awful.key({ Modkey, }, "q", function (c) c:kill() end, - {description = "close", 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, "Shift" }, "n", function (c) c.maximized = not c.maximized c:raise() end, - {description = "(un)maximize", 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, }, "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"}) -) diff --git a/.config/awesome/binds/global.lua b/.config/awesome/binds/global.lua deleted file mode 100644 index e4a1c05..0000000 --- a/.config/awesome/binds/global.lua +++ /dev/null @@ -1,67 +0,0 @@ -globalkeys = Gears.table.join( - Awful.key({ }, "Print", function() os.execute("maimpick") end, - {description = "run screenshot script", group="awesome"}), - Awful.key({ Modkey, }, "F1", Hotkeys_popup.show_help , - {description = "show help", group="awesome"}), - Awful.key({ Modkey, }, "l", function () Awful.screen.focus_relative( 1) end, - {description = "focus next screen", group = "screen"}), - Awful.key({ Modkey, }, "h", function () Awful.screen.focus_relative(-1) end, - {description = "focus previous screen", group = "screen"}), - Awful.key({ Modkey, }, "w", function () Awful.spawn(Browser) end, - {description = "open browser", group = "launcher"}), - Awful.key({ Modkey, "Shift" }, "w", function () Awful.spawn(Browser2) end, - {description = "open browser2", group = "launcher"}), - Awful.key({ Modkey, }, "e", function () Awful.spawn(Editor_cmd) end, - {description = "open editor", group = "launcher"}), - Awful.key({ Modkey, "Shift" }, "e", function () Awful.spawn("thunderbird") end, - {description = "open thunderbird", group = "launcher"}), - Awful.key({ Modkey, }, "m", function () Awful.spawn(Music) end, - {description = "open spotify", group = "launcher"}), - Awful.key({ Modkey, }, "d", function () Awful.spawn("discord --enable-gpu-rasterization") end, - {description = "open discord", group = "launcher"}), - Awful.key({ Modkey, }, "c", function () Awful.spawn("caprine") end, - {description = "open caprine", group = "launcher"}), - Awful.key({ Modkey, "Shift" }, "c", function () Awful.spawn("telegram-desktop") end, - {description = "open telegram-desktop", group = "launcher"}), - Awful.key({ Modkey, }, "g", function () Awful.spawn("godot") end, - {description = "open godot", group = "launcher"}), - Awful.key({ Modkey, "Shift" }, "g", function () Awful.spawn("steam-native") end, - {description = "open steam", group = "launcher"}), - Awful.key({ Modkey, }, "Return", function () Awful.spawn(Terminal) end, - {description = "open a terminal", group = "launcher"}), - Awful.key({ Modkey, }, "BackSpace", awesome.restart , - {description = "reload awesome", group = "awesome"}), - Awful.key({ Modkey, "Shift" }, "Escape", awesome.quit , - {description = "quit awesome", group = "awesome"}), - Awful.key({ Modkey, }, "v", function () Awful.spawn("virt-manager") end, - {description = "open virt-manager", group = "launcher"}), - Awful.key({ Modkey, "Shift" }, "k", function () Awful.tag.incmwfact( 0.05) end, - {description = "resize split +", group = "layout"}), - Awful.key({ Modkey, "Shift" }, "j", function () Awful.tag.incmwfact(-0.05) end, - {description = "resize split -", group = "layout"}), - Awful.key({ Modkey, }, "space", function () Awful.layout.inc( 1) end, - {description = "select next", group = "layout"}), - Awful.key({ Modkey, "Shift" }, "space", function () Awful.layout.inc(-1) end, - {description = "select previous", group = "layout"}), - Awful.key({ Modkey, }, "r", function () Awful.screen.focused().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), - - -- Media - Awful.key({}, "XF86AudioPlay", function() os.execute("playerctl play-pause") end), - Awful.key({}, "XF86AudioStop", function() os.execute("playerctl stop") end), - Awful.key({}, "XF86AudioNext", function() os.execute("playerctl next") end), - Awful.key({}, "XF86AudioPrev", function() os.execute("playerctl previous") end), - Awful.key({}, "XF86AudioRaiseVolume", function() os.execute("pamixer -i 3") end), - Awful.key({}, "XF86AudioLowerVolume", function() os.execute("pamixer -d 3") end), - Awful.key({}, "XF86AudioMute", function() os.execute("pamixer -t") end), - Awful.key({}, "XF86AudioMicMute", function() os.execute("pactl set-source-mute @DEFAULT_SOURCE@ toggle") end), - - Awful.key({ Modkey, }, "Tab", - function () - Awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}) -) diff --git a/.config/awesome/binds/init.lua b/.config/awesome/binds/init.lua deleted file mode 100644 index 7eaa7dc..0000000 --- a/.config/awesome/binds/init.lua +++ /dev/null @@ -1,74 +0,0 @@ -require('binds.global') -require('binds.client') - --- Mouse -root.buttons(Gears.table.join( - Awful.button({ }, 4, Awful.tag.viewnext), - Awful.button({ }, 5, Awful.tag.viewprev) -)) --- Bind all key numbers to tags. --- Be careful: we use keycodes to make it work on any keyboard layout. --- This should map on the top row of your keyboard, usually 1 to 9. -for i = 1, 9 do - globalkeys = Gears.table.join(globalkeys, - -- View tag only. - Awful.key({ Modkey }, "#" .. i + 9, - function () - local screen = Awful.screen.focused() - local tag = screen.tags[i] - if tag then - tag:view_only() - end - end, - {description = "view tag #"..i, group = "tag"}), - -- Toggle tag display. - Awful.key({ Modkey, "Control" }, "#" .. i + 9, - function () - local screen = Awful.screen.focused() - local tag = screen.tags[i] - if tag then - Awful.tag.viewtoggle(tag) - end - end, - {description = "toggle tag #" .. i, group = "tag"}), - -- Move client to tag. - Awful.key({ Modkey, "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - {description = "move focused client to tag #"..i, group = "tag"}), - -- Toggle tag on focused client. - Awful.key({ Modkey, "Control", "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - {description = "toggle focused client on tag #" .. i, group = "tag"}) - ) -end - -clientbuttons = Gears.table.join( - Awful.button({ }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - end), - Awful.button({ Modkey }, 1, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - Awful.mouse.client.move(c) - end), - Awful.button({ Modkey }, 3, function (c) - c:emit_signal("request::activate", "mouse_click", {raise = true}) - Awful.mouse.client.resize(c) - end) -) - --- Set keys -root.keys(globalkeys) diff --git a/.config/awesome/core/init.lua b/.config/awesome/core/init.lua deleted file mode 100644 index 3fc36c1..0000000 --- a/.config/awesome/core/init.lua +++ /dev/null @@ -1,31 +0,0 @@ -if awesome.startup_errors then - Naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) -end - --- Handle runtime errors after startup -do - local in_error = false - awesome.connect_signal("debug::error", function (err) - -- Make sure we don't go into an endless error loop - if in_error then return end - in_error = true - - Naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, an error happened!", - text = tostring(err) }) - in_error = false - end) -end - -require("awful.autofocus") -require("awful.hotkeys_popup.keys") - -Gears = require("gears") -Awful = require("awful") -Wibox = require("wibox") -Beautiful = require("beautiful") -Naughty = require("naughty") -Menubar = require("menubar") -Hotkeys_popup = require("awful.hotkeys_popup") diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua deleted file mode 100644 index f48eaa3..0000000 --- a/.config/awesome/rc.lua +++ /dev/null @@ -1,27 +0,0 @@ -require('core') - -Terminal = "kitty" -Editor = "nvim" -Editor_cmd = Terminal .. " -e " .. Editor -Browser = "firefox-developer-edition" -Browser2 = "google-chrome-beta" -Music = "spotify-launcher" -Modkey = "Mod4" - -Beautiful.init(".config/awesome/theme.lua") - -Awful.layout.layouts = { - Awful.layout.suit.tile.right, - Awful.layout.suit.tile.top, - Awful.layout.suit.tile.left, - Awful.layout.suit.tile.bottom, -} - -Menubar.utils.terminal = Terminal -- Set the terminal for applications that require it - -require('wibar') -require('binds') -require('rules') -require('signals') - -Gears.timer.start_new(10, function() collectgarbage("step", 20000) return true end) diff --git a/.config/awesome/rules/init.lua b/.config/awesome/rules/init.lua deleted file mode 100644 index 29e35a2..0000000 --- a/.config/awesome/rules/init.lua +++ /dev/null @@ -1,50 +0,0 @@ -Awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = Beautiful.border_width, - border_color = Beautiful.border_normal, - focus = Awful.client.focus.filter, - raise = true, - keys = clientkeys, - buttons = clientbuttons, - screen = Awful.screen.preferred, - placement = Awful.placement.no_overlap+Awful.placement.no_offscreen - } - }, - - -- Floating clients. - { rule_any = { - instance = { - "DTA", -- Firefox addon DownThemAll. - "copyq", -- Includes session name in class. - "pinentry", - }, - class = { - "Arandr", - "Blueman-manager", - "Gpick", - "Kruler", - "MessageWin", -- kalarm. - "Sxiv", - "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. - "Wpa_gui", - "veromix", - "xtightvncviewer"}, - - -- Note that the name property shown in xprop might be set slightly after creation of the client - -- and the name shown there might not match defined rules here. - name = { - "Event Tester", -- xev. - }, - role = { - "AlarmWindow", -- Thunderbird's calendar. - "ConfigManager", -- Thunderbird's about:config. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. - } - }, properties = { floating = true }}, - - -- Add titlebars to normal clients and dialogs - { rule_any = {type = { "normal", "dialog" } - }, properties = { titlebars_enabled = false } - }, -} diff --git a/.config/awesome/signals/init.lua b/.config/awesome/signals/init.lua deleted file mode 100644 index 29cf127..0000000 --- a/.config/awesome/signals/init.lua +++ /dev/null @@ -1,60 +0,0 @@ -client.connect_signal("manage", function (c) - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - -- if not awesome.startup then awful.client.setslave(c) end - - if awesome.startup - and not c.size_hints.user_position - and not c.size_hints.program_position then - -- Prevent clients from being unreachable after screen count changes. - Awful.placement.no_offscreen(c) - end -end) - --- Add a titlebar if titlebars_enabled is set to true in the rules. -client.connect_signal("request::titlebars", function(c) - -- buttons for the titlebar - local buttons = Gears.table.join( - Awful.button({ }, 1, function() - c:emit_signal("request::activate", "titlebar", {raise = true}) - Awful.mouse.client.move(c) - end), - Awful.button({ }, 3, function() - c:emit_signal("request::activate", "titlebar", {raise = true}) - Awful.mouse.client.resize(c) - end) - ) - - Awful.titlebar(c) : setup { - { -- Left - Awful.titlebar.widget.iconwidget(c), - buttons = buttons, - layout = Wibox.layout.fixed.horizontal - }, - { -- Middle - { -- Title - align = "center", - widget = Awful.titlebar.widget.titlewidget(c) - }, - buttons = buttons, - layout = Wibox.layout.flex.horizontal - }, - { -- Right - Awful.titlebar.widget.floatingbutton (c), - Awful.titlebar.widget.maximizedbutton(c), - Awful.titlebar.widget.stickybutton (c), - Awful.titlebar.widget.ontopbutton (c), - Awful.titlebar.widget.closebutton (c), - layout = Wibox.layout.fixed.horizontal() - }, - layout = Wibox.layout.align.horizontal - } -end) - --- Enable sloppy focus, so that focus follows mouse. -client.connect_signal("mouse::enter", function(c) - c:emit_signal("request::activate", "mouse_enter", {raise = false}) -end) - -client.connect_signal("focus", function(c) c.border_color = Beautiful.border_focus end) -client.connect_signal("unfocus", function(c) c.border_color = Beautiful.border_normal end) diff --git a/.config/awesome/theme.lua b/.config/awesome/theme.lua deleted file mode 100644 index 0c86468..0000000 --- a/.config/awesome/theme.lua +++ /dev/null @@ -1,69 +0,0 @@ -local theme_assets = require("beautiful.theme_assets") -local xresources = require("beautiful.xresources") -local dpi = xresources.apply_dpi -local xrdb = xresources.get_current_theme() - -local gfs = require("gears.filesystem") -local themes_path = gfs.get_themes_dir() - -local theme = {} - -theme.font = "monospace 11" -theme.wallpaper = '.cache/wal/bg' - -theme.useless_gap = dpi(0) -theme.border_width = dpi(1) - -theme.menu_height = dpi(15) -theme.menu_width = dpi(100) - --- Colors -theme.bg_normal = xrdb.background -theme.bg_focus = xrdb.color4 -theme.bg_urgent = xrdb.color1 -theme.bg_minimize = xrdb.color4 -theme.bg_systray = theme.bg_normal - -theme.fg_normal = xrdb.foreground -theme.fg_focus = xrdb.foreground -theme.fg_urgent = xrdb.foreground -theme.fg_minimize = xrdb.foreground - -theme.border_normal = xrdb.color5 -theme.border_focus = xrdb.color4 -theme.border_marked = xrdb.color10 - --- 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 -) - --- 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" - --- 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 - --- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/.config/awesome/wibar/init.lua b/.config/awesome/wibar/init.lua deleted file mode 100644 index 36c7d01..0000000 --- a/.config/awesome/wibar/init.lua +++ /dev/null @@ -1,76 +0,0 @@ -require('wibar.widgets') -require('wibar.taglist') -require('wibar.tasklist') - -local function set_wallpaper(s) - -- Wallpaper - if Beautiful.wallpaper then - local wallpaper = Beautiful.wallpaper - -- If wallpaper is a function, call it with the screen - if type(wallpaper) == "function" then - wallpaper = wallpaper(s) - end - Gears.wallpaper.maximized(wallpaper, s, true) - end -end - --- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) -screen.connect_signal("property::geometry", set_wallpaper) - -Awful.screen.connect_for_each_screen(function(s) - -- set_wallpaper(s) - - -- Each screen has its own tag table. - Awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, Awful.layout.layouts[1]) - - -- 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({ }, 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 }) - - -- Add widgets to the Wibox - s.myWibox:setup { - layout = Wibox.layout.align.horizontal, - { -- Left widgets - layout = Wibox.layout.fixed.horizontal, - --mylauncher, - s.mytaglist, - s.mypromptbox, - }, - - s.mytasklist, -- Middle widget - - { -- Right widgets - layout = Wibox.layout.fixed.horizontal, - Cpu_widget(), - Ram_widget(), - Batteryarc_widget({enable_battery_warning = false}), - Wibox.widget.systray(), - Mytextclock, - s.mylayoutbox, - }, - } -end) - -os.execute('nitrogen --set-zoom-fill $(awk {print} ~/.cache/wal/wal)') diff --git a/.config/awesome/wibar/taglist.lua b/.config/awesome/wibar/taglist.lua deleted file mode 100644 index 1b22e1f..0000000 --- a/.config/awesome/wibar/taglist.lua +++ /dev/null @@ -1,16 +0,0 @@ -Taglist_buttons = Gears.table.join( - Awful.button({ }, 1, function(t) t:view_only() end), - Awful.button({ Modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - Awful.button({ }, 3, Awful.tag.viewtoggle), - Awful.button({ Modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - Awful.button({ }, 4, function(t) Awful.tag.viewnext(t.screen) end), - Awful.button({ }, 5, function(t) Awful.tag.viewprev(t.screen) end) - ) diff --git a/.config/awesome/wibar/tasklist.lua b/.config/awesome/wibar/tasklist.lua deleted file mode 100644 index a21269c..0000000 --- a/.config/awesome/wibar/tasklist.lua +++ /dev/null @@ -1,21 +0,0 @@ -Tasklist_buttons = Gears.table.join( - Awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - c:emit_signal( - "request::activate", - "tasklist", - {raise = true} - ) - end - end), - Awful.button({ }, 3, function() - Awful.menu.client_list({ theme = { width = 250 } }) - end), - Awful.button({ }, 4, function () - Awful.client.focus.byidx(1) - end), - Awful.button({ }, 5, function () - Awful.client.focus.byidx(-1) - end)) diff --git a/.config/awesome/wibar/widgets.lua b/.config/awesome/wibar/widgets.lua deleted file mode 100644 index 7c210e0..0000000 --- a/.config/awesome/wibar/widgets.lua +++ /dev/null @@ -1,20 +0,0 @@ -Calendar_widget = require("awesome-wm-widgets.calendar-widget.calendar") -Cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget") -Ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget") -Batteryarc_widget = require("awesome-wm-widgets.batteryarc-widget.batteryarc") - -local cw = Calendar_widget({ - placement = 'top_right', - start_sunday = 'true', - previous_month_button = 4, - next_month_button = 5, -}) - -Mytextclock = Wibox.widget{ - format = ' %a %b %d, %I:%M%P ', - widget = Wibox.widget.textclock -} -Mytextclock:connect_signal("button::press", - function(_, _, _, button) - if button == 1 then cw.toggle() end - end) diff --git a/.config/picom.conf b/.config/picom.conf deleted file mode 100644 index 5162756..0000000 --- a/.config/picom.conf +++ /dev/null @@ -1,44 +0,0 @@ -vsync = true; -unredir-if-possible = true; - -backend = "glx"; -glx-no-stencil = true; -glx-no-rebind-pixmap = false; - -fading = true; -fade-delta = 5; -fade-exclude = [ ]; - -mark-wmwin-focused = true; -mark-ovredir-focused = true; -use-ewmh-active-win = false; -detect-transient = true; -detect-client-leader = true; - -wintypes : -{ - tooltip : - { - fade = true; - shadow = true; - opacity = 0.75; - focus = true; - full-shadow = false; - }; - dock : - { - shadow = false; - }; - dnd : - { - shadow = false; - }; - popup_menu : - { - opacity = 1.0; - }; - dropdown_menu : - { - opacity = 1.0; - }; -}; diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc deleted file mode 100644 index 8ed5f25..0000000 --- a/.config/shell/aliasrc +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - - -# Use neovim for vim if present. -[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d" - -# /comfy/ -alias \ -v="vim ." \ -x="exit" \ -ka="killall" \ -bb="byobu" \ - -# Shortcuts -alias \ -cf="~/.config && v" \ -cfv="~/.config/nvim && v" \ -cfa="~/.config/awesome && v" \ -cfs="~/.config/shell && v" \ -cfl="~/.config/lf && v" \ -cfx="~/.config/x11 && v" \ -cfz="~/.config/zsh && v" \ -cfk="~/.config/kitty && v" \ -cfp="nvim ~/.config/picom.conf" \ - -# Add verbosity -alias \ -cp="cp -iv" \ -mv="mv -iv" \ -rm="rm -vI" \ -mkd="mkdir -pv" \ - -# Add color -alias \ -ls="ls -hN --color=auto --group-directories-first" \ -grep="grep --color=auto" \ -diff="diff --color=auto" \ -ccat="highlight --out-format=ansi" \ - -# Laziness -alias \ -hosts="sudo nvim /etc/hosts" \ -push="rsync -avzP --copy-links " \ -sup="push ~/projects/http deez:" \ - -# Forget why -wget="wget --hsts-file='XDG_CACHE_HOME/wget-hsts'" \ diff --git a/.config/shell/inputrc b/.config/shell/inputrc deleted file mode 100644 index f9b94dd..0000000 --- a/.config/shell/inputrc +++ /dev/null @@ -1,19 +0,0 @@ -$include /etc/inputrc -set editing-mode vi -$if mode=vi - -set show-mode-in-prompt on -set vi-ins-mode-string \1\e[6 q\2 -set vi-cmd-mode-string \1\e[2 q\2 - -set keymap vi-command -# these are for vi-command mode -Control-l: clear-screen -Control-a: beginning-of-line - -set keymap vi-insert -# these are for vi-insert mode -Control-l: clear-screen -Control-a: beginning-of-line - -$endif diff --git a/.config/shell/shortcutrc b/.config/shell/shortcutrc deleted file mode 100644 index c92e262..0000000 --- a/.config/shell/shortcutrc +++ /dev/null @@ -1,6 +0,0 @@ -# vim: filetype=sh -cf="~/.config && v" \ -cfv="~/.config/nvim && v" \ -cfa="~/.config/awesome && v" \ -cfs="~/.config/shell && v" \ -cfl="~/.config/lf && v" \ diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc deleted file mode 100755 index 691d62d..0000000 --- a/.config/x11/xinitrc +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" ]; then - . "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" -else - . "$HOME/.xprofile" -fi - -# optimus -if [ -x $(command -v optimus-manager) ]; then - sudo prime-switch - prime-offload -fi - -wal -R -ssh-agent awesome diff --git a/.config/x11/xprofile b/.config/x11/xprofile deleted file mode 100755 index 569fdc3..0000000 --- a/.config/x11/xprofile +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -[ -x "$(command -v g610-led)" ] && g610-led -a ff & -if [ -f ".screenlayout/default.sh" ]; then - . ".screenlayout/default.sh" & -fi - -xmodmap -e 'clear lock' & -xmodmap -e 'keysym Caps_Lock = Escape' & -picom -b & -xset r rate 300 50 & -unclutter & -redshift -l 43:-70 & -xclip & diff --git a/.scripts/doors/setup b/.scripts/doors/setup deleted file mode 100755 index 5d8a019..0000000 --- a/.scripts/doors/setup +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -echo " -======================================================= -Installing D's nux (you're gonna love my nux(really)) -======================================================= -" - -# Clean up -if test -d Doors; then - rm -rf Doors -elif test -d .doors; then - rm -rf .doors -fi - -# Prep - -cd && -mkdir .doors - -# Bootstrap into distro scripts -. /etc/os-release -OS=$NAME - -if [[ $OS == *Arch* ]]; then - cd && - sudo sed '/Color/s/^#//' -i /etc/pacman.conf && - sudo pacman -S --needed --noconfirm git rsync base-devel && - git clone https://github.com/adoyle0/Doors.git .doors && - .doors/.scripts/doors/install_min_arch - -elif [[ $OS == *buntu* ]]; then - cd && - sudo apt-get -y install git rsync && - git clone https://github.com/adoyle0/Doors.git .doors && - .doors/.scripts/doors/install_min_ubuntu - -elif [[ $OS == *Fedora* ]]; then - cd && - sudo dnf install -y git rsync && - git clone https://github.com/adoyle0/Doors.git .doors && - .doors/.scripts/doors/install_min_fedora -fi - -# send it -cd && - rsync -aqzP .doors/ . - -# cleanup -cd && - rm -rf .git && - rm -rf .doors - -echo 'Start a new shell' diff --git a/.scripts/doors/swal b/.scripts/doors/swal deleted file mode 100755 index 3b9a22f..0000000 --- a/.scripts/doors/swal +++ /dev/null @@ -1,2 +0,0 @@ -cp $(awk {print} ~/.cache/wal/wal) ~/projects/doordesk/doordesk/public/bg.png -cp ~/.cache/wal/colors.css ~projects/doordesk/doordesk/public/colors.css diff --git a/.zprofile b/.zprofile deleted file mode 100644 index 759eaf9..0000000 --- a/.zprofile +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/zsh - -export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':' -)" - -unsetopt PROMPT_SP - -# Default programs: -export EDITOR="nvim" -export TERMINAL="kitty" -export BROWSER="firefox-developer-edition" - -# Move config files out of home and into .config/ -export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" -export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" -export LESSHISTFILE="-" -export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" -export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" -export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" -export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" -export TMUX_TMPDIR="$XDG_RUNTIME_DIR" -export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" -export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" -export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" -export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" - -# Other program settings: -export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" -export LESS=-R -export LESS_TERMCAP_mb="$(printf '%b' '')" -export LESS_TERMCAP_md="$(printf '%b' '')" -export LESS_TERMCAP_me="$(printf '%b' '')" -export LESS_TERMCAP_so="$(printf '%b' '')" -export LESS_TERMCAP_se="$(printf '%b' '')" -export LESS_TERMCAP_us="$(printf '%b' '')" -export LESS_TERMCAP_ue="$(printf '%b' '')" -export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" -export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. - -# This is the list for lf icons: -export LF_ICONS="di=📁:\ -fi=📃:\ -tw=🤝:\ -ow=📂:\ -ln=⛓:\ -or=❌:\ -ex=🎯:\ -*.txt=✍:\ -*.mom=✍:\ -*.me=✍:\ -*.ms=✍:\ -*.png=🖼:\ -*.webp=🖼:\ -*.ico=🖼:\ -*.jpg=📸:\ -*.jpe=📸:\ -*.jpeg=📸:\ -*.gif=🖼:\ -*.svg=🗺:\ -*.tif=🖼:\ -*.tiff=🖼:\ -*.xcf=🖌:\ -*.html=🌎:\ -*.xml=📰:\ -*.gpg=🔒:\ -*.css=🎨:\ -*.pdf=📚:\ -*.djvu=📚:\ -*.epub=📚:\ -*.csv=📓:\ -*.xlsx=📓:\ -*.tex=📜:\ -*.md=📘:\ -*.r=📊:\ -*.R=📊:\ -*.rmd=📊:\ -*.Rmd=📊:\ -*.m=📊:\ -*.mp3=🎵:\ -*.opus=🎵:\ -*.ogg=🎵:\ -*.m4a=🎵:\ -*.flac=🎼:\ -*.wav=🎼:\ -*.mkv=🎥:\ -*.mp4=🎥:\ -*.webm=🎥:\ -*.mpeg=🎥:\ -*.avi=🎥:\ -*.mov=🎥:\ -*.mpg=🎥:\ -*.wmv=🎥:\ -*.m4b=🎥:\ -*.flv=🎥:\ -*.zip=📦:\ -*.rar=📦:\ -*.7z=📦:\ -*.tar.gz=📦:\ -*.z64=🎮:\ -*.v64=🎮:\ -*.n64=🎮:\ -*.gba=🎮:\ -*.nes=🎮:\ -*.gdi=🎮:\ -*.1=ℹ:\ -*.nfo=ℹ:\ -*.info=ℹ:\ -*.log=📙:\ -*.iso=📀:\ -*.img=📀:\ -*.bib=🎓:\ -*.ged=👪:\ -*.part=💔:\ -*.torrent=🔽:\ -*.jar=♨:\ -*.java=♨:\ -" - -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 & diff --git a/.config/kitty/kitty.conf b/configs/kitty/kitty.conf similarity index 100% rename from .config/kitty/kitty.conf rename to configs/kitty/kitty.conf diff --git a/.config/lf/lfrc b/configs/lf/lfrc similarity index 100% rename from .config/lf/lfrc rename to configs/lf/lfrc diff --git a/configs/mako/config b/configs/mako/config new file mode 100644 index 0000000..76b23de --- /dev/null +++ b/configs/mako/config @@ -0,0 +1,2 @@ +ignore-timeout=1 +default-timeout=5000 diff --git a/configs/mako/update-theme b/configs/mako/update-theme new file mode 100755 index 0000000..ebac452 --- /dev/null +++ b/configs/mako/update-theme @@ -0,0 +1,20 @@ +#!/bin/sh + +. "${HOME}/.cache/wal/colors.sh" + +conffile="~/.config/mako/config" + +# Associative array, color name -> color code. +declare -A colors +colors=( + ["background-color"]="${background}89" + ["text-color"]="$foreground" + ["border-color"]="$color13" +) + +for color_name in "${!colors[@]}"; do + # replace first occurance of each color in config file + sed -i "0,/^$color_name.*/{s//$color_name=${colors[$color_name]}/}" $conffile +done + +makoctl reload diff --git a/.config/nvim/after/plugin/colors.lua b/configs/nvim/after/plugin/colors.lua similarity index 100% rename from .config/nvim/after/plugin/colors.lua rename to configs/nvim/after/plugin/colors.lua diff --git a/.config/nvim/after/plugin/fugitive.lua b/configs/nvim/after/plugin/fugitive.lua similarity index 100% rename from .config/nvim/after/plugin/fugitive.lua rename to configs/nvim/after/plugin/fugitive.lua diff --git a/.config/nvim/after/plugin/harpoon.lua b/configs/nvim/after/plugin/harpoon.lua similarity index 100% rename from .config/nvim/after/plugin/harpoon.lua rename to configs/nvim/after/plugin/harpoon.lua diff --git a/.config/nvim/after/plugin/lsp.lua b/configs/nvim/after/plugin/lsp.lua similarity index 100% rename from .config/nvim/after/plugin/lsp.lua rename to configs/nvim/after/plugin/lsp.lua diff --git a/.config/nvim/after/plugin/mason.lua b/configs/nvim/after/plugin/mason.lua similarity index 100% rename from .config/nvim/after/plugin/mason.lua rename to configs/nvim/after/plugin/mason.lua diff --git a/.config/nvim/after/plugin/telescope.lua b/configs/nvim/after/plugin/telescope.lua similarity index 100% rename from .config/nvim/after/plugin/telescope.lua rename to configs/nvim/after/plugin/telescope.lua diff --git a/.config/nvim/after/plugin/treesitter.lua b/configs/nvim/after/plugin/treesitter.lua similarity index 100% rename from .config/nvim/after/plugin/treesitter.lua rename to configs/nvim/after/plugin/treesitter.lua diff --git a/.config/nvim/after/plugin/undotree.lua b/configs/nvim/after/plugin/undotree.lua similarity index 100% rename from .config/nvim/after/plugin/undotree.lua rename to configs/nvim/after/plugin/undotree.lua diff --git a/.config/nvim/init.lua b/configs/nvim/init.lua similarity index 100% rename from .config/nvim/init.lua rename to configs/nvim/init.lua diff --git a/.config/nvim/lua/adam/ensure.lua b/configs/nvim/lua/adam/ensure.lua similarity index 100% rename from .config/nvim/lua/adam/ensure.lua rename to configs/nvim/lua/adam/ensure.lua diff --git a/.config/nvim/lua/adam/init.lua b/configs/nvim/lua/adam/init.lua similarity index 100% rename from .config/nvim/lua/adam/init.lua rename to configs/nvim/lua/adam/init.lua diff --git a/.config/nvim/lua/adam/packer.lua b/configs/nvim/lua/adam/packer.lua similarity index 100% rename from .config/nvim/lua/adam/packer.lua rename to configs/nvim/lua/adam/packer.lua diff --git a/.config/nvim/lua/adam/remap.lua b/configs/nvim/lua/adam/remap.lua similarity index 100% rename from .config/nvim/lua/adam/remap.lua rename to configs/nvim/lua/adam/remap.lua diff --git a/.config/nvim/lua/adam/set.lua b/configs/nvim/lua/adam/set.lua similarity index 100% rename from .config/nvim/lua/adam/set.lua rename to configs/nvim/lua/adam/set.lua diff --git a/.config/nvim/plugin/packer_compiled.lua b/configs/nvim/plugin/packer_compiled.lua similarity index 100% rename from .config/nvim/plugin/packer_compiled.lua rename to configs/nvim/plugin/packer_compiled.lua diff --git a/configs/river/init b/configs/river/init new file mode 100755 index 0000000..b3dd44a --- /dev/null +++ b/configs/river/init @@ -0,0 +1,164 @@ +#!/bin/sh + +waybar & +swaybg -i ~/.cache/wal/bg & +mako & + +riverctl map normal Super Return spawn kitty +riverctl map normal Super W spawn firefox-developer-edition +riverctl map normal Super+Shift W spawn google-chrome-beta +riverctl map normal Super R spawn fuzzel +riverctl map normal Super C spawn "caprine --enable-features=UseOzonePlatform --ozone-platform=wayland" +riverctl map normal Super+Shift C spawn telegram-desktop +riverctl map normal Super D spawn "discord --enable-features=UseOzonePlatform --ozone-platform=wayland" +riverctl map normal Super G spawn gimp +riverctl map normal Super+Shift G spawn steam-native +riverctl map normal Super M spawn spotify-launcher + +# Super+Q to close the focused view +riverctl map normal Super Q close + +# Super+Shift+E to exit river +riverctl map normal Super+Shift E exit + +# Super+J and Super+K to focus the next/previous view in the layout stack +riverctl map normal Super J focus-view next +riverctl map normal Super K focus-view previous + +# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous +# view in the layout stack +riverctl map normal Super+Shift J swap next +riverctl map normal Super+Shift K swap previous + +# Super+Period and Super+Comma to focus the next/previous output +riverctl map normal Super Period focus-output next +riverctl map normal Super Comma focus-output previous + +# Super+Shift+{Period,Comma} to send the focused view to the next/previous output +riverctl map normal Super+Shift Period send-to-output next +riverctl map normal Super+Shift Comma send-to-output previous + +# Super+Return to bump the focused view to the top of the layout stack +riverctl map normal Super+Shift Return zoom + +# Super+H and Super+L to decrease/increase the main ratio of rivertile(1) +riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05" +riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05" + +# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1) +riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1" +riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1" + +# Super+Alt+{H,J,K,L} to move views +riverctl map normal Super+Alt H move left 100 +riverctl map normal Super+Alt J move down 100 +riverctl map normal Super+Alt K move up 100 +riverctl map normal Super+Alt L move right 100 + +# Super+Alt+Control+{H,J,K,L} to snap views to screen edges +riverctl map normal Super+Alt+Control H snap left +riverctl map normal Super+Alt+Control J snap down +riverctl map normal Super+Alt+Control K snap up +riverctl map normal Super+Alt+Control L snap right + +# Super+Alt+Shift+{H,J,K,L} to resize views +riverctl map normal Super+Alt+Shift H resize horizontal -100 +riverctl map normal Super+Alt+Shift J resize vertical 100 +riverctl map normal Super+Alt+Shift K resize vertical -100 +riverctl map normal Super+Alt+Shift L resize horizontal 100 + +# Super + Left Mouse Button to move views +riverctl map-pointer normal Super BTN_LEFT move-view + +# Super + Right Mouse Button to resize views +riverctl map-pointer normal Super BTN_RIGHT resize-view + +# Super + Middle Mouse Button to toggle float +riverctl map-pointer normal Super BTN_MIDDLE toggle-float + +for i in $(seq 1 9) +do + tags=$((1 << ($i - 1))) + + # Super+[1-9] to focus tag [0-8] + riverctl map normal Super $i set-focused-tags $tags + + # Super+Shift+[1-9] to tag focused view with tag [0-8] + riverctl map normal Super+Shift $i set-view-tags $tags + + # Super+Control+[1-9] to toggle focus of tag [0-8] + riverctl map normal Super+Control $i toggle-focused-tags $tags + + # Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view + riverctl map normal Super+Shift+Control $i toggle-view-tags $tags +done + +# Super+0 to focus all tags +# Super+Shift+0 to tag focused view with all tags +all_tags=$(((1 << 32) - 1)) +riverctl map normal Super 0 set-focused-tags $all_tags +riverctl map normal Super+Shift 0 set-view-tags $all_tags + +# Super+Space to toggle float +riverctl map normal Super Space toggle-float + +# Super+F to toggle fullscreen +riverctl map normal Super F toggle-fullscreen + +# Super+{Up,Right,Down,Left} to change layout orientation +riverctl map normal Super Up send-layout-cmd rivertile "main-location top" +riverctl map normal Super Right send-layout-cmd rivertile "main-location right" +riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom" +riverctl map normal Super Left send-layout-cmd rivertile "main-location left" + +# Declare a passthrough mode. This mode has only a single mapping to return to +# normal mode. This makes it useful for testing a nested wayland compositor +riverctl declare-mode passthrough + +# Super+F11 to enter passthrough mode +riverctl map normal Super F11 enter-mode passthrough + +# Super+F11 to return to normal mode +riverctl map passthrough Super F11 enter-mode normal + +# Various media key mapping examples for both normal and locked mode which do +# not have a modifier +for mode in normal locked +do + # Eject the optical drive (well if you still have one that is) + riverctl map $mode None XF86Eject spawn 'eject -T' + + # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) + riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5' + riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5' + riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute' + + # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) + riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' + riverctl map $mode None XF86AudioNext spawn 'playerctl next' + + # Control screen backlight brightness with light (https://github.com/haikarainen/light) + riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5' + riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5' +done + +# Set background and border color +riverctl background-color 0x002b36 +riverctl border-color-focused 0x93a1a1 +riverctl border-color-unfocused 0x586e75 + +# Set keyboard repeat rate +riverctl set-repeat 50 300 + +# Make all views with an app-id that starts with "float" and title "foo" start floating. +riverctl rule-add float -app-id 'float*' -title 'foo' + +# Make all views with app-id "bar" and any title use client-side decorations +riverctl rule-add csd -app-id "bar" + +# Set the default layout generator to be rivertile and start it. +# River will send the process group of the init executable SIGTERM on exit. +riverctl default-layout rivertile +rivertile -view-padding 6 -outer-padding 6 & diff --git a/.config/shell/profile b/configs/shell/profile similarity index 87% rename from .config/shell/profile rename to configs/shell/profile index 759eaf9..eedc632 100644 --- a/.config/shell/profile +++ b/configs/shell/profile @@ -1,5 +1,15 @@ #!/bin/zsh +# Keyboard lights +[ -x "$(command -v g610-led)" ] && g610-led -a ff + +# The way life should be +export XKB_DEFAULT_OPTIONS=caps:escape + +# Wayland stuff +export WLR_NO_HARDWARE_CURSORS=1 +export MOZ_ENABLE_WAYLAND=1 + export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':' -)" unsetopt PROMPT_SP @@ -10,11 +20,9 @@ export TERMINAL="kitty" export BROWSER="firefox-developer-edition" # Move config files out of home and into .config/ -export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" export LESSHISTFILE="-" -export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" -export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" +export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zsh" export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" export TMUX_TMPDIR="$XDG_RUNTIME_DIR" @@ -115,4 +123,6 @@ ex=🎯:\ *.java=♨:\ " -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 & +if [[ -z $WAYLAND_DISPLAY && $(tty) = "/dev/tty1" ]]; then + exec river +fi diff --git a/.config/zsh/.zshrc b/configs/shell/zsh/.zshrc similarity index 82% rename from .config/zsh/.zshrc rename to configs/shell/zsh/.zshrc index 06baec6..0f5a39f 100644 --- a/.config/zsh/.zshrc +++ b/configs/shell/zsh/.zshrc @@ -41,16 +41,17 @@ dicheck='rsync -havn . /dev/shm --exclude-from .dockerignore' \ # Shortcuts alias \ -hosts="sudo nvim /etc/hosts" \ cf="~/.config && v" \ +cfh="sudo nvim /etc/hosts" \ +cfk="nvim ~/.config/kitty/kitty.conf" \ +cfl="nvim ~/.config/lf/lfrc" \ +cfm="nvim ~/.config/mako/config" \ +cfp="nvim ~/.zprofile" \ +cfr="nvim ~/.config/river/init" \ cfv="~/.config/nvim && v" \ -cfa="~/.config/awesome && v" \ -cfs="~/.config/shell && v" \ -cfl="~/.config/lf && v" \ -cfx="~/.config/x11 && v" \ -cfz="~/.config/zsh && v" \ -cfk="~/.config/kitty && v" \ -cfp="nvim ~/.config/picom.conf" \ +cfw="nvim ~/.config/waybar/config" \ +cfws="nvim ~/.config/waybar/style.css" \ +cfz="nvim ~/.config/zsh/.zshrc" \ # Add verbosity alias \ @@ -67,9 +68,6 @@ diff="diff --color=auto" \ ccat="highlight --out-format=ansi" \ -# Forget why -wget="wget --hsts-file='XDG_CACHE_HOME/wget-hsts'" \ - ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh if [[ ! -d $ZSH_CACHE_DIR ]]; then mkdir $ZSH_CACHE_DIR diff --git a/configs/waybar/config b/configs/waybar/config new file mode 100644 index 0000000..f1059d6 --- /dev/null +++ b/configs/waybar/config @@ -0,0 +1,87 @@ +{ + // basics + + "spacing": 4, + + + // modules layout + + "modules-left": ["river/tags"], + "modules-center": ["river/window"], + "modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "tray", "clock"], + + + // modules config + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + + "cpu": { + "format": " {usage}%", + "tooltip": false + }, + + "memory": { + "format": " {}%" + }, + + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, +} diff --git a/configs/waybar/style.css b/configs/waybar/style.css new file mode 100644 index 0000000..43dbed2 --- /dev/null +++ b/configs/waybar/style.css @@ -0,0 +1,130 @@ +@import "../../.cache/wal/colors-waybar.css"; /* can't get a nice path? or brainfart */ + +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + color: @foreground; +} + +window#waybar { + background-color: @background; + border-bottom: 3px solid @color3; + transition-property: background-color; + transition-duration: .5s; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px @color2; +} + +#tags { + background-color: @background; +} + +#tags button.occupied { + box-shadow: inset 0 -3px @color3; +} + +#tags button.focused { + background-color: @color1; + box-shadow: inset 0 -3px @foreground; +} +#tags button.urgent { + color: red; +} + +#idle_inhibitor, +#clock, +#cpu, +#memory, +#network, +#tray, +#pulseaudio { + background-color: @color1; + padding: 0 10px; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + + +#wireplumber { + background-color: #fff0f5; + color: #000000; +} + +#wireplumber.muted { + background-color: #f53c3c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} diff --git a/readme.md b/readme.md index 6c0f28d..2d75df4 100644 --- a/readme.md +++ b/readme.md @@ -1,8 +1,6 @@ # Doors are sturdier than windows -The idea is a one liner to have a quick workbench, like flipping a door on its side for a quick desk. - -I'm writing speedrun install scripts for my personal desktop environment that is: +This is my personal desktop environment that is: 1. Reliable 1. Fast @@ -13,9 +11,9 @@ I'm writing speedrun install scripts for my personal desktop environment that is I try to use the terminal as much as possible for performance and also so it's the same experience whether you're at the computer or connected via ssh. -Use as much or as little as you need. +If it's not here then you probably don't need it. -## Features +## Most Features ### Shell/Base @@ -23,7 +21,7 @@ Use as much or as little as you need. - [rsync](https://rsync.samba.org/) - For my 'push' alias - [sl](https://github.com/eyJhb/sl) - For when you're too fast - [btop](https://github.com/aristocratos/btop) - Top++ -- [neovim](https://github.com/neovim/neovim) - Blazingly fast editor +- [neovim](https://github.com/neovim/neovim) - Edit text blazingly fast (even over ssh) - [byobu](https://www.byobu.org/) - Comfy multiplexer - [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh) - Community enhancements for zsh. Easier than DIY - [nnn](https://github.com/jarun/nnn) - Lightning fast file manager @@ -33,24 +31,24 @@ Use as much or as little as you need. ### Graphical environment Business: -- [AwesomeWM](https://awesomewm.org/) - Fast and light Tiling WM configured with lua + +- [river](https://github.com/riverwm/river) - Dynamic wayland compositor like DWM - [kitty](https://github.com/kovidgoyal/kitty) - Fast terminal with GPU acceleration and image support -- [redshift](https://github.com/jonls/redshift) - Easier on the eyes at night -- [picom](https://github.com/yshui/picom) - Compositing -- [unclutter](https://github.com/Airblader/unclutter-xfixes) - Hide mouse cursor after inactivity -- [xclip](https://github.com/astrand/xclip) - Make clipboard work between terminal and gui - [playerctl](https://github.com/altdesktop/playerctl) - Handle media keys - [acpi](https://archlinux.org/packages/community/x86_64/acpi/) - Power/thermal stuff, standby, etc. You want this for a desktop Eye Candy: -- [nitrogen](https://github.com/l3ib/nitrogen/) - I use it in my wal script to set wallpaper spanning across multiple screens - [pywal](https://github.com/dylanaraps/pywal) - Set whole system color scheme from wallpaper colors - [pywal-discord](https://github.com/FilipLitwora/pywal-discord) - See above - [wal-telegram](https://github.com/guillaumeboehm/wal-telegram) - See above - [Pywalfox](https://github.com/Frewacom/pywalfox) - See above ## Install -Tested on Arch, Ubuntu Server 22.04, Fedora 37 +The install script clones this repo, installs a few dependencies, then copies my configs to `$HOME/.config/` creating a backup +for any config files that already exist. NOTE: Only one backup per file is saved to prevent piling up backups. It's only meant +to catch small oversights and is very verbose. + +Shell tested on Arch, Ubuntu Server 22.04, Fedora 37, it should work just about anywhere. ### Quick shell (start here): As your new user in your new user's home directory run: (will overwrite some user files) @@ -59,21 +57,10 @@ As your new user in your new user's home directory run: (will overwrite some use 2. Log out and log back in -### Graphical environment -If you want a graphical environment run: (Arch only) - -`.scripts/doors/.installdeps_full_arch` - -to get the rest and then: - -```startx``` to load it. - -but it might be missing some things depending on your install profile (still testing) - ## Post Install 1. Neovim will be confused on first start until `:PackerSync` is run ### TODO: +- make installer more granular +- install full DE - support more distros -- make sure full install actually has all deps handled - diff --git a/.scripts/doors/install_min_arch b/scripts/install_arch similarity index 62% rename from .scripts/doors/install_min_arch rename to scripts/install_arch index 605f8c2..f10600b 100755 --- a/.scripts/doors/install_min_arch +++ b/scripts/install_arch @@ -1,19 +1,23 @@ #!/bin/bash -cd - -if test -d yay; then - rm -rf yay -fi - +cd && if ! type "yay" &> /dev/null; then + echo "Yay not found, installing..." && + + if test -d yay; then + rm -rf yay + fi && + git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si --noconfirm && cd && rm -rf yay -fi +else + echo -e "\nYay is already installed, skipping..." +fi && +echo -e "\nInstalling dependencies..." && # Base/Shell yay -S --needed --noconfirm \ \ @@ -26,11 +30,12 @@ byobu \ zsh \ lf \ nnn \ +kitty \ kitty-terminfo \ \ `# Aur`\ stpv-git \ -nvim-packer-git \ oh-my-zsh-git && +echo "" && sudo chsh -s /bin/zsh $USER diff --git a/.scripts/doors/install_full_arch b/scripts/install_full_arch similarity index 100% rename from .scripts/doors/install_full_arch rename to scripts/install_full_arch diff --git a/.scripts/doors/install_min_fedora b/scripts/install_min_fedora similarity index 100% rename from .scripts/doors/install_min_fedora rename to scripts/install_min_fedora diff --git a/.scripts/doors/install_min_ubuntu b/scripts/install_min_ubuntu similarity index 100% rename from .scripts/doors/install_min_ubuntu rename to scripts/install_min_ubuntu diff --git a/.scripts/doors/wal b/scripts/wal similarity index 100% rename from .scripts/doors/wal rename to scripts/wal diff --git a/setup b/setup new file mode 100755 index 0000000..e09d688 --- /dev/null +++ b/setup @@ -0,0 +1,56 @@ +#!/bin/bash +clear + +curl https://doordesk.net/doors + +. /etc/os-release +OS=$NAME +echo -e "\nDetected OS as $OS" + +if [[ $OS == *Arch* ]]; then + cd && + echo "Enabling Pacman colors..." && + sudo sed '/Color/s/^#//' -i /etc/pacman.conf && + + echo -e "\nVerifying base requirements..." && + sudo pacman -S --needed --noconfirm git base-devel && + + if test -d .doors; then + echo -e "\n$HOME/.doors found, checking for updates..." + cd .doors && git pull && cd + else + echo -e "\n$HOME/.doors not found, creating..." + git clone https://github.com/adoyle0/Doors.git .doors + fi && + + .doors/scripts/install_arch + +elif [[ $OS == *buntu* ]]; then + cd && + sudo apt-get -y install git rsync && + git clone https://github.com/adoyle0/Doors.git .doors && + .doors/scripts/install_min_ubuntu + +elif [[ $OS == *Fedora* ]]; then + cd && + sudo dnf install -y git rsync && + git clone https://github.com/adoyle0/Doors.git .doors && + .doors/scripts/install_min_fedora +fi + +echo -e "\nInstalling Configs..." && + cd .doors/configs && + + for file in * + do + if test -d $HOME/.config/$file; then + echo -e "\n$file already exists, creating backups..." + else + echo -e "\nWriting $file..." + fi + cp -rbv $file $HOME/.config/ + done && + echo -e "\nLinking profile..." && + cp -sbv $HOME/.config/shell/profile $HOME/.zprofile && + +echo -e "\nDone!"