This commit is contained in:
Adam 2023-02-03 04:08:44 -05:00
commit 5959a0325c
51 changed files with 1786 additions and 0 deletions

118
.bash_profile Normal file
View file

@ -0,0 +1,118 @@
#!/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 &

23
.bashrc Normal file
View file

@ -0,0 +1,23 @@
stty -ixon
shopt -s autocd
HISTSIZE= HISTFILESIZE=
# Set Bash prompt. Capitalize username and host if root user
if [ "$EUID" -ne 0 ]
then export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"
else export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]ROOT\[$(tput setaf 2)\]@\[$(tput setaf 4)\]$(hostname | awk '{print toupper($0)}') \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"
fi
export GPG_TTY=$(tty)
alias x="exit"
alias push="rsync -avzP "
alias ka="killall"
alias rf="source ~/.bashrc"
alias bb="byobu"
alias starwars="telnet towel.blinkenlights.nl"
# Adding color
alias ls='ls -hN --color=auto --group-directories-first'
alias crep="grep --color=always" # Color grep - highlight desired sequence.
alias ccat="highlight --out-format=xterm256" # Color cat - print file with syntax highlighting.

1
.byobu/.tmux.conf Normal file
View file

@ -0,0 +1 @@
set -g mouse on

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

View file

@ -0,0 +1,21 @@
-- 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

@ -0,0 +1,67 @@
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 firefox", group = "launcher"}),
Awful.key({ Modkey, "Shift" }, "w", function () Awful.spawn(Browser2) end,
{description = "open brave", 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

@ -0,0 +1,74 @@
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

@ -0,0 +1,31 @@
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")

27
.config/awesome/rc.lua Normal file
View file

@ -0,0 +1,27 @@
require('core')
Terminal = "kitty"
Editor = "nvim"
Editor_cmd = Terminal .. " -e " .. Editor
Browser = "firefox-developer-edition"
Browser2 = "brave-nightly"
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

@ -0,0 +1,50 @@
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

@ -0,0 +1,60 @@
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)

69
.config/awesome/theme.lua Normal file
View file

@ -0,0 +1,69 @@
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

@ -0,0 +1,76 @@
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

@ -0,0 +1,16 @@
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

@ -0,0 +1,21 @@
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

@ -0,0 +1,20 @@
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)

4
.config/kitty/kitty.conf Normal file
View file

@ -0,0 +1,4 @@
background_opacity 0.8
font_size 11
include ~/.cache/wal/colors-kitty.conf
enable_audio_bell no

96
.config/lf/lfrc Normal file
View file

@ -0,0 +1,96 @@
# Basic vars
set shellopts '-eu'
set ifs "\n"
set scrolloff 10
set icons
set period 1
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
# Previews
set previewer stpv
set cleaner stpvimgclr
&stpvimg --listen $id
cmd on-quit $stpvimg --end $id
# cmds/functions
cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')"
cmd extract ${{
clear; tput cup $(($(tput lines)/3)); tput bold
set -f
printf "%s\n\t" "$fx"
printf "extract?[y/N]"
read ans
[ $ans = "y" ] && aunpack $fx
}}
cmd delete ${{
clear; tput cup $(($(tput lines)/3)); tput bold
set -f
printf "%s\n\t" "$fx"
printf "delete?[y/N]"
read ans
[ $ans = "y" ] && rm -rf -- $fx
}}
cmd moveto ${{
clear; tput cup $(($(tput lines)/3)); tput bold
set -f
clear; echo "Move to where?"
dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" &&
for x in $fx; do
eval mv -iv \"$x\" \"$dest\"
done &&
notify-send "🚚 File(s) moved." "File(s) moved to $dest."
}}
cmd copyto ${{
clear; tput cup $(($(tput lines)/3)); tput bold
set -f
clear; echo "Copy to where?"
dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" &&
for x in $fx; do
eval cp -ivr \"$x\" \"$dest\"
done &&
notify-send "📋 File(s) copied." "File(s) copies to $dest."
}}
cmd setbg "$1"
cmd bulkrename $vidir
# Bindings
map <c-f> $lf -remote "send $id select '$(fzf)'"
map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)"
map gh
map g top
map D delete
map E extract
map C copyto
map M moveto
map <c-n> push :mkdir<space>
map <c-r> reload
map <c-s> set hidden!
map <enter> shell
map x $$f
map X !$f
map o &mimeopen $f
map O $mimeopen --ask $f
map A rename # at the very end
map c push A<c-u> # new rename
map I push A<c-a> # at the very beginning
map i push A<a-b><a-b><a-f> # before extension
map a push A<a-b> # after extension
map B bulkrename
map b $setbg $f
map <c-e> down
map <c-y> up
map V push :!nvim<space>
map W $setsid -f $TERMINAL >/dev/null 2>&1
map Y $printf "%s" "$fx" | xclip -selection clipboard
# Source Bookmarks
source "~/.config/lf/shortcutrc"

View file

@ -0,0 +1,7 @@
function AddTransparency()
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
end
AddTransparency()

View file

@ -0,0 +1 @@
vim.keymap.set('n', '<leader>gs', vim.cmd.Git);

View file

@ -0,0 +1,10 @@
local mark = require('harpoon.mark')
local ui = require('harpoon.ui')
vim.keymap.set('n', '<leader>a', mark.add_file)
vim.keymap.set('n', '<C-e>', ui.toggle_quick_menu)
vim.keymap.set('n', '<C-h>', function() ui.nav_file(1) end)
vim.keymap.set('n', '<C-t>', function() ui.nav_file(2) end)
vim.keymap.set('n', '<C-n>', function() ui.nav_file(3) end)
vim.keymap.set('n', '<C-s>', function() ui.nav_file(4) end)

View file

@ -0,0 +1,33 @@
local lsp = require('lsp-zero')
lsp.preset('recommended')
local cmp = require('cmp')
local cmp_select = {behavior = cmp.SelectBehavior.Select}
local cmp_mappings = lsp.defaults.cmp_mappings({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<C-Space>'] = cmp.mapping.complete()
})
lsp.setup_nvim_cmp({
mapping = cmp_mappings
})
lsp.on_attach(function(client, bufnr)
local opts = {buffer = bufnr, remap = false}
vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, opts)
vim.keymap.set('n', 'K', function() vim.lsp.buf.hover() end, opts)
vim.keymap.set('n', '<leader>vws', function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set('n', '<leader>vd', function() vim.diagnostic.open_float() end, opts)
vim.keymap.set('n', '[d', function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set('n', ']d', function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set('n', '<leader>vca', function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set('n', '<leader>vrr', function() vim.lsp.buf.references() end, opts)
vim.keymap.set('n', '<leader>vrn', function() vim.lsp.buf.rename() end, opts)
vim.keymap.set('i', '<C-h>', function() vim.lsp.buf.signature_help() end, opts)
end)
lsp.setup()

View file

@ -0,0 +1,9 @@
require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = ""
}
}
})

View file

@ -0,0 +1,9 @@
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
vim.keymap.set('n', '<C-p>', builtin.git_files, {})
vim.keymap.set('n', '<leader>ps', function()
builtin.grep_string({ search = vim.fn.input("Grep > ") });
end)
--vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
--vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
--vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})

View file

@ -0,0 +1,12 @@
require'nvim-treesitter.configs'.setup {
ensure_installed = { "help", "javascript", "typescript", "python", "c", "lua", "rust" },
sync_install = false,
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
indent = {
enable = true
},
}

View file

@ -0,0 +1 @@
vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle)

2
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,2 @@
require('adam')
require('adam.set')

View file

@ -0,0 +1,3 @@
require('adam.set')
require('adam.remap')
require('adam.packer')

View file

@ -0,0 +1,49 @@
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- Telescope
use {
'nvim-telescope/telescope.nvim', tag = '0.1.0',
-- or , branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
use 'nvim-treesitter/playground'
use 'theprimeagen/harpoon'
use 'mbbill/undotree'
use 'tpope/vim-fugitive'
-- Visual
use 'vim-airline/vim-airline'
use {
'VonHeikemen/lsp-zero.nvim',
requires = {
-- LSP Support
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
-- Snippets
{'L3MON4D3/LuaSnip'},
{'rafamadriz/friendly-snippets'},
}
}
end)

View file

@ -0,0 +1,33 @@
vim.keymap.set('n', '<leader>pv', vim.cmd.Ex)
vim.keymap.set('n', '<leader>pS', vim.cmd.PackerSync)
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set('n', 'J', 'mzJ`z')
vim.keymap.set('n', '<C-d>', '<C-d>zz')
vim.keymap.set('n', '<C-u>', '<C-u>zz')
vim.keymap.set('n', 'n', 'nzzzv')
vim.keymap.set('n', 'N', 'Nzzzv')
vim.keymap.set('x', '<leader>p', '\"_dP')
vim.keymap.set('n', '<leader>y', '\"+y')
vim.keymap.set('v', '<leader>y', '\"+y')
vim.keymap.set('n', '<leader>Y', '\"+Y')
vim.keymap.set('n', '<leader>d', '\"_d')
vim.keymap.set('v', '<leader>d', '\"_d')
vim.keymap.set('n', 'Q', '<nop>')
vim.keymap.set('n', '<leader>f', function()
vim.lsp.buf.format()
end)
vim.keymap.set('n', '<C-k>', '<cmd>cnext<CR>zz')
vim.keymap.set('n', '<C-j>', '<cmd>cprev<CR>zz')
vim.keymap.set('n', '<leader>k', '<cmd>lnext<CR>zz')
vim.keymap.set('n', '<leader>j', '<cmd>lprev<CR>zz')
vim.keymap.set('n', '<leader>s', [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set('n', '<leader>x', '<cmd>!chmod +x %<CR>', { silent = true })

View file

@ -0,0 +1,27 @@
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv('HOME') .. '/.vim/undodir'
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = 'yes'
vim.opt.isfname:append('@-@')
vim.opt.updatetime = 50
vim.g.mapleader = ' '

View file

@ -0,0 +1,199 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/adam/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/adam/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/adam/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/adam/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/adam/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
LuaSnip = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-nvim-lua"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
url = "https://github.com/hrsh7th/cmp-nvim-lua"
},
["cmp-path"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
cmp_luasnip = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
harpoon = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/harpoon",
url = "https://github.com/theprimeagen/harpoon"
},
["lsp-zero.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["packer.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
playground = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/playground",
url = "https://github.com/nvim-treesitter/playground"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
undotree = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/undotree",
url = "https://github.com/mbbill/undotree"
},
["vim-airline"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/vim-airline",
url = "https://github.com/vim-airline/vim-airline"
},
["vim-fugitive"] = {
loaded = true,
path = "/home/adam/.local/share/nvim/site/pack/packer/start/vim-fugitive",
url = "https://github.com/tpope/vim-fugitive"
}
}
time([[Defining packer_plugins]], false)
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

44
.config/picom.conf Normal file
View file

@ -0,0 +1,44 @@
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;
};
};

47
.config/shell/aliasrc Normal file
View file

@ -0,0 +1,47 @@
#!/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'" \

19
.config/shell/inputrc Normal file
View file

@ -0,0 +1,19 @@
$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

118
.config/shell/profile Normal file
View file

@ -0,0 +1,118 @@
#!/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 &

6
.config/shell/shortcutrc Normal file
View file

@ -0,0 +1,6 @@
# vim: filetype=sh
cf="~/.config && v" \
cfv="~/.config/nvim && v" \
cfa="~/.config/awesome && v" \
cfs="~/.config/shell && v" \
cfl="~/.config/lf && v" \

8
.config/x11/xinitrc Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" ]; then
. "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile"
else
. "$HOME/.xprofile"
fi
wal -R
ssh-agent awesome

14
.config/x11/xprofile Executable file
View file

@ -0,0 +1,14 @@
#!/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 &

74
.config/zsh/.zshrc Normal file
View file

@ -0,0 +1,74 @@
#!/bin/zsh
if test -d ~/.oh-my-zsh; then
ZSH=~/.oh-my-zsh/
else
ZSH=/usr/share/oh-my-zsh
fi
ZSH_THEME="pygmalion-virtualenv"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
DISABLE_UNTRACKED_FILES_DIRTY="true"
plugins=(git vi-mode virtualenv python)
# vi-mode
VI_MODE_RESET_PROMPT_ON_MODE_CHANGE=true
VI_MODE_SET_CURSOR=true
# 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:" \
vs="source bin/activate" \
vd="deactivate" \
# 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
fi
source $ZSH/oh-my-zsh.sh

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule ".config/awesome/awesome-wm-widgets"]
path = .config/awesome/awesome-wm-widgets
url = git@github.com:streetturtle/awesome-wm-widgets.git

View file

@ -0,0 +1,40 @@
#!/bin/bash
# Install all (most) dependencies
# This also serves as a list of dependencies
yay -S --needed --noconfirm \
\
`# Standard`\
awesome \
btop \
kitty \
neovim \
firefox-developer-edition \
python-pywal \
playerctl \
pamixer \
byobu \
zsh \
xorg-xmodmap \
picom \
unclutter \
redshift \
xclip \
polkit-gnome \
arc-icon-theme \
acpi \
nitrogen \
spotify-launcher \
xorg-server \
xorg-xinit \
xorg-xset \
\
`# Aur`\
python-pywalfox \
pywal-discord-git \
wal-telegram-git \
lf-git \
ctpv-git \
nvim-packer-git \
oh-my-zsh-git

24
.scripts/doors/install_min_arch Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash
# Yay
git clone https://aur.archlinux.org/yay.git &&
cd yay && makepkg -si --noconfirm && rm -rf yay &&
# Base/Shell
yay -S --needed --noconfirm \
\
`# Standard`\
rsync \
btop \
neovim \
byobu \
zsh \
nnn \
\
`# Aur`\
nvim-packer-git \
oh-my-zsh-git
rsync -avzP --copy-links Doors/ ./
rm -rf Doors;
sudo chsh -s /bin/zsh $USER;

View file

@ -0,0 +1,11 @@
#!/bin/bash
# Base
sudo apt-get install git rsync btop neovim byobu zsh nnn
# Packer
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
# OhMyZsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

27
.scripts/doors/setup Executable file
View file

@ -0,0 +1,27 @@
#!/bin/bash
echo "
=======================================================
Installing D's nux (you're gonna love my nux(really))
=======================================================
"
. /etc/os-release
OS=$NAME
if [[ $OS == *Arch* ]]; then
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 &&
rsync -avzP --copy-links Doors/ ./
.scripts/doors/install_min_arch
elif [[ $OS == *buntu* ]]; then
.scripts/doors/install_min_ubuntu
fi
echo "
========================
logout and log back in
========================
plz
";

2
.scripts/doors/swal Executable file
View file

@ -0,0 +1,2 @@
cp $(awk {print} ~/.cache/wal/wal) ~/projects/doordesk/doordesk/public/bg.png
cp ~/.cache/wal/colors.css ~projects/doordesk/doordesk/public/colors.css

11
.scripts/doors/wal Executable file
View file

@ -0,0 +1,11 @@
#! /bin/bash
wal -i ~/Pictures/Wallpapers;
cp $(awk {print} ~/.cache/wal/wal) ~/.cache/wal/bg;
pywalfox update;
pywal-discord;
beautifuldiscord --css ~/.config/BetterDiscord/themes;
wal-telegram -g;
echo 'awesome.restart()' | awesome-client;

15
.xinitrc Normal file
View file

@ -0,0 +1,15 @@
#!/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

118
.zprofile Normal file
View file

@ -0,0 +1,118 @@
#!/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 &

34
readme.md Normal file
View file

@ -0,0 +1,34 @@
# 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.
It's a bootstrap script for my personal desktop environment
Use as much or as little as you need.
## Install
You should have an [Arch](https://archlinux.org) system, you can run this immediately after a minimal `archinstall` setup:
### Quick shell:
As your new user in your new user's home directory run: (will overwrite some user files)
1. ```curl -s https://doordesk.net/setup | bash```
2. Log out and log back in
Minimum install is the default, if you want a graphical environment run:
`.scripts/installdeps_full`
to get the rest and then:
```startx``` to load it.
## Post Install
1. Neovim will be confused on first start until `:PackerSync` is run
### TODO:
- support more distros
- handle errors
- make sure full install actually has all deps handled