nuke everything for wayland

This commit is contained in:
Adam 2023-06-15 16:36:30 -04:00
parent 72533d9133
commit 048e341fe4
53 changed files with 508 additions and 901 deletions

@ -1 +0,0 @@
Subproject commit ef70d16c43c2f566a4fe2955b8d6c08f6c185af8

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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

2
configs/mako/config Normal file
View file

@ -0,0 +1,2 @@
ignore-timeout=1
default-timeout=5000

20
configs/mako/update-theme Executable file
View 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
View 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 &

View file

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

View file

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

87
configs/waybar/config Normal file
View 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
View 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;
}

View file

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

View file

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

56
setup Executable file
View 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!"