This commit is contained in:
Clay Gomera 2022-04-18 17:29:56 -04:00
parent 9bd76de097
commit bf8a168273
29 changed files with 53326 additions and 889 deletions

6
.bash_profile Normal file
View file

@ -0,0 +1,6 @@
### STARTING XSESSION
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]
then
startx
fi
source $HOME/.bashrc

54
.bashrc
View file

@ -8,12 +8,18 @@
### EXPORT
export TERM="xterm-256color" # getting proper colors
export HISTCONTROL=ignoredups:erasedups # no duplicate entries
export EDITOR="emacsclient -t -a ''" # $EDITOR use Emacs in terminal
export VISUAL="emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mode
export EDITOR="nvim" # $EDITOR use neovim
export READER="zathura"
export TERMINAL="alacritty"
export BROWSER="qutebrowser"
export WM="dwm"
export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}
export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"}
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
### SET MANPAGER
### "bat" as manpager
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# Use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \
. /usr/share/bash-completion/bash_completion
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
@ -86,7 +92,6 @@ ex ()
fi
}
### ALIASES
# navigation
up () {
@ -107,6 +112,7 @@ up () {
echo "Couldn't go up $limit dirs.";
fi
}
alias ..='cd ..'
alias .2='cd ../..'
alias .3='cd ../../..'
@ -118,13 +124,6 @@ alias cat='bat'
# editors
alias vim='nvim'
alias em='/usr/bin/emacs -nw'
alias emacs='emacsclient -c -a emacs'
alias doomsync='~/.emacs.d/bin/doom sync'
alias doomdoctor='~/.emacs.d/bin/doom doctor'
alias doomupgrade='~/.emacs.d/bin/doom upgrade'
alias doompurge='~/.emacs.d/bin/doom purge'
alias doominstall='~/.emacs.d/bin/doom install'
# Changing "ls" to "exa"
alias ls='exa -al --color=always --group-directories-first' # my preferred listing
@ -134,12 +133,12 @@ alias lt='exa -aT --color=always --group-directories-first' # tree listing
alias l.='exa -a | egrep "^\."'
# xbps
alias xb-up='sudo xbps-install -Su && xcheckrestart' # update the whole system
alias xb-get='sudo xbps-install -S' # install a program
alias xb-qry='sudo xbps-query' # query details about a program
alias xb-rmv='sudo xbps-remove -R' # remove a package with all its dependencies (it may brake something)
alias xb-rmv-sec='sudo xbps-remove' # remove a package with all its dependencies (secure way)
alias xb-cln='sudo xbps-remove -o && sudo xbps-remove -O' # remove unnecesary packages and clean cache
alias xb-up='sudo xbps-install -Su && xcheckrestart' # Refresh pkglist & update standard pkgs
alias xb-get='sudo xbps-install -S' # Install a package
alias xb-rmv='sudo xbps-remove -R' # Remove a package with all its dependencies
alias xb-rmv-sec='sudo xbps-remove' # Remove a package with all its dependencies (secure way)
alias xb-qry='sudo xbps-query' # Repo query
alias xb-cln='sudo xbps-remove -o && sudo xbps-remove -O' # remove orphaned packages
# Colorize grep output (good for log files)
alias grep='grep --color=auto'
@ -166,8 +165,9 @@ alias tag='git tag'
alias newtag='git tag -a'
# adding flags
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias newsboat='newsboat -u ~/.config/newsboat/urls' # start newsboat with my urls file
# ani-cli
alias ani='ani-cli'
@ -175,6 +175,7 @@ alias ani-q='ani-cli -q' # to select video quality
# ytfzf
alias yt='ytfzf -f -t'
alias yt-m='ytfzf -m'
# notflix
alias nt='notflix'
@ -199,11 +200,6 @@ alias rb='loginctl reboot'
alias fm='./.config/vifm/scripts/vifmrun'
alias vifm='./.config/vifm/scripts/vifmrun'
# system monitor
alias tp='btop'
alias top='btop'
alias htop='btop'
# ps
alias psa="ps auxf"
alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e"
@ -233,11 +229,5 @@ alias wfi-on='nmcli radio wifi on'
alias wfi-off='nmcli radio wifi off'
alias blt='bluetoothctl'
# the terminal rickroll
alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash'
# Deploy script
alias deploynow='sh $HOME/.config/scripts/deploy.sh'
### SETTING THE STARSHIP PROMPT ###
eval "$(starship init bash)"

21
.config/alacritty/alacritty.yml Executable file → Normal file
View file

@ -358,7 +358,7 @@ env:
## Window settigns
window:
opacity: 0.93
opacity: 0.70
padding:
x: 6
y: 6
@ -392,28 +392,11 @@ font:
y: 1
draw_bold_text_with_bright_colors: true
######################################################################
## SET THEME: Choose ONE color scheme from those in the above list. ##
## ###################################################################
# Available themes are:
# *doom-one
# *dracula
# *gruvbox-dark
# *monokai-pro
# *nord
# *oceanic-next
# *palenight
# *solarized-light
# *solarized-dark
# *tomorrow-night
cursor:
style: Underline
shell:
program: /bin/zsh
program: /bin/bash
key_bindings:
# (Windows, Linux, and BSD only)

View file

@ -1,575 +0,0 @@
#+TITLE: Drake's Awesome Window Manager Config
#+AUTHOR: Clay Gomera
#+DESCRIPTION: This is my personal awesome window manager literate config written in org mode inside Emacs.
#+LANGUAGE: lua
#+PROPERTY: header-args :tangle rc.lua
* Table of contents :toc:
- [[#about][About]]
- [[#libraries][Libraries]]
- [[#error-handling][Error handling]]
- [[#themes][Themes]]
- [[#layouts][Layouts]]
- [[#variables][Variables]]
- [[#tag-names][Tag names]]
- [[#wibox-settings][Wibox settings]]
- [[#key-bindings][Key bindings]]
- [[#rules][Rules]]
- [[#signals][Signals]]
- [[#client-focus-with-mouse][Client focus with mouse]]
- [[#autorun][Autorun]]
* About
Awesome is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. It is primarily targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on their graphical environment. This is the Awesome configuration of Clay Gomera (Drake) fully written in ORG mode inside EMACS. This is just a personal hobby that gives me all the freedom and posibilites to learn how to code and use text editors like Emacs.
#+CAPTION: An example screenshot
#+NAME: screenshot
#+attr_org: :width 750
[[./screenshot.png]]
* Libraries
Here you can add/remove libraries.
#+BEGIN_SRC lua
local awful = require("awful") --Everything related to window managment
local beautiful = require("beautiful")
local gears = require("gears") --Utilities such as color parsing and objects
local lain = require("lain")
local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
local hotkeys_popup = require("awful.hotkeys_popup").widget
require("awful.hotkeys_popup.keys")
require("awful.autofocus")
local wibox = require("wibox")
local naughty = require("naughty")
naughty.config.defaults['icon_size'] = 100
#+END_SRC
* Error handling
Basic error handling.
#+BEGIN_SRC lua
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors }) end
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
local function run_once(cmd_arr)
for _, cmd in ipairs(cmd_arr) do
awful.spawn.with_shell(string.format("pgrep -u $USER -fx '%s' > /dev/null || (%s)", cmd, cmd))
end
end
run_once({ "unclutter -root" }) -- entries must be comma-separated
#+END_SRC
* Themes
Here you can set your themes.
#+BEGIN_SRC lua
local themes = {
"gruvbox-dark" -- 1
}
local chosen_theme = themes[1]
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme)
beautiful.init(theme_path)
beautiful.init(string.format(gears.filesystem.get_configuration_dir() .. "/themes/%s/theme.lua", chosen_theme))
#+END_SRC
* Layouts
Window manager layouts, i just use the very basic ones.
#+BEGIN_SRC lua
awful.layout.suit.tile.left.mirror = true
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
--awful.layout.suit.fair,
--awful.layout.suit.fair.horizontal,
--awful.layout.suit.spiral,
--awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
--awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.floating,
--awful.layout.suit.corner.nw,
--awful.layout.suit.corner.ne,
--awful.layout.suit.corner.sw,
--awful.layout.suit.corner.se,
--lain.layout.cascade,
--lain.layout.cascade.tile,
--lain.layout.centerwork,
--lain.layout.centerwork.horizontal,
--lain.layout.termfair,
--lain.layout.termfair.center,
}
lain.layout.termfair.nmaster = 3
lain.layout.termfair.ncol = 1
lain.layout.termfair.center.nmaster = 3
lain.layout.termfair.center.ncol = 1
lain.layout.cascade.tile.offset_x = 2
lain.layout.cascade.tile.offset_y = 32
lain.layout.cascade.tile.extra_padding = 5
lain.layout.cascade.tile.nmaster = 5
lain.layout.cascade.tile.ncol = 2
#+END_SRC
* Variables
In this section you can customize your default apps and modkeys.
#+BEGIN_SRC lua
awful.util.terminal = terminal -- do not remove/edit this
local terminal = "alacritty"
edit = "emacsclient -c -a emacs"
file = "alacritty -e ./.config/vifm/scripts/vifmrun"
web = "qutebrowser"
music = "alacritty -e mocp"
games = "retroarch"
screenlocker = "betterlockscreen -l"
local modkey = "Mod4"
local altkey = "Mod1"
local modkey1 = "Control"
#+END_SRC
* Tag names
Here you can change the tag names. It is possible to modify tags on the fly with some bindings, but i don't do it very often, so this is for me my perfect setup. Each tag is set to an specific key to open it's specific app. In this case i have set F1-F7 as my launch keys.
#+BEGIN_SRC lua
awful.util.tagnames =
{
" EDIT ", -- F1
" FILE ", -- F2
" WEB ", -- F3
" MUSIC ", -- F4
" WORK ", -- XX
" MISC ", -- XX
" GAMES " -- F7
}
#+END_SRC
* Wibox settings
Some wibox and wallpaper setting stuff.
#+BEGIN_SRC lua
awful.util.taglist_buttons = my_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)
)
awful.util.tasklist_buttons = my_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 ()
local instance = nil
return function ()
if instance and instance.wibox.visible then
instance:hide()
instance = nil
else
instance = awful.menu.clients({theme = {width = 250}})
end
end
end),
awful.button({ }, 4, function () awful.client.focus.byidx(1) end),
awful.button({ }, 5, function () awful.client.focus.byidx(-1) end)
)
screen.connect_signal("property::geometry", function(s)
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end)
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
#+END_SRC
* Key bindings
This is the most important part of the config, and the most interesting one. As i said, each tag is meant to be used with an specific app, so here's how i did it:
|-----------+---------+-----+--------------+-------------------------------------------------|
| Tagnumber | Tagname | Key | Type | App |
|-----------+---------+-----+--------------+-------------------------------------------------|
| 1 | EDIT | F1 | Text editor | Super + F1 = Emacs |
| 2 | FILE | F2 | File manager | Super + F2 = vifm |
| 3 | WEB | F3 | Web browser | Super + F3 = qutebrowser |
| 4 | MUSIC | F4 | Music player | Super + F4 = moc |
| 5 | WORK | XX | Can variate | Super + d = open dmenu |
| 6 | MISC | XX | Can variate | Super + d = open dmenu |
| 7 | GAMES | F7 | Games | Super + F7 = retroarch |
|-----------+---------+-----+--------------+-------------------------------------------------|
| X | XXXXXXX | XX | Tag agnostic | Super + r = dmenu run prompt |
| X | XXXXXXX | XX | Tag agnostic | Super + d = dmenu drun prompt |
| X | XXXXXXX | XX | Tag agnostic | Super + w = dmenu wifi script |
| X | XXXXXXX | XX | Tag agnostic | Super + Control + w = dmenu wallpaper script |
| X | XXXXXXX | XX | Tag agnostic | Super + Control + q = dmenu power menu script |
|-----------+---------+-----+--------------+-------------------------------------------------|
#+BEGIN_SRC lua
-- Awesome things
globalkeys = my_table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="Show this help menu", group="Quick Actions"}),
awful.key({ modkey, "Control" }, "r", awesome.restart,
{description = "Reload WM", group = "Quick Actions"}),
awful.key({ modkey, "Shift" }, "q", awesome.quit,
{description = "Log Out", group = "Quick Actions"}),
-- Tag browsing arrow keys and escape
awful.key({ modkey, }, "Left", awful.tag.viewprev,
{description = "view previous", group = "Tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "Tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "Tag"}),
-- Tag browsing alt + tab
awful.key({ altkey, }, "Tab", awful.tag.viewnext,
{description = "view next", group = "Tag"}),
awful.key({ altkey, "Shift" }, "Tab", awful.tag.viewprev,
{description = "view previous", group = "Tag"}),
-- Copy primary to clipboard (terminals to gtk)
awful.key({ modkey }, "c", function () awful.spawn.with_shell("xsel | xsel -i -b") end,
{description = "Copy terminal to gtk", group = "Hotkeys"}),
-- Copy clipboard to primary (gtk to terminals)
awful.key({ modkey }, "v", function () awful.spawn.with_shell("xsel -b | xsel") end,
{description = "Copy gtk to terminal", group = "Hotkeys"}),
-- Client focus
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"}),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
{description = "Swap with next client by index", group = "Client"}),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
{description = "Swap with previous client by index", group = "Client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
{description = "Focus the next screen", group = "Screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "Focus the previous screen", group = "Screen"}),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
{description = "Jump to urgent client", group = "Cient"}),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = "Go back", group = "client"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "Increase master width factor", group = "Layout"}),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
{description = "Decrease master width factor", group = "Layout"}),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
{description = "Increase the number of master clients", group = "Layout"}),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
{description = "Decrease the number of master clients", group = "Layout"}),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
{description = "Increase the number of columns", group = "Layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "Decrease the number of columns", group = "Layout"}),
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"}),
-- Terminal
awful.key({ modkey }, "Return", function() awful.spawn(terminal) end,
{description = "Launch a terminal", group = "Hotkeys"}),
-- Dmenu
awful.key({ modkey }, "r", function () awful.util.spawn_with_shell("dmenu_run -l 10 -b -i -p Launch:") end,
{description = "Show Run Launcher", group = "Hotkeys"}),
awful.key({ modkey }, "d", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-drun.sh") end,
{description = "Show App Launcher", group = "Hotkeys"}),
awful.key({ modkey }, "w", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-wifi.sh") end,
{description = "Configure WiFi", group = "Hotkeys"}),
awful.key({ modkey, modkey1 }, "q", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-power.sh") end,
{description = "Show Logout menu", group = "Hotkeys"}),
awful.key({ modkey, modkey1 }, "w", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-wall.sh") end,
{description = "Show Logout menu", group = "Hotkeys"}),
awful.key({}, "Print", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-scrot.sh") end,
{description = "Take screenshots", group = "Hotkeys"}),
-- Keyboard Layouts
awful.key({ modkey, "Shift" }, "e", function () awful.util.spawn("setxkbmap -layout es") end,
{description = "Switch to ES keyboard layout", group = "Quick Actions"}),
awful.key({ modkey, "Shift" }, "u", function () awful.util.spawn("setxkbmap -layout us") end,
{description = "Switch to US keyboard layout", group = "Quick Actions"}),
-- Apps
-- edit
awful.key({ modkey }, "F1", function () awful.spawn(edit) end,
{description = "Launch text editor", group = "Apps"}),
-- file
awful.key({ modkey }, "F2", function () awful.spawn(file) end,
{description = "Launch file manager", group = "Apps"}),
-- web
awful.key({ modkey }, "F3", function () awful.spawn(web) end,
{description = "Launch web browser", group = "Apps"}),
-- music
awful.key({ modkey }, "F4", function () awful.spawn(music) end,
{description = "Launch music player", group = "Apps"}),
-- games
awful.key({ modkey }, "F7", function () awful.util.spawn(games) end,
{description = "Launch gaming app", group = "Apps"}),
-- Volume
awful.key({}, "XF86AudioRaiseVolume", function() awful.spawn("amixer set Master 5%+") end,
{description = "Increase volume", group = "Quick Actions"}),
awful.key({}, "XF86AudioLowerVolume", function() awful.spawn("amixer set Master 5%-") end,
{description = "Decrease volume", group = "Quick Actions"}),
awful.key({}, "XF86AudioMute", function() awful.spawn("amixer set Master toggle") end,
{description = "Mute volume", group = "Quick Actions"}),
-- Brightness
awful.key({}, "XF86MonBrightnessUp", function () awful.spawn("xbacklight -inc 10") end,
{description = "Increase brightness", group = "Quick Actions"}),
awful.key({}, "XF86MonBrightnessDown", function () awful.spawn("xbacklight -dec 10") end,
{description = "Decrease brightness", group = "Quick Actions"}),
-- Screenlocker
awful.key({ modkey, modkey1 }, "l", function() awful.spawn(screenlocker) end,
{description = "Lock the screen", group = "Quick Actions"}),
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
for s in screen do
s.mywibox.visible = not s.mywibox.visible
if s.mybottomwibox then
s.mybottomwibox.visible = not s.mybottomwibox.visible
end
end
end,
{description = "Toggle wibox", group = "Quick Actions"}),
-- On the fly useless gaps change
awful.key({ altkey, "Control" }, "j", function () lain.util.useless_gaps_resize(1) end,
{description = "Increment gaps", group = "Tag"}),
awful.key({ altkey, "Control" }, "l", function () lain.util.useless_gaps_resize(-1) end,
{description = "Decrement gaps", group = "Tag"}),
-- Dynamic tagging
awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag() end,
{description = "Add new tag", group = "Tag"}),
awful.key({ modkey, "Control" }, "r", function () lain.util.rename_tag() end,
{description = "Rename tag", group = "Tag"}),
awful.key({ modkey, "Shift" }, "Left", function () lain.util.move_tag(-1) end,
{description = "Move tag to the left", group = "Tag"}),
awful.key({ modkey, "Shift" }, "Right", function () lain.util.move_tag(1) end,
{description = "Move tag to the right", group = "Tag"}),
awful.key({ modkey, "Shift" }, "d", function () lain.util.delete_tag() end,
{description = "Delete tag", group = "Tag"}),
-- Minimize, maximize, moving clients, fullscreen, etc
awful.key({ modkey, "Control" }, "n",
function ()
local c = awful.client.restore()
if c then
client.focus = c
c:raise()
end
end,
{description = "Restore minimized", group = "Client"})
)
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 window", 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, }, "o", function (c) c:move_to_screen() end,
{description = "Move to screen", group = "Client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "Toggle keep on top", group = "Client"}),
awful.key({ modkey, }, "n",
function (c)
c.minimized = true
end ,
{description = "Minimize", group = "Client"}),
awful.key({ modkey, }, "m",
function (c)
c.maximized = not c.maximized
c:raise()
end ,
{description = "(Un)maximize", group = "Client"}),
awful.key({ modkey, "Control" }, "m",
function (c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end ,
{description = "(Un)maximize vertically", group = "Client"}),
awful.key({ modkey, "Shift" }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end ,
{description = "(Un)maximize horizontally", group = "Client"})
)
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
-- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
local descr_view, descr_toggle, descr_move, descr_toggle_focus
if i == 1 or i == 9 then
descr_view = {description = "Wiew tag #", group = "Tag"}
descr_toggle = {description = "Toggle tag #", group = "Tag"}
descr_move = {description = "Move focused client to tag #", group = "Tag"}
descr_toggle_focus = {description = "Toggle focused client on tag #", group = "Tag"}
end
globalkeys = my_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,
descr_view),
-- 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,
descr_toggle),
-- 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,
descr_move),
-- 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,
descr_toggle_focus)
)
end
-- Mouse bindings
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)
)
root.keys(globalkeys)
#+END_SRC
* Rules
In this section you can modify how the clients will behave, using rules.
#+BEGIN_SRC lua
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,
callback = awful.client.setslave
}
},
-- 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 }},
}
#+END_SRC
* Signals
Mainly this in this section i managed to keep focus on the master client when opening more clients.
#+BEGIN_SRC lua
client.connect_signal("manage", function (c)
if awesome.startup and
not c.size_hints.user_position
and not c.size_hints.program_position then
awful.placement.no_offscreen(c)
end
end)
#+END_SRC
* Client focus with mouse
Here are the options for mouse client focusing.
#+BEGIN_SRC lua
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)
#+END_SRC
* Autorun
Apps that automatically runs when you log in.
#+BEGIN_SRC lua
awful.util.spawn_with_shell("sh $HOME/.fehbg &")
awful.util.spawn_with_shell("lxpolkit &")
awful.util.spawn_with_shell("/usr/bin/emacs --daemon &")
awful.util.spawn_with_shell("pulseaudio --daemonize=no --exit-idle-time=-1 &")
awful.util.spawn_with_shell("picom --config $HOME/.config/picom/picom.conf &")
#+END_SRC

View file

@ -1,3 +1,11 @@
-- ____ __
-- / __ \_________ _/ /_____
-- / / / / ___/ __ `/ //_/ _ \
-- / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
-- /_____/_/ \__,_/_/|_|\___/ My custom awesome window manager config
--
--[[ LIBRARIES ]]--
local awful = require("awful") --Everything related to window managment
local beautiful = require("beautiful")
local gears = require("gears") --Utilities such as color parsing and objects
@ -10,6 +18,7 @@ local wibox = require("wibox")
local naughty = require("naughty")
naughty.config.defaults['icon_size'] = 100
--[[ ERROR HANDLING ]]--
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
@ -33,6 +42,7 @@ local function run_once(cmd_arr)
end
run_once({ "unclutter -root" }) -- entries must be comma-separated
--[[ THEMES ]]--
local themes = {
"gruvbox-dark" -- 1
}
@ -41,6 +51,7 @@ local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.ge
beautiful.init(theme_path)
beautiful.init(string.format(gears.filesystem.get_configuration_dir() .. "/themes/%s/theme.lua", chosen_theme))
--[[ LAYOUTS ]]--
awful.layout.suit.tile.left.mirror = true
awful.layout.layouts = {
awful.layout.suit.tile,
@ -76,29 +87,34 @@ lain.layout.cascade.tile.extra_padding = 5
lain.layout.cascade.tile.nmaster = 5
lain.layout.cascade.tile.ncol = 2
--[[ VARIABLES ]]--
awful.util.terminal = terminal -- do not remove/edit this
local terminal = "alacritty"
edit = "emacsclient -c -a emacs"
edit = "alacritty -e nvim"
file = "alacritty -e ./.config/vifm/scripts/vifmrun"
web = "qutebrowser"
music = "alacritty -e mocp"
chat = "alacritty -e gomuks"
music = "alacritty -e cmus"
games = "retroarch"
screenlocker = "betterlockscreen -l"
local modkey = "Mod4"
local altkey = "Mod1"
local modkey1 = "Control"
--[[ TAG NAMES ]]--
awful.util.tagnames =
{
" EDIT ", -- F1
" FILE ", -- F2
" WEB ", -- F3
" MUSIC ", -- F4
" CHAT ", -- F4
" MUSIC ", -- F5
" WORK ", -- XX
" MISC ", -- XX
" GAMES " -- F7
" GAMES " -- F8
}
--[[ WIBOX & MISC STUFF ]]--
awful.util.taglist_buttons = my_table.join(
awful.button({ }, 1, function(t) t:view_only() end),
awful.button({ modkey }, 1, function(t)
@ -149,6 +165,7 @@ screen.connect_signal("property::geometry", function(s)
end)
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
--[[ KEY BINDINGS ]]--
-- Awesome things
globalkeys = my_table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
@ -221,15 +238,15 @@ globalkeys = my_table.join(
-- Dmenu
awful.key({ modkey }, "r", function () awful.util.spawn_with_shell("dmenu_run -l 10 -b -i -p Launch:") end,
{description = "Show Run Launcher", group = "Hotkeys"}),
awful.key({ modkey }, "d", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-drun.sh") end,
awful.key({ modkey }, "d", function () awful.util.spawn_with_shell("$HOME/.local/bin/dmenu_drun") end,
{description = "Show App Launcher", group = "Hotkeys"}),
awful.key({ modkey }, "w", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-wifi.sh") end,
awful.key({ modkey }, "w", function () awful.util.spawn_with_shell("$HOME/.local/bin/dmenu_wifi") end,
{description = "Configure WiFi", group = "Hotkeys"}),
awful.key({ modkey, modkey1 }, "q", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-power.sh") end,
awful.key({ modkey, modkey1 }, "q", function () awful.util.spawn_with_shell("$HOME/.local/bin/dmenu_power") end,
{description = "Show Logout menu", group = "Hotkeys"}),
awful.key({ modkey, modkey1 }, "w", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-wall.sh") end,
awful.key({ modkey, modkey1 }, "w", function () awful.util.spawn_with_shell("$HOME/.local/bin/dmenu_wall") end,
{description = "Show Logout menu", group = "Hotkeys"}),
awful.key({}, "Print", function () awful.util.spawn_with_shell("sh $HOME/.config/scripts/dmenu-scrot.sh") end,
awful.key({}, "Print", function () awful.util.spawn_with_shell("$HOME/.local/bin/dmenu_scrot") end,
{description = "Take screenshots", group = "Hotkeys"}),
-- Keyboard Layouts
awful.key({ modkey, "Shift" }, "e", function () awful.util.spawn("setxkbmap -layout es") end,
@ -246,11 +263,14 @@ globalkeys = my_table.join(
-- web
awful.key({ modkey }, "F3", function () awful.spawn(web) end,
{description = "Launch web browser", group = "Apps"}),
-- chat
awful.key({ modkey }, "F4", function () awful.spawn(chat) end,
{description = "Launch matrix client (chat)", group = "Apps"}),
-- music
awful.key({ modkey }, "F4", function () awful.spawn(music) end,
awful.key({ modkey }, "F5", function () awful.spawn(music) end,
{description = "Launch music player", group = "Apps"}),
-- games
awful.key({ modkey }, "F7", function () awful.util.spawn(games) end,
awful.key({ modkey }, "F8", function () awful.util.spawn(games) end,
{description = "Launch gaming app", group = "Apps"}),
-- Volume
awful.key({}, "XF86AudioRaiseVolume", function() awful.spawn("amixer set Master 5%+") end,
@ -414,6 +434,7 @@ clientbuttons = gears.table.join(
)
root.keys(globalkeys)
--[[ RULES ]]--
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
@ -459,6 +480,7 @@ awful.rules.rules = {
}, properties = { floating = true }},
}
--[[ SIGNALS ]]--
client.connect_signal("manage", function (c)
if awesome.startup and
not c.size_hints.user_position
@ -467,14 +489,15 @@ client.connect_signal("manage", function (c)
end
end)
-- [[ MOUSE FOCUS ]]--
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)
--[[ AUTOSTART ]]--
awful.util.spawn_with_shell("sh $HOME/.fehbg &")
awful.util.spawn_with_shell("lxpolkit &")
awful.util.spawn_with_shell("/usr/bin/emacs --daemon &")
awful.util.spawn_with_shell("pulseaudio --daemonize=no --exit-idle-time=-1 &")
awful.util.spawn_with_shell("picom --config $HOME/.config/picom/picom.conf &")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

View file

@ -1,8 +1,8 @@
-- ____ ____ _ __
-- | _ \| _ \| |/ /
-- | | | | |_) | ' / Clay Gomera (Drake)
-- | |_| | _ <| . \ My custom awesomewm gruvbox-dark theme.
-- |____/|_| \_\_|\_\
-- ____ __
-- / __ \_________ _/ /_____
-- / / / / ___/ __ `/ //_/ _ \
-- / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
-- /_____/_/ \__,_/_/|_|\___/ My custom awesome window manager gruvbox theme
--
local gears = require("gears")

View file

@ -436,7 +436,7 @@ List of keybindings (SPC h b b)")
:desc "Increment register" "+" #'increment-register
:desc "Point to register" "SPC" #'point-to-register))
(setq shell-file-name "/bin/zsh"
(setq shell-file-name "/bin/bash"
vterm-max-scrollback 5000)
(setq eshell-rc-script "~/.config/doom/eshell/profile"
eshell-aliases-file "~/.config/doom/eshell/aliases"

View file

@ -883,7 +883,7 @@ Settings for the various shells and terminal emulators within Emacs.
+ 'eshell-aliases-file' -- sets an aliases file for the eshell.
#+BEGIN_SRC emacs-lisp
(setq shell-file-name "/bin/zsh"
(setq shell-file-name "/bin/bash"
vterm-max-scrollback 5000)
(setq eshell-rc-script "~/.config/doom/eshell/profile"
eshell-aliases-file "~/.config/doom/eshell/aliases"

BIN
.config/dunst/critical.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

358
.config/dunst/dunstrc Normal file
View file

@ -0,0 +1,358 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 30
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#689d6a"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = auto
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = mononoki Nerd Font 10
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/qutebrowser
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 5
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines action of mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: If the notification has exactly one action, or one is marked as default,
# invoke it. If there are multiple and no default, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
mouse_left_click = do_action
mouse_middle_click = close_all
mouse_right_click = close_current
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#282828"
foreground = "#ebdbd2"
timeout = 5
# Icon for notifications with low urgency, uncomment to enable
icon = /home/drk/.config/dunst/normal.png
[urgency_normal]
background = "#282828"
foreground = "#ebdbd2"
timeout = 5
# Icon for notifications with normal urgency, uncomment to enable
icon = /home/drk/.config/dunst/normal.png
[urgency_critical]
background = "#900000"
foreground = "#ebdbd2"
frame_color = "#ff0000"
timeout = 5
# Icon for notifications with critical urgency, uncomment to enable
icon = /home/drk/.config/dunst/critical.png
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# timeout
# urgency
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

BIN
.config/dunst/normal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

238
.config/fish/config.fish Normal file
View file

@ -0,0 +1,238 @@
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom fish config
##
if status is-interactive
# Commands to run in interactive sessions can go here
end
### EXPORT
set -U fish_greeting ""
set EDITOR "nvim" # $EDITOR use neovim
set READER "zathura"
set TERMINAL "alacritty"
set BROWSER "qutebrowser"
set WM "dwm"
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
### ADDING TO THE PATH
# First line removes the path; second line sets it. Without the first line,
# your path gets massive and fish becomes very slow.
set -e fish_user_paths
set -U fish_user_paths $HOME/.local/bin $HOME/Applications $fish_user_paths
# Vi mode
function fish_user_key_bindings
# fish_default_key_bindings
fish_vi_key_bindings
end
### AUTOCOMPLETE AND HIGHLIGHT COLORS ###
set fish_color_normal brcyan
set fish_color_autosuggestion '#7d7d7d'
set fish_color_command brcyan
set fish_color_error '#ff6c6b'
set fish_color_param brcyan
### FUNCTIONS
# Functions needed for !! and !$
function __history_previous_command
switch (commandline -t)
case "!"
commandline -t $history[1]; commandline -f repaint
case "*"
commandline -i !
end
end
function __history_previous_command_arguments
switch (commandline -t)
case "!"
commandline -t ""
commandline -f history-token-search-backward
case "*"
commandline -i '$'
end
end
# The bindings for !! and !$
if [ $fish_key_bindings = "fish_vi_key_bindings" ];
bind -Minsert ! __history_previous_command
bind -Minsert '$' __history_previous_command_arguments
else
bind ! __history_previous_command
bind '$' __history_previous_command_arguments
end
# Function for creating a backup file
# ex: backup file.txt
# result: copies file as file.txt.bak
function backup --argument filename
cp $filename $filename.bak
end
# Function for copying files and directories, even recursively.
# ex: copy DIRNAME LOCATIONS
# result: copies the directory and all of its contents.
function copy
set count (count $argv | tr -d \n)
if test "$count" = 2; and test -d "$argv[1]"
set from (echo $argv[1] | trim-right /)
set to (echo $argv[2])
command cp -r $from $to
else
command cp $argv
end
end
# Function for printing a column (splits input on whitespace)
# ex: echo 1 2 3 | coln 3
# output: 3
function coln
while read -l input
echo $input | awk '{print $'$argv[1]'}'
end
end
# Function for printing a row
# ex: seq 3 | rown 3
# output: 3
function rown --argument index
sed -n "$index p"
end
# Function for ignoring the first 'n' lines
# ex: seq 10 | skip 5
# results: prints everything but the first 5 lines
function skip --argument n
tail +(math 1 + $n)
end
# Function for taking the first 'n' lines
# ex: seq 10 | take 5
# results: prints only the first 5 lines
function take --argument number
head -$number
end
### ALIASES
# navigation
alias ..='cd ..'
alias .2='cd ../..'
alias .3='cd ../../..'
alias .4='cd ../../../..'
alias .5='cd ../../../../..'
# bat as cat
alias cat='bat'
# editors
alias vim='nvim'
# Changing "ls" to "exa"
alias ls='exa -al --color=always --group-directories-first' # my preferred listing
alias la='exa -a --color=always --group-directories-first' # all files and dirs
alias ll='exa -l --color=always --group-directories-first' # long format
alias lt='exa -aT --color=always --group-directories-first' # tree listing
alias l.='exa -a | egrep "^\."'
# xbps
alias xb-up='sudo xbps-install -Su && xcheckrestart' # Refresh pkglist & update standard pkgs
alias xb-get='sudo xbps-install -S' # Install a package
alias xb-rmv='sudo xbps-remove -R' # Remove a package with all its dependencies
alias xb-rmv-sec='sudo xbps-remove' # Remove a package with all its dependencies (secure way)
alias xb-qry='sudo xbps-query' # Repo query
alias xb-cln='sudo xbps-remove -o && sudo xbps-remove -O' # remove orphaned packages
# Colorize grep output (good for log files)
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
# confirm before overwriting something
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
# git
alias addup='git add -u'
alias addall='git add .'
alias branch='git branch'
alias checkout='git checkout'
alias clone='git clone'
alias commit='git commit -m'
alias fetch='git fetch'
alias pull='git pull origin'
alias push='git push origin'
alias stat='git status' # 'status' is protected name so using 'stat' instead
alias tag='git tag'
alias newtag='git tag -a'
# adding flags
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias newsboat='newsboat -u ~/.config/newsboat/urls' # start newsboat with my urls file
# ani-cli
alias ani='ani-cli'
alias ani-q='ani-cli -q' # to select video quality
# ytfzf
alias yt='ytfzf -f -t'
# notflix
alias nt='notflix'
# mount and unmount drives
alias mnt='sudo mount'
alias umnt='sudo umount'
# mixers
alias mx='pulsemixer'
alias amx='alsamixer'
# music player
alias mk='cmus'
# power management
alias po='loginctl poweroff'
alias sp='loginctl suspend'
alias rb='loginctl reboot'
# file manager
alias fm='./.config/vifm/scripts/vifmrun'
alias vifm='./.config/vifm/scripts/vifmrun'
# ps
alias psa="ps auxf"
alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e"
alias psmem='ps auxf | sort -nr -k 4'
alias pscpu='ps auxf | sort -nr -k 3'
# get error messages from journalctl
alias jctl="journalctl -p 3 -xb"
# youtube-dl
alias yta-aac="youtube-dl --extract-audio --audio-format aac "
alias yta-best="youtube-dl --extract-audio --audio-format best "
alias yta-flac="youtube-dl --extract-audio --audio-format flac "
alias yta-m4a="youtube-dl --extract-audio --audio-format m4a "
alias yta-mp3="youtube-dl --extract-audio --audio-format mp3 "
alias yta-opus="youtube-dl --extract-audio --audio-format opus "
alias yta-vorbis="youtube-dl --extract-audio --audio-format vorbis "
alias yta-wav="youtube-dl --extract-audio --audio-format wav "
alias ytv-best="youtube-dl -f bestvideo+bestaudio "
# Network Manager and bluetooth
alias netstats='nmcli dev'
alias wfi='nmtui-connect'
alias wfi-scan='nmcli dev wifi list'
alias wfi-edit='nmtui-edit'
alias wfi-on='nmcli radio wifi on'
alias wfi-off='nmcli radio wifi off'
alias blt='bluetoothctl'
### SETTING THE STARSHIP PROMPT ###
eval "$(starship init bash)"

View file

@ -0,0 +1,15 @@
[Settings]
gtk-theme-name=gruvbox-dark-gtk
gtk-icon-theme-name=gruvbox-dark-icons-gtk
gtk-font-name=Sans 10
gtk-cursor-theme-name=volantes_cursors
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium

11
.config/newsboat/urls Normal file
View file

@ -0,0 +1,11 @@
https://archlinux.org/feeds/news/ "Reading"
https://www.linux.com/feed/ "Reading"
https://linuxhandbook.com/rss/ "Reading"
https://www.gamingonlinux.com/article_rss.php "Reading"
https://www.omgubuntu.co.uk/feed "Reading"
https://askubuntu.com/feeds "Reading"
https://itsubuntu.com/feed/ "Reading"
https://www.tecmint.com/feed/ "Reading"
https://www.linuxfoundation.org/feed/ "Reading"
https://linuxhint.com/feed/ "Reading"
https://techhut.tv/rss/ "Reading"

151
.config/nvim/init.vim Normal file
View file

@ -0,0 +1,151 @@
let mapleader =","
if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim"'))
echo "Downloading junegunn/vim-plug to manage plugins..."
silent !mkdir -p ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/
silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim
autocmd VimEnter * PlugInstall
endif
call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"'))
Plug 'tpope/vim-surround'
Plug 'preservim/nerdtree'
Plug 'junegunn/goyo.vim'
Plug 'jreybert/vimagit'
Plug 'lukesmithxyz/vimling'
Plug 'vimwiki/vimwiki'
Plug 'vim-airline/vim-airline'
Plug 'tpope/vim-commentary'
Plug 'ap/vim-css-color'
call plug#end()
set title
set bg=light
set go=a
set mouse=a
set nohlsearch
set clipboard+=unnamedplus
set noshowmode
set noruler
set laststatus=0
set noshowcmd
" Some basics:
nnoremap c "_c
set nocompatible
filetype plugin on
syntax on
set encoding=utf-8
set number relativenumber
" Enable autocompletion:
set wildmode=longest,list,full
" Disables automatic commenting on newline:
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
" Perform dot commands over visual blocks:
vnoremap . :normal .<CR>
" Goyo plugin makes text more readable when writing prose:
map <leader>f :Goyo \| set bg=light \| set linebreak<CR>
" Spell-check set to <leader>o, 'o' for 'orthography':
map <leader>o :setlocal spell! spelllang=en_us<CR>
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
set splitbelow splitright
" Nerd tree
map <leader>n :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
if has('nvim')
let NERDTreeBookmarksFile = stdpath('data') . '/NERDTreeBookmarks'
else
let NERDTreeBookmarksFile = '~/.vim' . '/NERDTreeBookmarks'
endif
" vimling:
nm <leader><leader>d :call ToggleDeadKeys()<CR>
imap <leader><leader>d <esc>:call ToggleDeadKeys()<CR>a
nm <leader><leader>i :call ToggleIPA()<CR>
imap <leader><leader>i <esc>:call ToggleIPA()<CR>a
nm <leader><leader>q :call ToggleProse()<CR>
" Shortcutting split navigation, saving a keypress:
map <C-h> <C-w>h
map <C-j> <C-w>j
map <C-k> <C-w>k
map <C-l> <C-w>l
" Replace ex mode with gq
map Q gq
" Check file in shellcheck:
map <leader>s :!clear && shellcheck -x %<CR>
" Open my bibliography file in split
map <leader>b :vsp<space>$BIB<CR>
map <leader>r :vsp<space>$REFER<CR>
" Replace all is aliased to S.
nnoremap S :%s//g<Left><Left>
" Compile document, be it groff/LaTeX/markdown/etc.
map <leader>c :w! \| !compiler "<c-r>%"<CR>
" Open corresponding .pdf/.html or preview
map <leader>p :!opout <c-r>%<CR><CR>
" Runs a script that cleans out tex build files whenever I close out of a .tex file.
autocmd VimLeave *.tex !texclear %
" Ensure files are read as what I want:
let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}
map <leader>v :VimwikiIndex<CR>
let g:vimwiki_list = [{'path': '~/.local/share/nvim/vimwiki', 'syntax': 'markdown', 'ext': '.md'}]
autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown
autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff
autocmd BufRead,BufNewFile *.tex set filetype=tex
" Save file as sudo on files that require root permission
cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
" Enable Goyo by default for mutt writing
autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80
autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo | set bg=light
autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x!<CR>
autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q!<CR>
" Automatically deletes all trailing whitespace and newlines at end of file on save. & reset cursor position
autocmd BufWritePre * let currPos = getpos(".")
autocmd BufWritePre * %s/\s\+$//e
autocmd BufWritePre * %s/\n\+\%$//e
autocmd BufWritePre *.[ch] %s/\%$/\r/e
autocmd BufWritePre * cal cursor(currPos[1], currPos[2])
" When shortcut files are updated, renew bash and ranger configs with new material:
autocmd BufWritePost bm-files,bm-dirs !shortcuts
" Run xrdb whenever Xdefaults or Xresources are updated.
autocmd BufRead,BufNewFile Xresources,Xdefaults,xresources,xdefaults set filetype=xdefaults
autocmd BufWritePost Xresources,Xdefaults,xresources,xdefaults !xrdb %
" Recompile dwmblocks on config edit.
autocmd BufWritePost ~/.local/src/dwmblocks/config.h !cd ~/.local/src/dwmblocks/; sudo make install && { killall -q dwmblocks;setsid -f dwmblocks }
" Turns off highlighting on the bits of code that are changed, so the line that is changed is highlighted but the actual text that has changed stands out on the line and is readable.
if &diff
highlight! link DiffText MatchParen
endif
" Function for toggling the bottom statusbar:
let s:hidden_all = 0
function! ToggleHiddenAll()
if s:hidden_all == 0
let s:hidden_all = 1
set noshowmode
set noruler
set laststatus=0
set noshowcmd
else
let s:hidden_all = 0
set showmode
set ruler
set laststatus=2
set showcmd
endif
endfunction
nnoremap <leader>h :call ToggleHiddenAll()<CR>

View file

@ -1,61 +0,0 @@
#!/bin/sh
# This is script is meant to deploy all my configs to an specific directory
# Directory list
dir1="$HOME/.config/awesome/"
dir2="$HOME/.config/alacritty/"
dir3="$HOME/.config/picom/"
dir4="$HOME/.config/vifm/"
dir6="$HOME/.config/doom/"
dir7="$HOME/.config/scripts/"
# File List
newsboaturl="$HOME/.newsboat/urls"
zshrc="$HOME/.zshrc"
bashrc="$HOME/.bashrc"
starshiprc="$HOME/.config/starship.toml"
mocrc="$HOME/.moc/config"
mocth="$HOME/.moc/themes/"
qutepy="$HOME/.config/qutebrowser/config.py"
qutegruvpy="$HOME/.config/qutebrowser/gruvbox.py"
# Deploy directory
echo "Checking the deploy directory, creating if it's not created"
echo "Deleting the last deploy if it's there"
deploydir="$HOME/.deploy"
rm -rf "${deploydir:?}"/*
mkdir -p "$HOME/.deploy/"
mkdir -p "$HOME/.deploy/.config/"
mkdir -p "$HOME/.deploy/.moc/"
mkdir -p "$HOME/.deploy/.newsboat/"
mkdir -p "$HOME/.deploy/.config/qutebrowser/"
# Deploying
echo "Deploying the awesomewm config";
cp -r "$dir1" "$deploydir/.config/";
echo "Deploying the alacritty config";
cp -r "$dir2" "$deploydir/.config/";
echo "Deploying the picom config";
cp -r "$dir3" "$deploydir/.config/";
echo "Deploying the vifm config";
cp -r "$dir4" "$deploydir/.config/";
echo "Deploying the zsh config";
cp "$zshrc" "$deploydir/";
echo "Deploying the starship config";
cp "$starshiprc" "$deploydir/.config/";
echo "Deploying the bash config";
cp "$bashrc" "$deploydir/";
echo "Deploying the moc config";
cp -r "$mocrc" "$deploydir/.moc/";
echo "Deploying the moc themes";
cp -r "$mocth" "$deploydir/.moc/";
echo "Deploying the DOOM Emacs config";
cp -r "$dir6" "$deploydir/.config/";
echo "Deploying the qutebrowser config";
cp "$qutepy" "$deploydir/.config/qutebrowser/";
cp "$qutegruvpy" "$deploydir/.config/qutebrowser/";
echo "Deploying scripts";
cp -r "$dir7" "$deploydir/.config/";
echo "Deploying the newsboat config";
cp "$newsboaturl" "$deploydir/.newsboat/";
rm "$deploydir"/.config/vifm/vifminfo*

View file

@ -1,15 +0,0 @@
#!/bin/sh
# _____ ___ ___
# / /::\ / /\ /__/|
# / /:/\:\ / /::\ | |:| ***This script was made by Clay Gomera (Drake)***
# / /:/ \:\ / /:/\:\ | |:| - Description: A simple desktop dmenu script
# /__/:/ \__\:| / /:/~/:/ __| |:| - Dependencies: dmenu, j4-dmenu-desktop
# \ \:\ / /:/ /__/:/ /:/___ /__/\_|:|____
# \ \:\ /:/ \ \:\/:::::/ \ \:\/:::::/
# \ \:\/:/ \ \::/~~~~ \ \::/~~~~
# \ \::/ \ \:\ \ \:\
# \__\/ \ \:\ \ \:\
# \__\/ \__\/
DMENU="dmenu -l 10 -b -i -p Launch:"
j4-dmenu-desktop --dmenu "$DMENU" --no-generic

View file

@ -1,39 +0,0 @@
#!/bin/sh
# _____ ___ ___
# / /::\ / /\ /__/|
# / /:/\:\ / /::\ | |:| ***This script was made by Clay Gomera (Drake)***
# / /:/ \:\ / /:/\:\ | |:| - Description: A simple power menu dmenu script
# /__/:/ \__\:| / /:/~/:/ __| |:| - Dependencies: dmenu (Everything else can be changed)
# \ \:\ / /:/ /__/:/ /:/___ /__/\_|:|____
# \ \:\ /:/ \ \:\/:::::/ \ \:\/:::::/
# \ \:\/:/ \ \::/~~~~ \ \::/~~~~
# \ \::/ \ \:\ \ \:\
# \__\/ \ \:\ \ \:\
# \__\/ \__\/
option1=" Logout"
option2=" Reboot"
option3=" Power off"
option4="💤 Suspend"
option5="🔒lock"
option6="❌Cancel"
session=loginctl list | awk '$1 ~ "c" { print $1 }'
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
action=$(echo "$options" | dmenu -b -i -p " ")
case "$action" in
$option1)
loginctl kill-session "$session";;
$option2)
loginctl reboot;;
$option3)
loginctl poweroff;;
$option4)
loginctl suspend && betterlockscreen -l;;
$option5)
betterlockscreen -l;;
$option6)
exit 0
esac

View file

@ -1,45 +0,0 @@
#!/bin/sh
# _____ ___ ___
# / /::\ / /\ /__/|
# / /:/\:\ / /::\ | |:| ***This script was made by Clay Gomera (Drake)***
# / /:/ \:\ / /:/\:\ | |:| - Description: A simple screenshot dmenu script
# /__/:/ \__\:| / /:/~/:/ __| |:| - Dependencies: scrot, dmenu, notify-send
# \ \:\ / /:/ /__/:/ /:/___ /__/\_|:|____
# \ \:\ /:/ \ \:\/:::::/ \ \:\/:::::/
# \ \:\/:/ \ \::/~~~~ \ \::/~~~~
# \ \::/ \ \:\ \ \:\
# \__\/ \ \:\ \ \:\
# \__\/ \__\/
mkdir -p "$HOME/Pictures/Screenshots"
option1=" Entire screen"
option2=" Entire screen with delay"
option3=" Focused window"
option4=" Select area"
options="$option1\n$option2\n$option3\n$option4"
choice=$(echo "$options" | dmenu -b -i -p " ")
case $choice in
$option1)
scrot -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
$option2)
delayoption1="Take screenshot with 3 sec delay"
delayoption2="Take screenshot with 5 sec delay"
delayoption3="Take screenshot with 10 sec delay"
delayoptions="$delayoption1\n$delayoption2\n$delayoption3"
delay=$(echo "$delayoptions" | dmenu -b -i -p " ")
case $delay in
$delayoption1)
scrot -d 3 -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
$delayoption2)
scrot -d 5 -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
$delayoption3)
scrot -d 10 -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
esac ;;
$option3)
scrot -u -b -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
$option4)
scrot -s -e 'mv $f ~/Pictures/Screenshots/' && notify-send -a 'Scrot' 'Screenshot saved.' -i 'dialog-information' -t 2000 ;;
esac

View file

@ -1,53 +0,0 @@
#!/bin/sh
# _____ ___ ___
# / /::\ / /\ /__/|
# / /:/\:\ / /::\ | |:| ***This script was made by Clay Gomera (Drake)***
# / /:/ \:\ / /:/\:\ | |:| - Description: A simple wallpaper changer script
# /__/:/ \__\:| / /:/~/:/ __| |:| - Dependencies: dmenu, fd, feh
# \ \:\ / /:/ /__/:/ /:/___ /__/\_|:|____
# \ \:\ /:/ \ \:\/:::::/ \ \:\/:::::/
# \ \:\/:/ \ \::/~~~~ \ \::/~~~~
# \ \::/ \ \:\ \ \:\
# \__\/ \ \:\ \ \:\
# \__\/ \__\/
# This is a simple dmenus script to chose wallpapers on the go, using feh and fd. This is still in development
## MAIN VARIABLES AND COMMANDS ##
walldir="Pictures/Wallpapers/" # wallpapers folder, change it to yours, make sure that it ends with a /
cd "$walldir" || exit
## SELECT PICTURE FUNCTION ##
selectpic() {
wallpaper=$(fd -p "$walldir" | dmenu -l 10 -b -i -p "Select a wallpaper:")
if [ "$wallpaper" ]; then
chosenwall=$wallpaper
else
exit 0
fi
}
selectpic
## WALLPAPER SETTING OPTIONS ##
option1="Fill"
option2="Center"
option3="Tile"
option4="Max"
option5="Scale"
options="$option1\n$option2\n$option3\n$option4\n$option5"
## MAIN ACTION ##
action=$(echo "$options" | dmenu -l 10 -b -i -p "Chose the format:")
case "$action" in
$option1*)
feh --bg-fill "$chosenwall";;
$option2*)
feh --bg-center "$chosenwall";;
$option3*)
feh --bg-tile "$chosenwall";;
$option4*)
feh --bg-max "$chosenwall";;
$option5*)
feh --bg-scale "$chosenwall";;
esac
exit 0

15
.gtkrc-2.0 Normal file
View file

@ -0,0 +1,15 @@
include "/home/drk/.gtkrc-2.0.mine"
gtk-theme-name="gruvbox-dark-gtk"
gtk-icon-theme-name="gruvbox-dark-icons-gtk"
gtk-font-name="Sans 10"
gtk-cursor-theme-name="volantes_cursors"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"

View file

@ -0,0 +1,4 @@
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits=volantes_cursors

27
.xinitrc Normal file
View file

@ -0,0 +1,27 @@
#/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
# start window manager / desktop environment
exec dwm

51
.zshrc
View file

@ -8,8 +8,15 @@
### EXPORT
export TERM="xterm-256color" # getting proper colors
export HISTORY_IGNORE="(ls|cd|pwd|exit|sudo reboot|history|cd -|cd ..)"
export EDITOR="emacsclient -t -a ''" # $EDITOR use Emacs in terminal
export VISUAL="emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mode
export EDITOR="nvim" # $EDITOR use neovim
export READER="zathura"
export TERMINAL="alacritty"
export BROWSER="qutebrowser"
export WM="dwm"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}
export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"}
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
### SET MANPAGER
### "bat" as manpager
@ -120,13 +127,6 @@ alias cat='bat'
# editors
alias vim='nvim'
alias em='/usr/bin/emacs -nw'
alias emacs='emacsclient -c -a emacs'
alias doomsync='~/.emacs.d/bin/doom sync'
alias doomdoctor='~/.emacs.d/bin/doom doctor'
alias doomupgrade='~/.emacs.d/bin/doom upgrade'
alias doompurge='~/.emacs.d/bin/doom purge'
alias doominstall='~/.emacs.d/bin/doom install'
# Changing "ls" to "exa"
alias ls='exa -al --color=always --group-directories-first' # my preferred listing
@ -136,12 +136,12 @@ alias lt='exa -aT --color=always --group-directories-first' # tree listing
alias l.='exa -a | egrep "^\."'
# xbps
alias xb-up='sudo xbps-install -Su && xcheckrestart' # update the whole system
alias xb-get='sudo xbps-install -S' # install a program
alias xb-qry='sudo xbps-query' # query details about a program
alias xb-rmv='sudo xbps-remove -R' # remove a package with all its dependencies (it may brake something)
alias xb-rmv-sec='sudo xbps-remove' # remove a package with all its dependencies (secure way)
alias xb-cln='sudo xbps-remove -o && sudo xbps-remove -O' # remove unnecesary packages and clean cache
alias xb-up='sudo xbps-install -Su && xcheckrestart' # Refresh pkglist & update standard pkgs
alias xb-get='sudo xbps-install -S' # Install a package
alias xb-rmv='sudo xbps-remove -R' # Remove a package with all its dependencies
alias xb-rmv-sec='sudo xbps-remove' # Remove a package with all its dependencies (secure way)
alias xb-qry='sudo xbps-query' # Repo query
alias xb-cln='sudo xbps-remove -o && sudo xbps-remove -O' # remove orphaned packages
# Colorize grep output (good for log files)
alias grep='grep --color=auto'
@ -168,8 +168,9 @@ alias tag='git tag'
alias newtag='git tag -a'
# adding flags
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias newsboat='newsboat -u ~/.config/newsboat/urls' # start newsboat with my urls file
# ani-cli
alias ani='ani-cli'
@ -190,7 +191,7 @@ alias mx='pulsemixer'
alias amx='alsamixer'
# music player
alias mk='mocp'
alias mk='cmus'
# power management
alias po='loginctl poweroff'
@ -201,11 +202,6 @@ alias rb='loginctl reboot'
alias fm='./.config/vifm/scripts/vifmrun'
alias vifm='./.config/vifm/scripts/vifmrun'
# system monitor
alias tp='btop'
alias top='btop'
alias htop='btop'
# ps
alias psa="ps auxf"
alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e"
@ -235,12 +231,5 @@ alias wfi-on='nmcli radio wifi on'
alias wfi-off='nmcli radio wifi off'
alias blt='bluetoothctl'
# the terminal rickroll
alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash'
# Deploy script
alias deploynow='sh $HOME/.config/scripts/deploy.sh'
### SETTING THE STARSHIP PROMPT ###
eval "$(starship init zsh)"
eval "$(starship init bash)"

17
README.md Normal file
View file

@ -0,0 +1,17 @@
# ABOUT
This is just a personal repository where i store all my dotfiles, you're free clone them and edit them as you wish. Part of this work was based on other people's dotfiles (Distrotube for example), and it may contain scripts or binaries that they made or modify.
* Screenshots:
![Screenshot1](screenshot1.png "Screenshot 1")
![Screenshot2](screenshot2.png "Screenshot 2")
# Dependencies
If you want to get the full experience you need theese things:
* my dwm build (comming)
* my dmenu build (comming)
* my dmenu_scripts (comming)
* mononoki Nerd Font
* xbacklight
* libinput & xf86-input-libinput
* lxsession
* picom

52398
etc/hosts Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 KiB

After

Width:  |  Height:  |  Size: 702 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 424 KiB