nuke everything for wayland
This commit is contained in:
parent
72533d9133
commit
048e341fe4
53 changed files with 508 additions and 901 deletions
|
@ -1 +0,0 @@
|
||||||
Subproject commit ef70d16c43c2f566a4fe2955b8d6c08f6c185af8
|
|
|
@ -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"})
|
|
||||||
)
|
|
|
@ -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"})
|
|
||||||
)
|
|
|
@ -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)
|
|
|
@ -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")
|
|
|
@ -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)
|
|
|
@ -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 }
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -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)
|
|
|
@ -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
|
|
|
@ -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)')
|
|
|
@ -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)
|
|
||||||
)
|
|
|
@ -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))
|
|
|
@ -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)
|
|
|
@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -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'" \
|
|
|
@ -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
|
|
|
@ -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" \
|
|
|
@ -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
|
|
|
@ -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 &
|
|
|
@ -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'
|
|
|
@ -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
|
|
118
.zprofile
118
.zprofile
|
@ -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' '[1;31m')"
|
|
||||||
export LESS_TERMCAP_md="$(printf '%b' '[1;36m')"
|
|
||||||
export LESS_TERMCAP_me="$(printf '%b' '[0m')"
|
|
||||||
export LESS_TERMCAP_so="$(printf '%b' '[01;44;33m')"
|
|
||||||
export LESS_TERMCAP_se="$(printf '%b' '[0m')"
|
|
||||||
export LESS_TERMCAP_us="$(printf '%b' '[1;32m')"
|
|
||||||
export LESS_TERMCAP_ue="$(printf '%b' '[0m')"
|
|
||||||
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 &
|
|
2
configs/mako/config
Normal file
2
configs/mako/config
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ignore-timeout=1
|
||||||
|
default-timeout=5000
|
20
configs/mako/update-theme
Executable file
20
configs/mako/update-theme
Executable file
|
@ -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
|
164
configs/river/init
Executable file
164
configs/river/init
Executable file
|
@ -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 &
|
|
@ -1,5 +1,15 @@
|
||||||
#!/bin/zsh
|
#!/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 ':' -)"
|
export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':' -)"
|
||||||
|
|
||||||
unsetopt PROMPT_SP
|
unsetopt PROMPT_SP
|
||||||
|
@ -10,11 +20,9 @@ export TERMINAL="kitty"
|
||||||
export BROWSER="firefox-developer-edition"
|
export BROWSER="firefox-developer-edition"
|
||||||
|
|
||||||
# Move config files out of home and into .config/
|
# 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 GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
|
||||||
export LESSHISTFILE="-"
|
export LESSHISTFILE="-"
|
||||||
export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc"
|
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zsh"
|
||||||
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"
|
|
||||||
export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
|
export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
|
||||||
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store"
|
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store"
|
||||||
export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
|
export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
|
||||||
|
@ -115,4 +123,6 @@ ex=🎯:\
|
||||||
*.java=♨:\
|
*.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
|
|
@ -41,16 +41,17 @@ dicheck='rsync -havn . /dev/shm --exclude-from .dockerignore' \
|
||||||
|
|
||||||
# Shortcuts
|
# Shortcuts
|
||||||
alias \
|
alias \
|
||||||
hosts="sudo nvim /etc/hosts" \
|
|
||||||
cf="~/.config && v" \
|
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" \
|
cfv="~/.config/nvim && v" \
|
||||||
cfa="~/.config/awesome && v" \
|
cfw="nvim ~/.config/waybar/config" \
|
||||||
cfs="~/.config/shell && v" \
|
cfws="nvim ~/.config/waybar/style.css" \
|
||||||
cfl="~/.config/lf && v" \
|
cfz="nvim ~/.config/zsh/.zshrc" \
|
||||||
cfx="~/.config/x11 && v" \
|
|
||||||
cfz="~/.config/zsh && v" \
|
|
||||||
cfk="~/.config/kitty && v" \
|
|
||||||
cfp="nvim ~/.config/picom.conf" \
|
|
||||||
|
|
||||||
# Add verbosity
|
# Add verbosity
|
||||||
alias \
|
alias \
|
||||||
|
@ -67,9 +68,6 @@ diff="diff --color=auto" \
|
||||||
ccat="highlight --out-format=ansi" \
|
ccat="highlight --out-format=ansi" \
|
||||||
|
|
||||||
|
|
||||||
# Forget why
|
|
||||||
wget="wget --hsts-file='XDG_CACHE_HOME/wget-hsts'" \
|
|
||||||
|
|
||||||
ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh
|
ZSH_CACHE_DIR=$HOME/.cache/oh-my-zsh
|
||||||
if [[ ! -d $ZSH_CACHE_DIR ]]; then
|
if [[ ! -d $ZSH_CACHE_DIR ]]; then
|
||||||
mkdir $ZSH_CACHE_DIR
|
mkdir $ZSH_CACHE_DIR
|
87
configs/waybar/config
Normal file
87
configs/waybar/config
Normal file
|
@ -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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"format-alt": "{:%Y-%m-%d}"
|
||||||
|
},
|
||||||
|
}
|
130
configs/waybar/style.css
Normal file
130
configs/waybar/style.css
Normal file
|
@ -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;
|
||||||
|
}
|
39
readme.md
39
readme.md
|
@ -1,8 +1,6 @@
|
||||||
# Doors are sturdier than windows
|
# 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.
|
This is my personal desktop environment that is:
|
||||||
|
|
||||||
I'm writing speedrun install scripts for my personal desktop environment that is:
|
|
||||||
|
|
||||||
1. Reliable
|
1. Reliable
|
||||||
1. Fast
|
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
|
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.
|
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
|
### Shell/Base
|
||||||
|
|
||||||
|
@ -23,7 +21,7 @@ Use as much or as little as you need.
|
||||||
- [rsync](https://rsync.samba.org/) - For my 'push' alias
|
- [rsync](https://rsync.samba.org/) - For my 'push' alias
|
||||||
- [sl](https://github.com/eyJhb/sl) - For when you're too fast
|
- [sl](https://github.com/eyJhb/sl) - For when you're too fast
|
||||||
- [btop](https://github.com/aristocratos/btop) - Top++
|
- [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
|
- [byobu](https://www.byobu.org/) - Comfy multiplexer
|
||||||
- [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh) - Community enhancements for zsh. Easier than DIY
|
- [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
|
- [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
|
### Graphical environment
|
||||||
|
|
||||||
Business:
|
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
|
- [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
|
- [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
|
- [acpi](https://archlinux.org/packages/community/x86_64/acpi/) - Power/thermal stuff, standby, etc. You want this for a desktop
|
||||||
|
|
||||||
Eye Candy:
|
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](https://github.com/dylanaraps/pywal) - Set whole system color scheme from wallpaper colors
|
||||||
- [pywal-discord](https://github.com/FilipLitwora/pywal-discord) - See above
|
- [pywal-discord](https://github.com/FilipLitwora/pywal-discord) - See above
|
||||||
- [wal-telegram](https://github.com/guillaumeboehm/wal-telegram) - See above
|
- [wal-telegram](https://github.com/guillaumeboehm/wal-telegram) - See above
|
||||||
- [Pywalfox](https://github.com/Frewacom/pywalfox) - See above
|
- [Pywalfox](https://github.com/Frewacom/pywalfox) - See above
|
||||||
|
|
||||||
## Install
|
## 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):
|
### Quick shell (start here):
|
||||||
As your new user in your new user's home directory run: (will overwrite some user files)
|
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
|
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
|
## Post Install
|
||||||
1. Neovim will be confused on first start until `:PackerSync` is run
|
1. Neovim will be confused on first start until `:PackerSync` is run
|
||||||
|
|
||||||
### TODO:
|
### TODO:
|
||||||
|
- make installer more granular
|
||||||
|
- install full DE
|
||||||
- support more distros
|
- support more distros
|
||||||
- make sure full install actually has all deps handled
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,23 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cd
|
cd &&
|
||||||
|
|
||||||
if test -d yay; then
|
|
||||||
rm -rf yay
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! type "yay" &> /dev/null; then
|
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 &&
|
git clone https://aur.archlinux.org/yay.git &&
|
||||||
cd yay &&
|
cd yay &&
|
||||||
makepkg -si --noconfirm &&
|
makepkg -si --noconfirm &&
|
||||||
cd &&
|
cd &&
|
||||||
rm -rf yay
|
rm -rf yay
|
||||||
fi
|
else
|
||||||
|
echo -e "\nYay is already installed, skipping..."
|
||||||
|
fi &&
|
||||||
|
|
||||||
|
echo -e "\nInstalling dependencies..." &&
|
||||||
# Base/Shell
|
# Base/Shell
|
||||||
yay -S --needed --noconfirm \
|
yay -S --needed --noconfirm \
|
||||||
\
|
\
|
||||||
|
@ -26,11 +30,12 @@ byobu \
|
||||||
zsh \
|
zsh \
|
||||||
lf \
|
lf \
|
||||||
nnn \
|
nnn \
|
||||||
|
kitty \
|
||||||
kitty-terminfo \
|
kitty-terminfo \
|
||||||
\
|
\
|
||||||
`# Aur`\
|
`# Aur`\
|
||||||
stpv-git \
|
stpv-git \
|
||||||
nvim-packer-git \
|
|
||||||
oh-my-zsh-git &&
|
oh-my-zsh-git &&
|
||||||
|
|
||||||
|
echo "" &&
|
||||||
sudo chsh -s /bin/zsh $USER
|
sudo chsh -s /bin/zsh $USER
|
56
setup
Executable file
56
setup
Executable file
|
@ -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!"
|
Loading…
Add table
Reference in a new issue