Massive update, now using tokyo night

This commit is contained in:
Clay Gomera 2022-12-04 21:49:49 -04:00
parent f1c98d95d3
commit c2e7e2b9c0
59037 changed files with 1811 additions and 383677 deletions

View file

@ -8,6 +8,9 @@ This is just a personal repository where i store all my dotfiles, you're free cl
[[./screenshot2.png]] [[./screenshot2.png]]
[[./screenshot3.png]] [[./screenshot3.png]]
[[./screenshot4.png]] [[./screenshot4.png]]
[[./screenshot5.png]]
[[./screenshot6.png]]
[[./screenshot7.png]]
* GUIDE * GUIDE
This guide is made for Arch Linux. This guide is made for Arch Linux.
@ -15,13 +18,11 @@ This guide is made for Arch Linux.
** Dependencies ** Dependencies
This section will help you install every dependency. This section will help you install every dependency.
*** Fonts and theming *** Fonts and theming
This repository already includes the mononoki Nerd Font, the gruvbox-dark-gtk theme, the gruvbox-dark-icons-gtk icon pack and the Simp1e-Gruvbox-Dark cursors. But if you preffer to use the AUR packages you can install them using paru like this (Keep in mind that the Simp1e-Gruvbox-Dark cursors aren't in the AUR): Theme = https://github.com/Fausto-Korpsvart/Tokyo-Night-GTK-Theme
#+begin_src sh Cursors = https://gitlab.com/cursors/simp1e
paru -S gruvbox-dark-gtk gruvbox-dark-icons-gtk nerd-fonts-mononoki Fonts = mononoki nerd font from https://github.com/ryanoasis/nerd-fonts
#+end_src
*** Full dependency pack *** Full dependency pack
With this single command using paru you can install all dependencies: With this single command using paru you can install almost all dependencies excluding the tokyo night gtk theme:
#+begin_src sh #+begin_src sh
paru -S --needed picom-pijulius-git capnet-assist scrot feh fd rofi awesome-git betterlockscreen power-profiles-daemon pamixer dunst lxsession alacritty networkmanager bluez bluez-utils paru -S --needed picom-pijulius-git capnet-assist scrot feh fd rofi awesome-git betterlockscreen power-profiles-daemon python-gobject pamixer lxsession alacritty networkmanager bluez bluez-utils nerd-fonts-mononoki xcursor-simp1e-tokyo-night
#+end_src #+end_src

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 KiB

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 755 KiB

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 624 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 581 KiB

BIN
screenshot5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

BIN
screenshot6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

BIN
screenshot7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

View file

@ -5,352 +5,35 @@
## /_____/_/ \__,_/_/|_|\___/ My custom alacritty config ## /_____/_/ \__,_/_/|_|\___/ My custom alacritty config
## ##
## Set colorschemes
#######################################
## Alacritty colorschemes ##
#######################################
schemes: schemes:
### Doom One ### tokyo-night: &tokyo-night
doom-one: &doom-one
primary:
background: '#282c34'
foreground: '#bbc2cf'
cursor:
text: CellBackground
cursor: '#528bff'
selection:
text: CellForeground
background: '#3e4451'
normal:
black: '#1c1f24'
red: '#ff6c6b'
green: '#98be65'
yellow: '#da8548'
blue: '#51afef'
magenta: '#c678dd'
cyan: '#5699af'
white: '#202328'
bright:
black: '#5b6268'
red: '#da8548'
green: '#4db5bd'
yellow: '#ecbe7b'
blue: '#3071db' # This is 2257a0 in Doom Emacs but I lightened it.
magenta: '#a9a1e1'
cyan: '#46d9ff'
white: '#dfdfdf'
### Dracula ###
dracula: &dracula
primary:
background: '#282a36'
foreground: '#f8f8f2'
cursor:
text: CellBackground
cursor: CellForeground
vi_mode_cursor:
text: CellBackground
cursor: CellForeground
search:
matches:
foreground: '#44475a'
background: '#50fa7b'
focused_match:
foreground: '#44475a'
background: '#ffb86c'
bar:
background: '#282a36'
foreground: '#f8f8f2'
line_indicator:
foreground: None
background: None
selection:
text: CellForeground
background: '#44475a'
normal:
black: '#000000'
red: '#ff5555'
green: '#50fa7b'
yellow: '#f1fa8c'
blue: '#bd93f9'
magenta: '#ff79c6'
cyan: '#8be9fd'
white: '#bfbfbf'
bright:
black: '#4d4d4d'
red: '#ff6e67'
green: '#5af78e'
yellow: '#f4f99d'
blue: '#caa9fa'
magenta: '#ff92d0'
cyan: '#9aedfe'
white: '#e6e6e6'
dim:
black: '#14151b'
red: '#ff2222'
green: '#1ef956'
yellow: '#ebf85b'
blue: '#4d5b86'
magenta: '#ff46b0'
cyan: '#59dffc'
white: '#e6e6d1'
### Gruvbox dark ###
gruvbox-dark: &gruvbox-dark
# Default colors # Default colors
primary: primary:
# hard contrast: background = '0x1d2021' background: '0x1a1b26'
background: '#1d2021' foreground: '0xa9b1d6'
# soft contrast: background = '0x32302f'
foreground: '#ebdbb2'
# Normal colors # Normal colors
normal: normal:
black: '#282828' black: '0x32344a'
red: '#cc241d' red: '0xf7768e'
green: '#98971a' green: '0x9ece6a'
yellow: '#d79921' yellow: '0xe0af68'
blue: '#458588' blue: '0x7aa2f7'
magenta: '#b16286' magenta: '0xad8ee6'
cyan: '#689d6a' cyan: '0x449dab'
white: '#a89984' white: '0x787c99'
# Bright colors # Bright colors
bright: bright:
black: '#928374' black: '0x444b6a'
red: '#fb4934' red: '0xff7a93'
green: '#b8bb26' green: '0xb9f27c'
yellow: '#fabd2f' yellow: '0xff9e64'
blue: '#83a598' blue: '0x7da6ff'
magenta: '#d3869b' magenta: '0xbb9af7'
cyan: '#8ec07c' cyan: '0x0db9d7'
white: '#ebdbb2' white: '0xacb0d0'
colors: *tokyo-night
### Monokai ###
monokai-pro: &monokai-pro
# Default colors
primary:
background: '#2D2A2E'
foreground: '#FCFCFA'
# Normal colors
normal:
black: '#403E41'
red: '#FF6188'
green: '#A9DC76'
yellow: '#FFD866'
blue: '#FC9867'
magenta: '#AB9DF2'
cyan: '#78DCE8'
white: '#FCFCFA'
# Bright colors
bright:
black: '#727072'
red: '#FF6188'
green: '#A9DC76'
yellow: '#FFD866'
blue: '#FC9867'
magenta: '#AB9DF2'
cyan: '#78DCE8'
white: '#FCFCFA'
### Nord ###
nord: &nord
# Default colors
primary:
background: '#2E3440'
foreground: '#D8DEE9'
# Normal colors
normal:
black: '#3B4252'
red: '#BF616A'
green: '#A3BE8C'
yellow: '#EBCB8B'
blue: '#81A1C1'
magenta: '#B48EAD'
cyan: '#88C0D0'
white: '#E5E9F0'
# Bright colors
bright:
black: '#4C566A'
red: '#BF616A'
green: '#A3BE8C'
yellow: '#EBCB8B'
blue: '#81A1C1'
magenta: '#B48EAD'
cyan: '#8FBCBB'
white: '#ECEFF4'
### Oceanic Next ###
oceanic-next: &oceanic-next
# Default colors
primary:
background: '#1b2b34'
foreground: '#d8dee9'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '#1b2b34'
cursor: '#ffffff'
# Normal colors
normal:
black: '#343d46'
red: '#EC5f67'
green: '#99C794'
yellow: '#FAC863'
blue: '#6699cc'
magenta: '#c594c5'
cyan: '#5fb3b3'
white: '#d8dee9'
# Bright colors
bright:
black: '#343d46'
red: '#EC5f67'
green: '#99C794'
yellow: '#FAC863'
blue: '#6699cc'
magenta: '#c594c5'
cyan: '#5fb3b3'
white: '#d8dee9'
### Palenight ###
palenight: &palenight
# Default colors
primary:
background: '#292d3e'
foreground: '#d0d0d0'
# Normal colors
normal:
black: '#292d3e'
red: '#f07178'
green: '#c3e88d'
yellow: '#ffcb6b'
blue: '#82aaff'
magenta: '#c792ea'
cyan: '#89ddff'
white: '#d0d0d0'
# Bright colors
bright:
black: '#434758'
red: '#ff8b92'
green: '#ddffa7'
yellow: '#ffe585'
blue: '#9cc4ff'
magenta: '#e1acff'
cyan: '#a3f7ff'
white: '#ffffff'
### Solarized Dark ###
solarized-dark: &solarized-dark
# Default colors
primary:
background: '#002b36' # base03
foreground: '#839496' # base0
# Cursor colors
cursor:
text: '#002b36' # base03
cursor: '#839496' # base0
# Normal colors
normal:
black: '#073642' # base02
red: '#dc322f' # red
green: '#859900' # green
yellow: '#b58900' # yellow
blue: '#268bd2' # blue
magenta: '#d33682' # magenta
cyan: '#2aa198' # cyan
white: '#eee8d5' # base2
# Bright colors
bright:
black: '#002b36' # base03
red: '#cb4b16' # orange
green: '#586e75' # base01
yellow: '#657b83' # base00
blue: '#839496' # base0
magenta: '#6c71c4' # violet
cyan: '#93a1a1' # base1
white: '#fdf6e3' # base3
### Solarized Light ###
solarized-light: &solarized-light
# Default colors
primary:
background: '#fdf6e3' # base3
foreground: '#657b83' # base00
# Cursor colors
cursor:
text: '#fdf6e3' # base3
cursor: '#657b83' # base00
# Normal colors
normal:
black: '#073642' # base02
red: '#dc322f' # red
green: '#859900' # green
yellow: '#b58900' # yellow
blue: '#268bd2' # blue
magenta: '#d33682' # magenta
cyan: '#2aa198' # cyan
white: '#eee8d5' # base2
# Bright colors
bright:
black: '#002b36' # base03
red: '#cb4b16' # orange
green: '#586e75' # base01
yellow: '#657b83' # base00
blue: '#839496' # base0
magenta: '#6c71c4' # violet
cyan: '#93a1a1' # base1
white: '#fdf6e3' # base3
### Tomorrow Night ###
tomorrow-night: &tomorrow-night
# Default colors
primary:
background: '#1d1f21'
foreground: '#c5c8c6'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '#1d1f21'
cursor: '#ffffff'
# Normal colors
normal:
black: '#1d1f21'
red: '#cc6666'
green: '#b5bd68'
yellow: '#e6c547'
blue: '#81a2be'
magenta: '#b294bb'
cyan: '#70c0ba'
white: '#373b41'
# Bright colors
bright:
black: '#666666'
red: '#ff3334'
green: '#9ec400'
yellow: '#f0c674'
blue: '#81a2be'
magenta: '#b77ee0'
cyan: '#54ced6'
white: '#282a2e'
colors: *gruvbox-dark
## Set environment variables ## Set environment variables
env: env:

View file

@ -0,0 +1,12 @@
-- Apps
local apps = {
terminal = "alacritty",
editor = "emacsclient -c -a emacs",
music = "alacritty -t musik --class musik,musik -e musikcube",
chat = "alacritty -t gomuks --class gomuks,gomuks -e gomuks",
game = "retroarch",
file = "alacritty -t vifm --class vifm,vifm -e ./.config/vifm/scripts/vifmrun",
browser = "firefox",
office = "libreoffice"
}
return apps

View file

@ -3,3 +3,4 @@ awful.util.spawn_with_shell("lxpolkit &")
awful.util.spawn_with_shell("$HOME/.fehbg &") awful.util.spawn_with_shell("$HOME/.fehbg &")
awful.util.spawn_with_shell("unclutter --hide-on-touch &") awful.util.spawn_with_shell("unclutter --hide-on-touch &")
awful.util.spawn_with_shell("picom --experimental-backends --config ~/.config/picom/picom.conf &") awful.util.spawn_with_shell("picom --experimental-backends --config ~/.config/picom/picom.conf &")
awful.util.spawn_with_shell("xfce4-power-manager &")

View file

@ -1,12 +0,0 @@
-- Apps
local apps = {
terminal = "alacritty",
editor = "emacsclient -c -a emacs",
music = "alacritty -t cmus --class cmus,cmus -e cmus",
chat = "element-desktop",
game = "retroarch",
file = "alacritty -t vifm --class vifm,vifm -e ./.config/vifm/scripts/vifmrun",
browser = "firefox",
office = "libreoffice"
}
return apps

View file

@ -1,132 +0,0 @@
local wibox = require("wibox")
local gears = require("gears")
local awful = require("awful")
local theme = require("theme.theme")
local separators = require("core.bar.widgets.separator")
-- Keyboard layout widget
mykeyboardlayout = awful.widget.keyboardlayout()
-- Textclock widget
mytextclock = wibox.widget.textclock()
screen.connect_signal("request::desktop_decoration", function(s)
-- Tag names for each screen
awful.tag({ "",
"",
"",
"",
"",
"",
"",
"",
""
}, s, awful.layout.layouts[1])
-- Layoutbox widget
s.mylayoutbox = awful.widget.layoutbox {
screen = s,
buttons = {
awful.button({ }, 1, function () awful.layout.inc( 1) end),
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),
}
}
-- Custom widgets
s.volume = awful.widget.watch(".config/awesome/core/bar/widgets/volume", 1)
s.battery = awful.widget.watch(".config/awesome/core/bar/widgets/battery", 10)
s.wifi = awful.widget.watch(".config/awesome/core/bar/widgets/wifi", 10)
s.brightness = awful.widget.watch(".config/awesome/core/bar/widgets/brightness", 1)
s.layout = awful.widget.watch(".config/awesome/core/bar/widgets/layout", 1)
-- Taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = {
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.viewprev(t.screen) end),
awful.button({ }, 5, function(t) awful.tag.viewnext(t.screen) end),
}
}
-- Separators
local spr = wibox.widget.textbox(" ")
local spr_one_dl = separators.arrow_left(theme.bg_normal, theme.bar_bg_one)
local spr_one_ld = separators.arrow_left(theme.bar_bg_one, theme.bar_bg_two)
local spr_two_dl = separators.arrow_left(theme.bar_bg_two, theme.bar_bg_two)
local spr_two_ld = separators.arrow_left(theme.bar_bg_two, theme.bar_bg_tre)
local spr_tre_dl = separators.arrow_left(theme.bar_bg_tre, theme.bar_bg_tre)
local spr_tre_ld = separators.arrow_left(theme.bar_bg_tre, theme.bar_bg_for)
local spr_for_dl = separators.arrow_left(theme.bar_bg_for, theme.bar_bg_for)
local spr_for_ld = separators.arrow_left(theme.bar_bg_for, theme.bar_bg_fiv)
local spr_fiv_dl = separators.arrow_left(theme.bar_bg_fiv, theme.bar_bg_fiv)
-- Wibox
s.mywibox = awful.wibar {
position = "top",
screen = s,
widget = {
layout = wibox.layout.stack,
{
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
s.mylayoutbox,
wibox.widget.textbox(" "),
s.mytaglist,
wibox.widget.textbox(" "),
},
nil,
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
-- Keyboar layout widget
wibox.container.background(spr_one_dl, theme.bar_bg_one),
wibox.container.background(spr, theme.bar_bg_one),
wibox.container.background(s.layout, theme.bar_bg_one),
wibox.container.background(spr, theme.bar_bg_one),
wibox.container.background(spr_one_ld, theme.bar_bg_one),
-- Volume widget
wibox.container.background(spr_two_dl, theme.bar_bg_two),
wibox.container.background(s.volume, theme.bar_bg_two),
wibox.container.background(spr, theme.bar_bg_two),
spr_two_ld,
-- Brightness widget
wibox.container.background(spr_tre_dl, theme.bar_bg_tre),
wibox.container.background(s.brightness, theme.bar_bg_tre),
wibox.container.background(spr, theme.bar_bg_tre),
wibox.container.background(spr_tre_ld, theme.bar_bg_tre),
-- Battery widget
wibox.container.background(spr_for_dl, theme.bar_bg_for),
wibox.container.background(s.battery, theme.bar_bg_for),
wibox.container.background(spr, theme.bar_bg_for),
wibox.container.background(spr_for_ld, theme.bar_bg_for),
-- Wifi widget
wibox.container.background(spr_fiv_dl, theme.bar_bg_fiv),
wibox.container.background(s.wifi, theme.bar_bg_fiv),
wibox.container.background(spr, theme.bar_bg_fiv),
},
},
{
wibox.container.background(mytextclock, theme.bar_clock),
valign = "center",
halign = "center",
layout = wibox.container.place,
}
}
}
end)

View file

@ -1,14 +0,0 @@
#!/bin/bash
# Prints the current volume or 🔇 if muted.
[ $(pamixer --get-mute) = true ] && echo "  " && exit
vol="$(pamixer --get-volume)"
if [ "$vol" -gt "50" ]; then
icon=""
elif [ "$vol" -gt "10" ]; then
icon=""
elif [ "$vol" -gt "0" ]; then
icon=""
else
echo "  " && exit
fi
echo -e "$icon $vol%"

View file

@ -1,15 +0,0 @@
#!/bin/bash
constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1)
currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1)
if [ "$constate" = "disconnected" ]; then
state="睊"
echo "$state"
elif [ "$constate" = "connected" ]; then
state="直"
echo "$state $currentwfi"
else
state="直?"
echo "$state"
fi

View file

@ -1,372 +0,0 @@
local awful = require("awful")
local hotkeys_popup = require("awful.hotkeys_popup"); require("awful.hotkeys_popup.keys")
local apps = require("core.apps")
require("awful.autofocus")
-- Modkeys.
altkey = "Mod1"
modkey = "Mod4"
conkey = "Control"
--[[ Quick keybindings ]]--
awful.keyboard.append_global_keybindings({
-- Show all the keybindings
awful.key({ modkey }, "s", hotkeys_popup.show_help,
{description="show help", group="quick"}),
-- Reload awesome
awful.key({ modkey, "Control" }, "r", awesome.restart,
{description = "reload awesome", group = "quick"}),
-- 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"}),
awful.key({ modkey }, "Return", function () awful.spawn(apps.terminal) end,
{description = "open a terminal", group = "launcher"}),
})
--[[ ]]--
--[[ Tags related keybindings ]]--
awful.keyboard.append_global_keybindings({
-- Switch to previous tag
awful.key({ modkey }, "Left", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
-- Switch to next tag
awful.key({ modkey }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
-- Switch back to the previous tag
awful.key({ modkey }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
-- Switch tags by numbers 1-9
awful.key {
modifiers = { modkey },
keygroup = "numrow",
description = "only view tag",
group = "tag",
on_press = function (index)
local screen = awful.screen.focused()
local tag = screen.tags[index]
if tag then
tag:view_only()
end
end,
},
-- Toggle tags by numbers 1-9
awful.key {
modifiers = { modkey, "Control" },
keygroup = "numrow",
description = "toggle tag",
group = "tag",
on_press = function (index)
local screen = awful.screen.focused()
local tag = screen.tags[index]
if tag then
awful.tag.viewtoggle(tag)
end
end,
},
-- Move focused client to tag by numbers 1-9
awful.key {
modifiers = { modkey, "Shift" },
keygroup = "numrow",
description = "move focused client to tag",
group = "tag",
on_press = function (index)
if client.focus then
local tag = client.focus.screen.tags[index]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
},
-- Toggle focused client on tag by numbers 1-9
awful.key {
modifiers = { modkey, "Control", "Shift" },
keygroup = "numrow",
description = "toggle focused client on tag",
group = "tag",
on_press = function (index)
if client.focus then
local tag = client.focus.screen.tags[index]
if tag then
client.focus:toggle_tag(tag)
end
end
end,
},
})
--[[ ]]--
--[[ Focus related keybindings ]]--
awful.keyboard.append_global_keybindings({
-- Focus next client by index
awful.key({ modkey }, "j",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "focus"}),
-- Focus previous client by index
awful.key({ modkey }, "k",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "focus"}),
-- Focus last focused client
awful.key({ modkey }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = "go back", group = "focus"}),
-- Focus next screen
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative(1) end,
{description = "focus the next screen", group = "focus"}),
-- Focus previous screen
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "focus"}),
})
--[[ ]]--
--[[ Layout related keybindings ]]--
awful.keyboard.append_global_keybindings({
-- Swap with next client by index
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx(1) end,
{description = "swap with next client by index", group = "layout"}),
-- Swap with previous client by index
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx(-1) end,
{description = "swap with previous client by index", group = "layout"}),
-- Increase master width
awful.key({ modkey }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
-- Decrease master width
awful.key({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end,
{description = "decrease master width factor", group = "layout"}),
-- Increase the number of master clients
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
{description = "increase the number of master clients", group = "layout"}),
-- Decrease the number of master clients
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
{description = "decrease the number of master clients", group = "layout"}),
-- Increase the number of columns
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
{description = "increase the number of columns", group = "layout"}),
-- Decrease the number of columns
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "decrease the number of columns", group = "layout"}),
-- Switch to next layout
awful.key({ modkey }, "space", function () awful.layout.inc( 1) end,
{description = "select next", group = "layout"}),
-- Switch to previous layout
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
{description = "select previous", group = "layout"}),
-- Select layouts directly
awful.key {
modifiers = { modkey },
keygroup = "numpad",
description = "select layout directly",
group = "layout",
on_press = function (index)
local t = awful.screen.focused().selected_tag
if t then
t.layout = t.layouts[index] or t.layout
end
end,
}
})
--[[ ]]--
--[[ Client related keybindings ]]--
client.connect_signal("request::default_keybindings", function()
-- Mouse bindings
awful.mouse.append_client_mousebindings({
-- Focus client with left click
awful.button({ }, 1, function (c)
c:activate { context = "mouse_click" }
end),
-- Move client by MODKEY + mouse left click
awful.button({ modkey }, 1, function (c)
c:activate { context = "mouse_click", action = "mouse_move" }
end),
-- Resize client by MODKEY + mouse right click
awful.button({ modkey }, 3, function (c)
c:activate { context = "mouse_click", action = "mouse_resize"}
end),
})
-- Keyboard bindings
awful.keyboard.append_client_keybindings({
-- Set focused client to fullscreen
awful.key({ modkey }, "f",
function (c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = "toggle fullscreen", group = "client"}),
-- Close focused client
awful.key({ modkey }, "q", function (c) c:kill() end,
{description = "close", group = "client"}),
-- Toggle floating mode on focused client
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle,
{description = "toggle floating", group = "client"}),
-- Move focused client to master
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
-- Move focused client to the other screen
awful.key({ modkey }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
-- Toggle focused client to be on top
awful.key({ modkey }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),
-- Minimize focused client
awful.key({ modkey }, "n", function (c) c.minimized = true end,
{description = "minimize", group = "client"}),
-- (Un)Maximize focused client
awful.key({ modkey }, "m",
function (c)
c.maximized = not c.maximized
c:raise()
end ,
{description = "(un)maximize", group = "client"}),
-- (Un)Maximize vertically focused client
awful.key({ modkey, "Control" }, "m",
function (c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end ,
{description = "(un)maximize vertically", group = "client"}),
-- (Un)Maximize horizontally focused client
awful.key({ modkey, "Shift" }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end ,
{description = "(un)maximize horizontally", group = "client"}),
-- Unminimize clients
awful.key({ modkey, "Control" }, "n",
function ()
local c = awful.client.restore()
-- Focus restored client
if c then
c:activate { raise = true, context = "key.unminimize" }
end
end,
{description = "restore minimized", group = "client"}),
-- Jump to urgent client
awful.key({ modkey }, "u", awful.client.urgent.jumpto,
{description = "jump to urgent client", group = "client"}),
})
end)
--[[ ]]--
--[[ Custom keybindings ]]
awful.keyboard.append_global_keybindings({
-- Volume
awful.key({}, "XF86AudioRaiseVolume", function() awful.spawn("pamixer -i 5") end,
{description = "increase volume", group = "quick"}),
awful.key({}, "XF86AudioLowerVolume", function() awful.spawn("pamixer -d 5") end,
{description = "decrease volume", group = "quick"}),
awful.key({}, "XF86AudioMute", function() awful.spawn("pamixer -t") end,
{description = "mute volume", group = "quick"}),
awful.key({}, "XF86AudioMicMute", function() awful.spawn("pamixer --default-source -t") end,
{description = "mute microphone", group = "quick"}),
-- Brightness
awful.key({}, "XF86MonBrightnessUp", function () awful.spawn("xbacklight -inc 10") end,
{description = "increase brightness", group = "quick"}),
awful.key({}, "XF86MonBrightnessDown", function () awful.spawn("xbacklight -dec 10") end,
{description = "decrease brightness", group = "quick"}),
-- Display configuration
awful.key({}, "XF86Display", function () awful.spawn("arandr") end,
{description = "configure display", group = "quick"}),
-- apps (Super + a followed by KEY)
awful.key({ modkey }, "a", function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then return end
if key == "1" then awful.util.spawn(apps.editor)
elseif key == "2" then awful.util.spawn(apps.file)
elseif key == "3" then awful.util.spawn(apps.browser)
elseif key == "4" then awful.util.spawn(apps.chat)
elseif key == "5" then awful.util.spawn(apps.music)
elseif key == "8" then awful.util.spawn(apps.office)
elseif key == "9" then awful.util.spawn(apps.game)
end
awful.keygrabber.stop(grabber)
end
)
end,
{description = "followed by KEY", group = "apps"}
),
-- Keyboard layouts (Super + x followed by KEY)
awful.key({ modkey }, "x", function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then return end
if key == "e" then awful.util.spawn("setxkbmap es")
elseif key == "u" then awful.util.spawn("setxkbmap us")
end
awful.keygrabber.stop(grabber)
end
)
end,
{description = "followed by KEY", group = "keyboard"}
),
-- Dmenu scripts (Super + p followed by KEY)
awful.key({ modkey }, "p", function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then return end
if key == "d" then awful.spawn.with_shell("rofi -show drun -show-icons")
elseif key == "r" then awful.spawn.with_shell("rofi -show run")
elseif key == "e" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_edit")
elseif key == "q" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_power")
elseif key == "i" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_wifi")
elseif key == "b" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_blue")
elseif key == "s" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_scrot")
elseif key == "z" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_emoji")
elseif key == "w" then awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_wall")
end
awful.keygrabber.stop(grabber)
end
)
end,
{description = "followed by KEY", group = "dmenu scripts"}
),
-- Terminal scripts (Super + t followed by KEY)
awful.key({ modkey }, "t", function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then return end
if key == "m" then awful.spawn.with_shell("alacritty --title youm --class youm,youm -e ytfzf -mlst")
elseif key == "y" then awful.spawn.with_shell("alacritty --title ytfzf --class ytfzf,ytfzf -e ytfzf -flst")
elseif key == "a" then awful.spawn.with_shell("alacritty --title ani-cli --class ani-cli,ani-cli -e ani-cli -f")
elseif key == "f" then awful.spawn.with_shell("alacritty --title flix-cli --class flix-cli,flix-cli -e flix-cli")
end
awful.keygrabber.stop(grabber)
end
)
end,
{description = "followed by KEY", group = "dmenu scripts"}
),
})
--[[ ]]
-- 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)

View file

@ -1,51 +0,0 @@
local naughty = require("naughty")
local awful = require("awful")
local ruled = require("ruled")
local naughty = require("naughty")
local beautiful = require("beautiful")
local gears = require("gears")
-- {{{ Error handling
naughty.connect_signal("request::display_error", function(message, startup)
naughty.notification {
urgency = "critical",
title = "Oops, an error happened"..(startup and " during startup!" or "!"),
message = message
}
end)
-- }}}
-- {{{ Notifications
ruled.notification.connect_signal('request::rules', function()
ruled.notification.append_rule {
rule = { },
properties = {
screen = awful.screen.preferred,
implicit_timeout = 5,
}
}
end)
naughty.connect_signal("request::display", function(n)
naughty.layout.box { notification = n }
end)
naughty.config.defaults['icon_size'] = 80
beautiful.notification_shape = function(cr, w, h)
gears.shape.rounded_rect(cr, w, h, 8)
end
-- }}}
-- {{{ Signals
-- No borders when rearranging only 1 non-floating or maximized client
screen.connect_signal("arrange", function (s)
local max = s.selected_tag.layout.name == "max"
local only_one = #s.tiled_clients == 1 -- use tiled_clients so that other floating windows don't affect the count
-- but iterate over clients instead of tiled_clients as tiled_clients doesn't include maximized windows
for _, c in pairs(s.clients) do
if (max or only_one) and not c.floating or c.maximized then
c.border_width = 0
else
c.border_width = beautiful.border_width
end
end
end)
-- }}}

View file

@ -1,21 +0,0 @@
local awful = require("awful")
-- {{{ Tag layout
-- Table of layouts to cover with awful.layout.inc, order matters.
tag.connect_signal("request::default_layouts", function()
awful.layout.append_default_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.corner.nw,
awful.layout.suit.floating,
})
end)
-- }}}

View file

@ -1,152 +0,0 @@
local awful = require("awful")
local ruled = require("ruled")
-- Rules to apply to new clients.
ruled.client.connect_signal("request::rules", function()
-- All clients will match this rule.
ruled.client.append_rule {
id = "global",
rule = { },
properties = {
focus = awful.client.focus.filter,
raise = true,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap+awful.placement.no_offscreen,
callback = awful.client.setslave
}
}
-- Floating clients.
ruled.client.append_rule {
id = "floating",
rule_any = {
instance = { "copyq", "pinentry" },
class = {
"Galculator",
"Blueman-manager",
"Gpick",
"Kruler",
"Tor Browser",
"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 }
}
-- TAG 1
ruled.client.append_rule {
rule_any = { class = {
"Emacs",
"Godot",
"neovim",
"Virt-manager"
}
},
properties = { tag = "" },
}
-- TAG 2
ruled.client.append_rule {
rule = { class = "vifm" },
properties = { tag = "" },
}
-- TAG 3
ruled.client.append_rule {
rule_any = { class = {
"Brave-browser",
"librewolf",
"firefox",
"Chromium",
"Bitwarden",
"qutebrowser"
}
},
properties = { tag = "" }
}
-- TAG 4
ruled.client.append_rule {
rule = { class = {
"gomuks",
"Element"
}
},
properties = { tag = "" }
}
-- TAG 5
ruled.client.append_rule {
rule_any = { class = {
"cmus",
"youm",
"Audacity",
"Ardour",
"Carla2",
"Carla2-Control"
}
},
properties = { tag = "" }
}
-- TAG 6
ruled.client.append_rule {
rule_any = { class = {
"kdenlive",
"Blender",
"Natron",
"SimpleScreenRecorder",
"Ghb",
"obs",
"mpv",
"ani-cli",
"flix-cli",
"ytfzf"
}
},
properties = { tag = "" }
}
-- TAG 7
ruled.client.append_rule {
rule_any = { class = {
"Qjackctl",
"lsp-plugins",
"qpwgraph",
"Gimp-2.10",
"krita",
"Inkscape",
"Xournalpp",
}
},
properties = { tag = "" }
}
-- TAG 8
ruled.client.append_rule {
rule_any = { class = {
"DesktopEditors",
"Soffice",
"libreoffice-startcenter",
"Joplin"
}
},
properties = { tag = "" }
}
-- TAG 9
ruled.client.append_rule {
rule_any = { class = {
"retroarch",
"steam"
}
},
properties = { tag = "" }
}
--}}}
-- }
end)

View file

@ -0,0 +1,66 @@
local naughty = require("naughty")
local awful = require("awful")
local ruled = require("ruled")
local naughty = require("naughty")
local beautiful = require("beautiful")
local gears = require("gears")
-- {{{ Error handling
naughty.connect_signal(
"request::display_error",
function(message, startup)
naughty.notification {
urgency = "critical",
title = "Oops, an error happened".. ( startup and " during startup!" or "!" ),
message = message
}
end
)
-- }}}
-- {{{ Notifications
ruled.notification.connect_signal(
"request::rules",
function()
ruled.notification.append_rule {
rule = { },
properties = {
screen = awful.screen.preferred,
implicit_timeout = 5,
}
}
end
)
naughty.connect_signal(
"request::display",
function(n)
naughty.layout.box {
notification = n
}
end
)
naughty.config.defaults[ "icon_size" ] = 80
beautiful.notification_shape =
function(cr, w, h)
gears.shape.rounded_rect(cr, w, h, 8)
end
-- }}}
-- {{{ Signals
-- No borders when rearranging only 1 non-floating or maximized client
screen.connect_signal(
"arrange",
function (s)
local max = s.selected_tag.layout.name == "max"
local only_one = #s.tiled_clients == 1 -- use tiled_clients so that other floating windows don't affect the count
-- but iterate over clients instead of tiled_clients as tiled_clients doesn't include maximized windows
for _, c in pairs(s.clients) do
if (max or only_one) and not c.floating or c.maximized then
c.border_width = 0
else
c.border_width = beautiful.border_width
end
end
end
)
-- }}}

View file

@ -0,0 +1,722 @@
local awful = require("awful")
local hotkeys_popup = require("awful.hotkeys_popup"); require("awful.hotkeys_popup.keys")
local apps = require("apps")
require("awful.autofocus")
-- Modkeys.
altkey = "Mod1"
modkey = "Mod4"
conkey = "Control"
--[[ Main keybinds ]]--
awful.keyboard.append_global_keybindings(
{
-- Show the help menu
awful.key(
{ modkey },
"s",
hotkeys_popup.show_help,
{ description =
"Show Help Menu",
group =
"Main keybinds"
}
),
-- Reload awesome
awful.key(
{ modkey, "Control" },
"r",
awesome.restart,
{ description =
"Reload Awesome",
group =
"Main keybinds"
}
),
-- Open a terminal
awful.key(
{ modkey },
"Return",
function ()
awful.spawn(apps.terminal)
end,
{ description =
"Open a terminal",
group =
"Main keybinds"
}
),
}
)
--[[ ]]--
--[[ Tags related keybindings ]]--
awful.keyboard.append_global_keybindings(
{
-- Switch to previous tag
awful.key(
{ modkey },
"Left",
awful.tag.viewprev,
{ description =
"Quickly switch to previous tag",
group =
"Tag keybinds"
}
),
-- Switch to next tag
awful.key(
{ modkey },
"Right",
awful.tag.viewnext,
{ description =
"Quickly switch to next tag",
group =
"Tag keybinds"
}
),
-- Switch back to the previous tag
awful.key(
{ modkey },
"Escape",
awful.tag.history.restore,
{ description =
"Go back to previus tag (from history)",
group =
"Tag keybinds"
}
),
-- Switch tags by numbers 1-9
awful.key {
modifiers = { modkey },
keygroup = "numrow",
description = "Switch tags with number keys from {1 to 9}",
group = "Tag keybinds",
on_press = function (index)
local screen = awful.screen.focused()
local tag = screen.tags[index]
if tag then
tag:view_only()
end
end,
},
-- Toggle tags by numbers 1-9
awful.key {
modifiers = { modkey, "Control" },
keygroup = "numrow",
description = "Quickly view contents in another tag with number keys from {1 to 9}",
group = "Tag keybinds",
on_press = function (index)
local screen = awful.screen.focused()
local tag = screen.tags[index]
if tag then
awful.tag.viewtoggle(tag)
end
end,
},
-- Move focused window to tag by numbers 1-9
awful.key {
modifiers = { modkey, "Shift" },
keygroup = "numrow",
description = "Move focused window to another tag with number keys from {1 to 9}",
group = "Tag keybinds",
on_press = function (index)
if client.focus then
local tag = client.focus.screen.tags[index]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
},
-- Toggle focused window on tag by numbers 1-9
awful.key {
modifiers = { modkey, "Control", "Shift" },
keygroup = "numrow",
description = "View focused window on more than one tag with number keys from {1 to 9}",
group = "Tag keybinds",
on_press = function (index)
if client.focus then
local tag = client.focus.screen.tags[index]
if tag then
client.focus:toggle_tag(tag)
end
end
end,
},
}
)
--[[ ]]--
--[[ Focus related keybindings ]]--
awful.keyboard.append_global_keybindings(
{
-- Focus next window by index
awful.key(
{ modkey },
"j",
function ()
awful.client.focus.byidx( 1)
end,
{ description =
"Focus the next window by index",
group =
"Focus keybinds"
}
),
-- Focus previous window by index
awful.key(
{ modkey },
"k",
function ()
awful.client.focus.byidx(-1)
end,
{ description =
"Focus the previous window by index",
group =
"Focus keybinds"
}
),
-- Focus last focused window
awful.key(
{ modkey },
"Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{ description =
"Focus back the previous focused window",
group =
"Focus keybinds"
}
),
-- Focus next screen
awful.key(
{ modkey, "Control" },
"j",
function ()
awful.screen.focus_relative(1)
end,
{ description =
"Focus the next screen",
group =
"Focus keybinds"
}
),
-- Focus previous screen
awful.key(
{ modkey, "Control" },
"k",
function ()
awful.screen.focus_relative(-1)
end,
{ description =
"Focus the previous screen",
group =
"Focus keybinds"
}
),
}
)
--[[ ]]--
--[[ Layout keybinds ]]--
awful.keyboard.append_global_keybindings(
{
-- Swap with next window by index
awful.key(
{ modkey, "Shift" },
"j",
function ()
awful.client.swap.byidx(1)
end,
{ description =
"Swap with next window in current layout by index",
group =
"Layout keybinds"
}
),
-- Swap with previous window by index
awful.key(
{ modkey, "Shift" },
"k",
function ()
awful.client.swap.byidx(-1)
end,
{ description =
"Swap with previous window in current layout by index",
group =
"Layout keybinds"
}
),
-- Increase master width
awful.key(
{ modkey },
"l",
function ()
awful.tag.incmwfact(0.05)
end,
{ description =
"Increase master window width size",
group =
"Layout keybinds"
}
),
-- Decrease master width
awful.key(
{ modkey },
"h",
function ()
awful.tag.incmwfact(-0.05)
end,
{ description =
"Decrease master window width size",
group =
"Layout keybinds"
}
),
-- Increase the number of master window
awful.key(
{ modkey, "Shift" },
"h",
function ()
awful.tag.incnmaster(1, nil, true)
end,
{ description =
"Increase the number of master windows",
group =
"Layout keybinds"
}
),
-- Decrease the number of master windows
awful.key(
{ modkey, "Shift" },
"l",
function ()
awful.tag.incnmaster(-1, nil, true)
end,
{ description =
"Decrease the number of master windows",
group =
"Layout keybinds"
}
),
-- Increase the number of columns
awful.key(
{ modkey, "Control" },
"h",
function ()
awful.tag.incncol(1, nil, true)
end,
{ description =
"Increase the number of columns in layout",
group =
"Layout keybinds"
}
),
-- Decrease the number of columns
awful.key(
{ modkey, "Control" },
"l",
function ()
awful.tag.incncol(-1, nil, true)
end,
{ description =
"Decrease the number of columns in layout",
group =
"Layout keybinds"
}
),
-- Switch to next layout
awful.key(
{ modkey },
"space",
function ()
awful.layout.inc(1)
end,
{ description =
"Switch to the next layout",
group =
"Layout keybinds"
}
),
-- Switch to previous layout
awful.key(
{ modkey, "Shift" },
"space",
function ()
awful.layout.inc(-1)
end,
{ description =
"Switch to previous layout",
group =
"Layout keybinds"
}
),
-- Select layouts directly
awful.key {
modifiers = { modkey },
keygroup = "numpad",
description = "Select layouts directly using the numpad",
group = "layout",
on_press = function (index)
local t = awful.screen.focused().selected_tag
if t then
t.layout = t.layouts[index] or t.layout
end
end,
},
-- 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 the bar",
group =
"Layout keybinds"
}
),
}
)
--[[ ]]--
--[[ Window keybinds ]]--
client.connect_signal(
"request::default_keybindings",
function()
awful.keyboard.append_client_keybindings(
{
-- Set focused window to fullscreen
awful.key(
{ modkey },
"f",
function (c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{ description =
"Toggle fullscreen",
group =
"Window keybinds"
}
),
-- Close focused window
awful.key(
{ modkey },
"q",
function (c)
c:kill()
end,
{ description =
"Close focused window",
group =
"Window keybinds" }
),
-- Toggle floating mode on focused window
awful.key(
{ modkey, "Control" },
"space",
awful.client.floating.toggle,
{ description =
"Toggle floating mode on focused window",
group =
"Window keybinds"
}
),
-- Move focused window to master
awful.key(
{ modkey, "Control" },
"Return",
function (c)
c:swap(
awful.client.getmaster()
)
end,
{ description =
"Move focused window to master",
group =
"Window keybinds"
}
),
-- Move focused window to the other screen
awful.key(
{ modkey },
"o",
function (c)
c:move_to_screen()
end,
{ description =
"Move focused window to the next screen",
group =
"Window keybinds"
}
),
-- Toggle focused window to be on top
awful.key(
{ modkey },
"t",
function (c)
c.ontop = not c.ontop
end,
{ description =
"Toggle keep on top for focused window",
group =
"Window keybinds"
}
),
-- Jump to urgent window
awful.key(
{ modkey },
"u",
awful.client.urgent.jumpto,
{ description =
"Quickly jump to urgent window",
group =
"Window keybinds"
}
),
}
)
end
)
--[[ ]]--
--[[ Quick keybinds ]]
awful.keyboard.append_global_keybindings(
{
-- Volume
awful.key(
{ },
"XF86AudioRaiseVolume",
function()
awful.spawn("pamixer -i 5")
end,
{ description =
"Increase volume by +5%",
group =
"Quick keybinds"
}
),
awful.key(
{ },
"XF86AudioLowerVolume",
function()
awful.spawn("pamixer -d 5")
end,
{ description =
"Decrease volume by +5%",
group =
"Quick keybinds"
}
),
awful.key(
{ },
"XF86AudioMute",
function()
awful.spawn("pamixer -t")
end,
{ description =
"Mute volume",
group =
"Quick keybinds"
}
),
awful.key(
{ },
"XF86AudioMicMute",
function()
awful.spawn("pamixer --default-source -t")
end,
{ description =
"Mute microphone",
group =
"Quick keybinds"
}
),
-- Brightness
awful.key(
{ },
"XF86MonBrightnessUp",
function ()
awful.spawn("xbacklight -inc 10")
end,
{ description =
"Increase brightness by +10%",
group =
"Quick keybinds"
}
),
awful.key(
{ },
"XF86MonBrightnessDown",
function ()
awful.spawn("xbacklight -dec 10")
end,
{ description =
"Decrease brightness by +10%",
group =
"Quick keybinds"
}
),
-- Display configuration
awful.key(
{ },
"XF86Display",
function ()
awful.spawn("arandr")
end,
{ description =
"Configure the display using arandr",
group = "Quick keybinds"
}
),
-- apps (Super + a followed by KEY)
awful.key(
{ modkey },
"a",
function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then
return
end
if key == "1" then
awful.util.spawn(apps.editor)
elseif key == "2" then
awful.util.spawn(apps.file)
elseif key == "3" then
awful.util.spawn(apps.browser)
elseif key == "4" then
awful.util.spawn(apps.chat)
elseif key == "5" then
awful.util.spawn(apps.music)
elseif key == "8" then
awful.util.spawn(apps.office)
elseif key == "9" then
awful.util.spawn(apps.game)
end
awful.keygrabber.stop(grabber)
end
)
end,
{ description =
"Launch apps with {Super + a} keychord and then numbers from {1 to 9}",
group =
"Quick keybinds"
}
),
-- Keyboard layouts (Super + x followed by KEY)
awful.key(
{ modkey },
"x",
function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then
return
end
if key == "e" then
awful.util.spawn("setxkbmap es")
elseif key == "u" then
awful.util.spawn("setxkbmap us")
end
awful.keygrabber.stop(grabber)
end
)
end,
{ description =
"Change keyboard layout with {Super + x} keychord and then {e} for spanish and {u} for english",
group =
"Quick keybinds"
}
),
-- Dmenu scripts (Super + p followed by KEY)
awful.key(
{ modkey },
"p",
function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then
return
end
if key == "d" then
awful.spawn.with_shell("rofi -show drun -show-icons")
elseif key == "r" then
awful.spawn.with_shell("rofi -show run")
elseif key == "e" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_edit")
elseif key == "q" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_power")
elseif key == "i" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_wifi")
elseif key == "b" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_blue")
elseif key == "s" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_scrot")
elseif key == "z" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_emoji")
elseif key == "w" then
awful.spawn.with_shell("$HOME/.config/rofi/scripts/rofi_wall")
end
awful.keygrabber.stop(grabber)
end
)
end,
{ description =
"Launch quick action menus with {Super + p} keychord and then {d, r, e, q, i, b, s, z, w}",
group =
"Quick keybinds" }
),
-- Terminal scripts (Super + t followed by KEY)
awful.key(
{ modkey },
"t",
function()
local grabber
grabber =
awful.keygrabber.run(
function(_, key, event)
if event == "release" then
return
end
if key == "m" then
awful.spawn.with_shell("alacritty --title youm --class youm,youm -e ytfzf -mlst")
elseif key == "y" then
awful.spawn.with_shell("alacritty --title ytfzf --class ytfzf,ytfzf -e ytfzf -flst")
elseif key == "a" then
awful.spawn.with_shell("alacritty --title ani-cli --class ani-cli,ani-cli -e ani-cli -f")
elseif key == "f" then
awful.spawn.with_shell("alacritty --title flix-cli --class flix-cli,flix-cli -e flix-cli")
end
awful.keygrabber.stop(grabber)
end
)
end,
{ description =
"Launch multimedia terminal scripts with {Super + t} and then {m, y, a, f}",
group =
"Quick keybinds"
}
),
}
)
--[[ ]]

View file

@ -0,0 +1,52 @@
local awful = require("awful")
-- Window related mouse bindings
client.connect_signal(
"request::default_mousebindings",
function()
awful.mouse.append_client_mousebindings(
{
awful.button(
{ },
1,
function(c)
c:activate {context = "mouse_click"}
end
),
awful.button(
{ modkey },
1,
function(c)
c:activate {context = "mouse_click", action = "mouse_move"}
end
),
awful.button(
{ modkey },
3,
function(c)
c:activate {context = "mouse_click", action = "mouse_resize"}
end
)
}
)
end
)
-- Mouse bindings on desktop
awful.mouse.append_global_mousebindings(
{
awful.button(
{ },
4,
awful.tag.viewprev
),
awful.button(
{ },
5,
awful.tag.viewnext
)
}
)
-- 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)

View file

@ -0,0 +1,264 @@
local floor = math.floor
local max = math.max
local mouse = mouse
local mousegrabber = mousegrabber
local screen = screen
local centerwork = {
name = "centerwork",
horizontal = { name = "centerworkh" }
}
local function arrange(p, layout)
local t = p.tag or screen[p.screen].selected_tag
local wa = p.workarea
local cls = p.clients
if #cls == 0 then return end
local g = {}
-- Main column, fixed width and height
local mwfact = t.master_width_factor
local mainhei = floor(wa.height * mwfact)
local mainwid = floor(wa.width * mwfact)
local slavewid = wa.width - mainwid
local slaveLwid = floor(slavewid / 2)
local slaveRwid = slavewid - slaveLwid
local slavehei = wa.height - mainhei
local slaveThei = floor(slavehei / 2)
local slaveBhei = slavehei - slaveThei
local nbrFirstSlaves = floor(#cls / 2)
local nbrSecondSlaves = floor((#cls - 1) / 2)
local slaveFirstDim, slaveSecondDim = 0, 0
if layout.name == "centerwork" then -- vertical
if nbrFirstSlaves > 0 then slaveFirstDim = floor(wa.height / nbrFirstSlaves) end
if nbrSecondSlaves > 0 then slaveSecondDim = floor(wa.height / nbrSecondSlaves) end
g.height = wa.height
g.width = mainwid
g.x = wa.x + slaveLwid
g.y = wa.y
else -- horizontal
if nbrFirstSlaves > 0 then slaveFirstDim = floor(wa.width / nbrFirstSlaves) end
if nbrSecondSlaves > 0 then slaveSecondDim = floor(wa.width / nbrSecondSlaves) end
g.height = mainhei
g.width = wa.width
g.x = wa.x
g.y = wa.y + slaveThei
end
g.width = max(g.width, 1)
g.height = max(g.height, 1)
p.geometries[cls[1]] = g
-- Auxiliary clients
if #cls <= 1 then return end
for i = 2, #cls do
g = {}
local idxChecker, dimToAssign
local rowIndex = floor(i/2)
if layout.name == "centerwork" then
if i % 2 == 0 then -- left slave
g.x = wa.x
g.y = wa.y + (rowIndex - 1) * slaveFirstDim
g.width = slaveLwid
idxChecker, dimToAssign = nbrFirstSlaves, slaveFirstDim
else -- right slave
g.x = wa.x + slaveLwid + mainwid
g.y = wa.y + (rowIndex - 1) * slaveSecondDim
g.width = slaveRwid
idxChecker, dimToAssign = nbrSecondSlaves, slaveSecondDim
end
-- if last slave in row, use remaining space for it
if rowIndex == idxChecker then
g.height = wa.y + wa.height - g.y
else
g.height = dimToAssign
end
else
if i % 2 == 0 then -- top slave
g.x = wa.x + (rowIndex - 1) * slaveFirstDim
g.y = wa.y
g.height = slaveThei
idxChecker, dimToAssign = nbrFirstSlaves, slaveFirstDim
else -- bottom slave
g.x = wa.x + (rowIndex - 1) * slaveSecondDim
g.y = wa.y + slaveThei + mainhei
g.height = slaveBhei
idxChecker, dimToAssign = nbrSecondSlaves, slaveSecondDim
end
-- if last slave in row, use remaining space for it
if rowIndex == idxChecker then
g.width = wa.x + wa.width - g.x
else
g.width = dimToAssign
end
end
g.width = max(g.width, 1)
g.height = max(g.height, 1)
p.geometries[cls[i]] = g
end
end
local function mouse_resize_handler(c, _, _, _, orientation)
local wa = c.screen.workarea
local mwfact = c.screen.selected_tag.master_width_factor
local g = c:geometry()
local offset = 0
local cursor = "cross"
local corner_coords
if orientation == 'vertical' then
if g.height + 15 >= wa.height then
offset = g.height * .5
cursor = "sb_h_double_arrow"
elseif g.y + g.height + 15 <= wa.y + wa.height then
offset = g.height
end
corner_coords = { x = wa.x + wa.width * (1 - mwfact) / 2, y = g.y + offset }
else
if g.width + 15 >= wa.width then
offset = g.width * .5
cursor = "sb_v_double_arrow"
elseif g.x + g.width + 15 <= wa.x + wa.width then
offset = g.width
end
corner_coords = { y = wa.y + wa.height * (1 - mwfact) / 2, x = g.x + offset }
end
mouse.coords(corner_coords)
local prev_coords = {}
mousegrabber.run(function(m)
if not c.valid then return false end
for _, v in ipairs(m.buttons) do
if v then
prev_coords = { x = m.x, y = m.y }
local new_mwfact
if orientation == 'vertical' then
new_mwfact = 1 - (m.x - wa.x) / wa.width * 2
else
new_mwfact = 1 - (m.y - wa.y) / wa.height * 2
end
c.screen.selected_tag.master_width_factor = math.min(math.max(new_mwfact, 0.01), 0.99)
return true
end
end
return prev_coords.x == m.x and prev_coords.y == m.y
end, cursor)
end
function centerwork.arrange(p)
return arrange(p, centerwork)
end
function centerwork.horizontal.arrange(p)
return arrange(p, centerwork.horizontal)
end
function centerwork.mouse_resize_handler(c, corner, x, y)
return mouse_resize_handler(c, corner, x, y, 'vertical')
end
function centerwork.horizontal.mouse_resize_handler(c, corner, x, y)
return mouse_resize_handler(c, corner, x, y, 'horizontal')
end
--[[
Make focus.byidx and swap.byidx behave more consistently with other layouts.
--]]
local awful = require("awful")
local gears = require("gears")
local client = client
local function compare_position(a, b)
if a.x == b.x then
return a.y < b.y
else
return a.x < b.x
end
end
local function clients_by_position()
local this = client.focus
if this then
local sorted = {}
for _, c in ipairs(client.focus.first_tag:clients()) do
if not c.minimized then sorted[#sorted+1] = c end
end
table.sort(sorted, compare_position)
local idx = 0
for i, that in ipairs(sorted) do
if this.window == that.window then
idx = i
end
end
if idx > 0 then
return { sorted = sorted, idx = idx }
end
end
return {}
end
local function in_centerwork()
return client.focus and client.focus.first_tag.layout.name == "centerwork"
end
centerwork.focus = {}
--[[
Drop in replacements for awful.client.focus.byidx and awful.client.swap.byidx
that behaves consistently with other layouts.
--]]
function centerwork.focus.byidx(i)
if in_centerwork() then
local cls = clients_by_position()
if cls.idx then
local target = cls.sorted[gears.math.cycle(#cls.sorted, cls.idx + i)]
awful.client.focus.byidx(0, target)
end
else
awful.client.focus.byidx(i)
end
end
centerwork.swap = {}
function centerwork.swap.byidx(i)
if in_centerwork() then
local cls = clients_by_position()
if cls.idx then
local target = cls.sorted[gears.math.cycle(#cls.sorted, cls.idx + i)]
client.focus:swap(target)
end
else
awful.client.swap.byidx(i)
end
end
return centerwork

View file

@ -1,10 +1,11 @@
-- Imports -- Imports
local beautiful = require("beautiful") local beautiful = require("beautiful")
beautiful.init(string.format("%s/.config/awesome/theme/theme.lua", os.getenv("HOME"))) -- Selected theme beautiful.init(string.format("%s/.config/awesome/ui/theme.lua", os.getenv("HOME"))) -- Selected theme
require("core.helpers") require("helpers")
require("core.apps") require("apps")
require("core.layouts") require("ui.layouts")
require("core.bar.bar") require("ui.bar")
require("core.bindings") require("keymaps.keyboard")
require("core.rules") require("keymaps.mouse")
require("core.autostart") require("ui.rules")
require("autostart")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 885 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

View file

@ -1,96 +0,0 @@
-- {{{ Imports
local gears = require("gears")
local dpi = require("beautiful.xresources").apply_dpi
local beautiful = require("beautiful")
-- }}}
local themes_path = string.format("%s/.config/awesome/theme/", os.getenv("HOME"))
-- {{{ Main
local theme = {}
-- }}}
-- {{{ theme font
theme.font = "mononoki Nerd Font 12"
--- }}}
-- {{{ bar colors
theme.bar_bg_one = "#427b58"
theme.bar_bg_two = "#b57614"
theme.bar_bg_tre = "#9d0006"
theme.bar_bg_for = "#076678"
theme.bar_bg_fiv = "#8f3f71"
theme.bar_clock = "#3c3836"
--- }}}
-- {{{ Colors
theme.fg_normal = "#ebdbb2"
theme.fg_focus = "#dfc4a1"
theme.fg_urgent = "#fbf1c7"
theme.bg_normal = "#1d2021"
theme.bg_focus = "#3c3836"
theme.bg_urgent = "#a89984"
-- }}}
-- {{{ Borders
beautiful.gap_single_client = false
theme.useless_gap = dpi(0)
theme.border_width = dpi(1)
theme.border_normal = "#504945"
theme.border_focus = "#9d0006"
theme.border_marked = "#9d0006"
-- }}}
-- {{{ Taglist
theme.taglist_font = "mononoki Nerd Font Mono 24"
theme.taglist_fg_focus = "#fb4934"
theme.taglist_fg_occupied = "#8ec07c"
theme.taglist_fg_urgent = "#504945"
theme.taglist_fg_empty = "#a89984"
theme.taglist_spacing = 5
-- }}}
-- {{{ Notifications
theme.notification_font = "mononoki Nerd Font Mono 12"
theme.notification_bg = "#282828"
theme.notification_fg = "#fbf1c7"
theme.notification_shape = gears.shape.rounded_rect
-- }}}
-- {{{ Hotkeys Popup
theme.hotkeys_bg = "#282828"
theme.hotkeys_fg = "#ebdbb2"
theme.hotkeys_modifiers_fg = "#458588"
theme.hotkeys_label_bg = "#fabd2f"
theme.hotkeys_label_fg = "#1d2021"
theme.hotkeys_group_margin = dpi(20)
theme.hotkeys_description_font = "mononoki Nerd Font Mono 12"
theme.hotkeys_font = "mononoki Nerd Font Mono 12"
-- }}}
-- {{{ Mouse finder
theme.mouse_finder_color = "#cc241d"
theme.mouse_finder_radius = dpi(5)
theme.mouse_finder_timeout = 10
-- }}}
-- {{{ Layout
theme.layout_tile = themes_path .. "layouts/tile.png"
theme.layout_tileleft = themes_path .. "layouts/tileleft.png"
theme.layout_tilebottom = themes_path .. "layouts/tilebottom.png"
theme.layout_tiletop = themes_path .. "layouts/tiletop.png"
theme.layout_fairv = themes_path .. "layouts/fairv.png"
theme.layout_fairh = themes_path .. "layouts/fairh.png"
theme.layout_spiral = themes_path .. "layouts/spiral.png"
theme.layout_dwindle = themes_path .. "layouts/dwindle.png"
theme.layout_max = themes_path .. "layouts/max.png"
theme.layout_fullscreen = themes_path .. "layouts/fullscreen.png"
theme.layout_magnifier = themes_path .. "layouts/magnifier.png"
theme.layout_floating = themes_path .. "layouts/floating.png"
theme.layout_cornernw = themes_path .. "layouts/cornernw.png"
theme.layout_cornerne = themes_path .. "layouts/cornerne.png"
theme.layout_cornersw = themes_path .. "layouts/cornersw.png"
theme.layout_cornerse = themes_path .. "layouts/cornerse.png"
-- }}}
return theme

View file

@ -0,0 +1,233 @@
--- {{{ Imports
local wibox = require("wibox")
local gears = require("gears")
local awful = require("awful")
local theme = require("ui.theme")
local separators = require("ui.custom-widgets.separator")
--- }}}
-- Textclock widget
mytextclock = wibox.widget.textclock()
screen.connect_signal(
"request::desktop_decoration",
function(s)
-- Tag names for each screen
awful.tag(
{
"", -- EDITOR
"", -- FILE MANAGER
"", -- WEB BROWSER
"", -- CHAT
"", -- MUSIC
"", -- VIDEO
"", -- IMAGE/EDIT TOOLS
"", -- OFFICE
"" -- GAMES
},
s,
awful.layout.layouts[1]
)
-- Layoutbox widget
s.mylayoutbox = awful.widget.layoutbox {
screen = s,
buttons = {
awful.button(
{ },
1,
function ()
awful.layout.inc(1)
end
),
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
),
}
}
-- Custom widgets
-- Volume widget
s.volume =
awful.widget.watch(
".config/awesome/ui/custom-widgets/volume",
1 -- Update time in seconds
)
-- Battery widget
s.battery =
awful.widget.watch(
".config/awesome/ui/custom-widgets/battery",
10 -- Update time in seconds
)
-- Wifi widget
s.wifi =
awful.widget.watch(
".config/awesome/ui/custom-widgets/wifi",
10 -- Update time in seconds
)
-- Brightness widget
s.brightness =
awful.widget.watch(
".config/awesome/ui/custom-widgets/brightness",
1 -- Update time in seconds
)
-- Keyboard layout widget
s.layout =
awful.widget.watch(
".config/awesome/ui/custom-widgets/layout",
1 -- Update time in seconds
)
-- Taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = {
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.viewprev(t.screen)
end
),
awful.button(
{ },
5,
function(t)
awful.tag.viewnext(t.screen)
end
),
}
}
-- Separators
local spr = wibox.widget.textbox(" ")
local spr_one_dl = separators.arrow_left(theme.bg_normal, theme.bar_bg_one)
local spr_one_ld = separators.arrow_left(theme.bar_bg_one, theme.bar_bg_two)
local spr_two_dl = separators.arrow_left(theme.bar_bg_two, theme.bar_bg_two)
local spr_two_ld = separators.arrow_left(theme.bar_bg_two, theme.bar_bg_tre)
local spr_tre_dl = separators.arrow_left(theme.bar_bg_tre, theme.bar_bg_tre)
local spr_tre_ld = separators.arrow_left(theme.bar_bg_tre, theme.bar_bg_for)
local spr_for_dl = separators.arrow_left(theme.bar_bg_for, theme.bar_bg_for)
local spr_for_ld = separators.arrow_left(theme.bar_bg_for, theme.bar_bg_fiv)
local spr_fiv_dl = separators.arrow_left(theme.bar_bg_fiv, theme.bar_bg_fiv)
-- Wibox
s.mywibox = awful.wibar {
position = "top",
screen = s,
widget = {
layout = wibox.layout.stack,
{
layout = wibox.layout.align.horizontal,
{
-- [[ Left widgets ]]
layout = wibox.layout.fixed.horizontal,
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Layoubox widget
s.mylayoutbox,
wibox.widget.textbox(" "),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Taglist widget
s.mytaglist,
wibox.widget.textbox(" "),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
},
nil,
{
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- [[ Right widgets ]]
layout = wibox.layout.fixed.horizontal,
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Keyboar layout widget
wibox.container.background(spr_one_dl, theme.bar_bg_one),
wibox.container.background(spr, theme.bar_bg_one),
wibox.container.background(s.layout, theme.bar_bg_one),
wibox.container.background(spr, theme.bar_bg_one),
wibox.container.background(spr_one_ld, theme.bar_bg_one),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Volume widget
wibox.container.background(spr_two_dl, theme.bar_bg_two),
wibox.container.background(s.volume, theme.bar_bg_two),
wibox.container.background(spr, theme.bar_bg_two),
spr_two_ld,
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Brightness widget
wibox.container.background(spr_tre_dl, theme.bar_bg_tre),
wibox.container.background(s.brightness, theme.bar_bg_tre),
wibox.container.background(spr, theme.bar_bg_tre),
wibox.container.background(spr_tre_ld, theme.bar_bg_tre),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Battery widget
wibox.container.background(spr_for_dl, theme.bar_bg_for),
wibox.container.background(s.battery, theme.bar_bg_for),
wibox.container.background(spr, theme.bar_bg_for),
wibox.container.background(spr_for_ld, theme.bar_bg_for),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Wifi widget
wibox.container.background(spr_fiv_dl, theme.bar_bg_fiv),
wibox.container.background(s.wifi, theme.bar_bg_fiv),
wibox.container.background(spr, theme.bar_bg_fiv),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
},
},
{
-- [[ Center widgets ]]
-- Clock widget
wibox.container.background(mytextclock, theme.bar_clock),
valign = "center",
halign = "center",
layout = wibox.container.place,
}
}
}
end
)

View file

@ -14,7 +14,7 @@ for battery in /sys/class/power_supply/BAT?*; do
# Sets up the status and capacity # Sets up the status and capacity
case "$(cat "$battery/status" 2>&1)" in case "$(cat "$battery/status" 2>&1)" in
"Full") status="" ;; "Full") status="" ;;
"Discharging") status="" ;; "Discharging") status="" ;;
"Charging") status="" ;; "Charging") status="" ;;
"Not charging") status="" ;; "Not charging") status="" ;;
"Unknown") status="" ;; "Unknown") status="" ;;
@ -22,7 +22,7 @@ for battery in /sys/class/power_supply/BAT?*; do
esac esac
capacity="$(cat "$battery/capacity" 2>&1)" capacity="$(cat "$battery/capacity" 2>&1)"
# Will make a warn variable if discharging and low # Will make a warn variable if discharging and low
[ "$status" = "" ] && [ "$capacity" -le 25 ] && warn="" [ "$status" = "" ] && [ "$capacity" -le 25 ] && warn=""
# Prints the info # Prints the info
printf "%s%s%d%%%s" "$status" "$warn " "$capacity" " $pwr"; unset warn printf "%s%s%d%%%s" "$status" "$warn " "$capacity" " $pwr"; unset warn
done && printf "\\n" done && printf "\\n"

View file

@ -100,7 +100,6 @@ function separators.arrow_left(col1, col2)
cr:fill() cr:fill()
end end
end end
return widget return widget
end end
-- ]] -- ]]

View file

@ -0,0 +1,14 @@
#!/bin/bash
# Prints the current volume or 🔇 if muted.
[ $(pamixer --get-mute) = true ] && echo " " && exit
vol="$(pamixer --get-volume)"
if [ "$vol" -gt "50" ]; then
icon=""
elif [ "$vol" -gt "10" ]; then
icon=""
elif [ "$vol" -gt "0" ]; then
icon=""
else
echo "  " && exit
fi
echo -e "$icon $vol%"

View file

@ -0,0 +1,12 @@
#!/bin/bash
constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1)
currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1)
if [ "$constate" = "disconnected" ]; then
echo "睊 "
elif [ "$constate" = "connected" ]; then
echo "直 $currentwfi"
else
notify-send " Airplane mode activated"
echo " "
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

View file

@ -0,0 +1,28 @@
local awful = require("awful")
-- Custom added layouts
local centerwork = require("modules.custom-layouts.centerwork")
-- {{{ Selected layouts
tag.connect_signal(
"request::default_layouts",
function()
awful.layout.append_default_layouts(
{
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
centerwork,
-- 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.corner.nw,
awful.layout.suit.floating,
}
)
end
)
-- }}}

View file

@ -0,0 +1,170 @@
local awful = require("awful")
local ruled = require("ruled")
-- Rules to apply to new clients.
ruled.client.connect_signal(
"request::rules",
function()
-- All clients will match this rule.
ruled.client.append_rule {
id = "global",
rule = { },
properties = {
focus = awful.client.focus.filter,
raise = true,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap + awful.placement.no_offscreen,
callback = awful.client.setslave
}
}
-- Floating clients.
ruled.client.append_rule {
id = "floating",
rule_any = {
hinstance = { "copyq", "pinentry" },
class = {
"Galculator",
"Blueman-manager",
"Gpick",
"Kruler",
"Tor Browser",
"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 }
}
-- TAG 1
ruled.client.append_rule {
rule_any = {
class = {
"Emacs",
"Godot",
"neovim",
"Virt-manager"
}
},
properties = { tag = "" },
}
-- TAG 2
ruled.client.append_rule {
rule_any = {
class = {
"vifm",
"pcmanfm",
"nemo"
}
},
properties = { tag = "" },
}
-- TAG 3
ruled.client.append_rule {
rule_any = {
class = {
"Brave-browser",
"librewolf",
"firefox",
"Chromium",
"Bitwarden",
"qutebrowser"
}
},
properties = { tag = "" }
}
-- TAG 4
ruled.client.append_rule {
rule_any = {
class = {
"gomuks",
"Signal",
"Element"
}
},
properties = { tag = "" }
}
-- TAG 5
ruled.client.append_rule {
rule_any = {
class = {
"cmus",
"musik",
"youm",
"Audacity",
"Ardour",
"Carla2",
"Carla2-Control"
}
},
properties = { tag = "" }
}
-- TAG 6
ruled.client.append_rule {
rule_any = {
class = {
"kdenlive",
"Blender",
"Natron",
"SimpleScreenRecorder",
"Ghb",
"obs",
"mpv",
"ani-cli",
"flix-cli",
"ytfzf"
}
},
properties = { tag = "" }
}
-- TAG 7
ruled.client.append_rule {
rule_any = {
class = {
"Qjackctl",
"lsp-plugins",
"qpwgraph",
"Gimp-2.10",
"krita",
"Inkscape",
"Xournalpp",
}
},
properties = { tag = "" }
}
-- TAG 8
ruled.client.append_rule {
rule_any = {
class = {
"DesktopEditors",
"Soffice",
"libreoffice-startcenter",
"Joplin"
}
},
properties = { tag = "" }
}
-- TAG 9
ruled.client.append_rule {
rule_any = {
class = {
"retroarch",
"steam"
}
},
properties = { tag = "" }
}
--}}}
end
)

View file

@ -0,0 +1,98 @@
-- {{{ Imports
local gears = require("gears")
local gcolor = require("gears.color")
local dpi = require("beautiful.xresources").apply_dpi
local beautiful = require("beautiful")
-- }}}
local themes_path = string.format("%s/.config/awesome/ui/", os.getenv("HOME"))
-- {{{ Main
local theme = {}
-- }}}
-- {{{ theme font
theme.font = "mononoki Nerd Font 12"
--- }}}
-- {{{ bar colors
theme.bar_bg_one = "#9ece6a"
theme.bar_bg_two = "#ff9e64"
theme.bar_bg_tre = "#f7768e"
theme.bar_bg_for = "#7aa2f7"
theme.bar_bg_fiv = "#bb9af7"
theme.bar_clock = "#a9b1d6"
--- }}}
-- {{{ Colors
theme.fg_normal = "#1a1b26"
theme.fg_focus = "#a9b1d6"
theme.fg_urgent = "#c0caf5"
theme.bg_normal = "#1a1b26"
theme.bg_focus = "#363b54"
theme.bg_urgent = "#787c99"
-- }}}
-- {{{ Borders
beautiful.gap_single_client = false
theme.useless_gap = dpi(0)
theme.border_width = dpi(1)
theme.border_normal = "#363b54"
theme.border_focus = "#7aa2f7"
theme.border_marked = "#7aa2f7"
-- }}}
-- {{{ Taglist
theme.taglist_font = "mononoki Nerd Font Mono 22"
theme.taglist_fg_focus = "#f7768e"
theme.taglist_fg_occupied = "#c0caf5"
theme.taglist_fg_urgent = "#bb9af7"
theme.taglist_fg_empty = "#565f89"
theme.taglist_spacing = 5
-- }}}
-- {{{ Notifications
theme.notification_font = "mononoki Nerd Font 12"
theme.notification_bg = "#1a1b26"
theme.notification_fg = "#c0caf5"
theme.notification_shape = gears.shape.rounded_rect
-- }}}
-- {{{ Hotkeys Popup
theme.hotkeys_bg = "#1a1b26"
theme.hotkeys_fg = "#a9b1d6"
theme.hotkeys_modifiers_fg = "#41a6b5"
theme.hotkeys_label_bg = "#e0af68"
theme.hotkeys_label_fg = "#1a1b26"
theme.hotkeys_group_margin = dpi(20)
theme.hotkeys_description_font = "mononoki Nerd Font 12"
theme.hotkeys_font = "mononoki Nerd Font 12"
-- }}}
-- {{{ Mouse finder
theme.mouse_finder_color = "#f7768e"
theme.mouse_finder_radius = dpi(5)
theme.mouse_finder_timeout = 10
-- }}}
-- {{{ Layout
theme.layout_tile = gcolor.recolor_image(themes_path .. "layout-icons/tilew.png", theme.fg_urgent)
theme.layout_centerwork = gcolor.recolor_image(themes_path .. "layout-icons/centerworkw.png", theme.fg_urgent)
theme.layout_tileleft = gcolor.recolor_image(themes_path .. "layout-icons/tileleftw.png", theme.fg_urgent)
theme.layout_tilebottom = gcolor.recolor_image(themes_path .. "layout-icons/tilebottomw.png", theme.fg_urgent)
theme.layout_tiletop = gcolor.recolor_image(themes_path .. "layout-icons/tiletopw.png", theme.fg_urgent)
theme.layout_fairv = gcolor.recolor_image(themes_path .. "layout-icons/fairvw.png", theme.fg_urgent)
theme.layout_fairh = gcolor.recolor_image(themes_path .. "layout-icons/fairhw.png", theme.fg_urgent)
theme.layout_spiral = gcolor.recolor_image(themes_path .. "layout-icons/spiralw.png", theme.fg_urgent)
theme.layout_dwindle = gcolor.recolor_image(themes_path .. "layout-icons/dwindlew.png", theme.fg_urgent)
theme.layout_max = gcolor.recolor_image(themes_path .. "layout-icons/maxw.png", theme.fg_urgent)
theme.layout_fullscreen = gcolor.recolor_image(themes_path .. "layout-icons/fullscreenw.png", theme.fg_urgent)
theme.layout_magnifier = gcolor.recolor_image(themes_path .. "layout-icons/magnifierw.png", theme.fg_urgent)
theme.layout_floating = gcolor.recolor_image(themes_path .. "layout-icons/floatingw.png", theme.fg_urgent)
theme.layout_cornernw = gcolor.recolor_image(themes_path .. "layout-icons/cornernw.png", theme.fg_urgent)
theme.layout_cornerne = gcolor.recolor_image(themes_path .. "layout-icons/cornerne.png", theme.fg_urgent)
theme.layout_cornersw = gcolor.recolor_image(themes_path .. "layout-icons/cornersw.png", theme.fg_urgent)
theme.layout_cornerse = gcolor.recolor_image(themes_path .. "layout-icons/cornerse.png", theme.fg_urgent)
-- }}}
return theme

View file

@ -0,0 +1,68 @@
{
"browse_category_filter": "^F",
"browse_playlists_delete": "KEY_DC",
"browse_playlists_new": "M-n",
"browse_playlists_rename": "M-r",
"browse_playlists_save": "M-s",
"context_menu": "M-enter",
"hotkeys_backup": "M-b",
"hotkeys_reset_to_default": "M-r",
"key_down": "j",
"key_end": "KEY_END",
"key_home": "KEY_HOME",
"key_left": "h",
"key_page_down": "KEY_NPAGE",
"key_page_up": "KEY_PPAGE",
"key_right": "l",
"key_up": "k",
"lyrics_retry": "r",
"metadata_rescan": "^R",
"navigate_console": "`",
"navigate_hotkeys": "?",
"navigate_jump_to_playing": "x",
"navigate_library": "a",
"navigate_library_album_artists": "4",
"navigate_library_browse": "b",
"navigate_library_browse_albums": "2",
"navigate_library_browse_artists": "1",
"navigate_library_browse_directories": "d",
"navigate_library_browse_genres": "3",
"navigate_library_choose_category": "6",
"navigate_library_filter": "f",
"navigate_library_play_queue": "n",
"navigate_library_playlists": "5",
"navigate_library_tracks": "t",
"navigate_lyrics": "^L",
"navigate_settings": "s",
"play_queue_clear": "X",
"play_queue_delete": "KEY_DC",
"play_queue_hot_swap": "M-a",
"play_queue_move_down": "M-down",
"play_queue_move_up": "M-up",
"play_queue_playlist_delete": "M-x",
"play_queue_playlist_load": "M-l",
"play_queue_playlist_rename": "M-r",
"play_queue_playlist_save": "M-s",
"playback_next": "M-l",
"playback_previous": "M-j",
"playback_seek_back": "u",
"playback_seek_back_proportional": "y",
"playback_seek_forward": "o",
"playback_seek_forward_proportional": "p",
"playback_stop": "^X",
"playback_toggle_mute": "m",
"playback_toggle_pause": "^P",
"playback_toggle_repeat": ".",
"playback_toggle_shuffle": ",",
"playback_volume_down": "M-k",
"playback_volume_up": "M-i",
"search_input_toggle_match_type": "M-m",
"show_equalizer": "^E",
"toggle_visualizer": "v",
"track_list_change_sort_order": "M-s",
"track_list_next_group": "]",
"track_list_play_from_top": "M-P",
"track_list_previous_group": "[",
"track_list_rate_track": "r",
"view_refresh": "KEY_F(5)"
}

View file

@ -5,36 +5,36 @@
## /_____/_/ \__,_/_/|_|\___/ My custom zathura config ## /_____/_/ \__,_/_/|_|\___/ My custom zathura config
## ##
set font "mononoki Nerd Font 9" set font "mononoki Nerd Font 10"
set default-bg "#262626" #00 set default-bg "#1a1b26" #00
set default-fg "#ebdbb2" #01 set default-fg "#a9b1d6" #01
set statusbar-fg "#ebdbb2" #04 set statusbar-fg "#a9b1d6" #04
set statusbar-bg "#262626" #01 set statusbar-bg "#1a1b26" #01
set inputbar-bg "#262626" #00 currently not used set inputbar-bg "#1a1b26" #00 currently not used
set inputbar-fg "#ebdbb2" #02 set inputbar-fg "#a9b1d6" #02
set notification-error-bg "#262626" #08 set notification-error-bg "#1a1b26" #08
set notification-error-fg "#cc241d" #00 set notification-error-fg "#f7768e" #00
set notification-warning-bg "#262626" #08 set notification-warning-bg "#1a1b26" #08
set notification-warning-fg "#d79921" #00 set notification-warning-fg "#e0af68" #00
set highlight-color "#262626" #0A set highlight-color "#1a1b26" #0A
set highlight-active-color "#ebdbb2" #0D set highlight-active-color "#a9b1d6" #0D
set completion-highlight-fg "#4e4e4e" #02 set completion-highlight-fg "#787c99" #02
set completion-highlight-bg "#87afaf" #0C set completion-highlight-bg "#7aa2f7" #0C
set completion-bg "#4e4e4e" #02 set completion-bg "#787c99" #02
set completion-fg "#ebdbb2" #0C set completion-fg "#a9b1d6" #0C
set notification-bg "#262626" #0B set notification-bg "#1a1b26" #0B
set notification-fg "#458588" #00 set notification-fg "#41a6b5" #00
set recolor-lightcolor "#262626" #00 set recolor-lightcolor "#1a1b26" #00
set recolor-darkcolor "#ebdbb2" #06 set recolor-darkcolor "#a9b1d6" #06
set recolor "true" set recolor "true"
# setting recolor-keep true will keep any color your pdf has. # setting recolor-keep true will keep any color your pdf has.

View file

@ -1,14 +1,18 @@
gtk-theme-name="gruvbox-dark-gtk" # DO NOT EDIT! This file will be overwritten by LXAppearance.
gtk-icon-theme-name="gruvbox-dark-icons-gtk" # Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/drk/.gtkrc-2.0.mine"
gtk-theme-name="Tokyonight-Dark-BL"
gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="mononoki Nerd Font 10" gtk-font-name="mononoki Nerd Font 10"
gtk-cursor-theme-name="Simp1e-Gruvbox-Dark" gtk-cursor-theme-name="Simp1e-Tokyo-Night"
gtk-cursor-theme-size=0 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0 gtk-button-images=1
gtk-menu-images=0 gtk-menu-images=1
gtk-enable-event-sounds=1 gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1 gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1 gtk-xft-antialias=1
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium" gtk-xft-hintstyle="hintfull"

Some files were not shown because too many files have changed in this diff Show more