This commit is contained in:
Darius Drake 2023-02-04 00:44:45 -04:00
parent 15be5592af
commit 725249649a
11 changed files with 276 additions and 27 deletions

View file

@ -0,0 +1,62 @@
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom newsboat config
##
show-read-feeds yes
auto-reload yes
external-url-viewer "urlscan -dc -r 'linkhandler {}'"
bind-key j down
bind-key k up
bind-key j next articlelist
bind-key k prev articlelist
bind-key J next-feed articlelist
bind-key K prev-feed articlelist
bind-key G end
bind-key g home
bind-key d pagedown
bind-key u pageup
bind-key l open
bind-key h quit
bind-key a toggle-article-read
bind-key n next-unread
bind-key N prev-unread
bind-key D pb-download
bind-key U show-urls
bind-key x pb-delete
color listnormal cyan default
color listfocus black yellow standout bold
color listnormal_unread blue default
color listfocus_unread yellow default bold
color info red black bold
color article white default bold
browser linkhandler
macro , open-in-browser
macro t set browser "qndl" ; open-in-browser ; set browser linkhandler
macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler
macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
macro w set browser "lynx" ; open-in-browser ; set browser linkhandler
macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler
macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler
macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler
macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler
macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler
highlight all "---.*---" yellow
highlight feedlist ".*(0/0))" black
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
highlight article "(^Link:.*|^Date:.*)" default default
highlight article "https?://[^ ]+" green default
highlight article "^(Title):.*$" blue default
highlight article "\\[[0-9][0-9]*\\]" magenta default bold
highlight article "\\[image\\ [0-9]+\\]" green default bold
highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
highlight article ":.*\\(link\\)$" cyan default
highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default

View file

@ -0,0 +1,38 @@
http://static.fsf.org/fsforg/rss/news.xml "FSF News"
http://static.fsf.org/fsforg/rss/blogs.xml "FSF Blogs"
https://dot.kde.org/rss.xml "KDE Dot News"
https://planet.kde.org/global/atom.xml "Planet KDE"
https://thisweek.gnome.org/index.xml "This Week on GNOME"
https://www.omgubuntu.co.uk/feed "OMG Ubuntu!"
https://thelinuxexp.com/feed.xml "The Linux Experiment"
https://techhut.tv/feed/ "Techhut Media"
https://itsfoss.com/rss/ "Its FOSS!"
https://thelinuxcast.org/feed/feed.xml "The Linux Cast"
https://9to5linux.com/feed/atom "9to5Linux"
https://blog.elementary.io/feed.xml "elementary OS Blog"
https://blog.zorin.com/index.xml "Zorin OS Blog"
http://blog.linuxmint.com/?feed=rss2 "Linux Mint Blog"
https://lukesmith.xyz/rss.xml "Luke Smith"
https://notrelated.xyz/rss "Not Related"
https://landchad.net/rss.xml "Landchad"
https://based.cooking/rss.xml "Based Cooking"
https://artixlinux.org/feed.php "Artix Linux"
https://www.archlinux.org/feeds/news/ "Arch Linux"
https://switchedtolinux.com/tutorials?format=feed&type=rss "Switched to Linux - Tutorials"
https://switchedtolinux.com/tin-foil-hat-time?format=feed&type=rss "Switched to Linux - Tin Foil Hat Time"
https://switchedtolinux.com/news?format=feed&type=rss "Switched to Linux - Weekly News Roundup"
https://switchedtolinux.com/linux/distros?format=feed&type=rss "Switched to Linux - Distros"
https://switchedtolinux.com/linux/software/?format=feed&type=rss "Switched to Linux - Software"
https://switchedtolinux.com/linux/desktop-environments/?format=feed&type=rss "Switched to Linux - Desktop Environments"
https://www.gamingonlinux.com/article_rss.php "Gaming on linux"
https://hackaday.com/blog/feed/ "Hackaday"
https://opensource.com/feed "Opensource"
https://linux.softpedia.com/backend.xml "Softpedia Linux"
https://www.zdnet.com/topic/linux/rss.xml "Zdnet Linux"
https://www.phoronix.com/rss.php "Phoronix"
https://www.computerworld.com/index.rss "Computerworld"
https://www.networkworld.com/category/linux/index.rss "Networkworld Linux"
https://betanews.com/feed "Betanews Linux"
http://lxer.com/module/newswire/headlines.rss "Lxer"
https://distrowatch.com/news/dwd.xml "Distrowatch"
https://odysee.com/$/rss/@blenderdumbass:f "Blender Dumbass"

View file

@ -5,8 +5,8 @@
# - Dependencies: scrot, dmenu, notify-send # - Dependencies: scrot, dmenu, notify-send
## CREATING SCREENSHOT FOLDER ## ## CREATING SCREENSHOT FOLDER ##
mkdir -p "$HOME/pictures/screenshots" mkdir -p "$HOME/Pictures/Screenshots"
cd "$HOME/pictures/screenshots" || exit 0 cd "$HOME/Pictures/Screenshots" || exit 0
## CHOICES ## ## CHOICES ##
cho1="entire screen" cho1="entire screen"

View file

@ -5,7 +5,7 @@
# - Dependencies: dmenu, fd, feh # - Dependencies: dmenu, fd, feh
## MAIN VARIABLES AND COMMANDS ## ## MAIN VARIABLES AND COMMANDS ##
walldir="pictures/wallpapers/" # wallpapers folder, change it to yours, make sure that it ends with a / walldir="Pictures/Wallpapers/" # wallpapers folder, change it to yours, make sure that it ends with a /
cd "$walldir" || exit cd "$walldir" || exit
## SELECT PICTURE FUNCTION ## ## SELECT PICTURE FUNCTION ##

View file

@ -31,11 +31,11 @@ const char *spcmd4[] = {"alacritty", "-t", "spani", "--class", "spani,spani", "-
const char *spcmd5[] = {"alacritty", "-t", "spytf", "--class", "spytf,spytf", "-e", "ytfzf", "-flst", NULL }; const char *spcmd5[] = {"alacritty", "-t", "spytf", "--class", "spytf,spytf", "-e", "ytfzf", "-flst", NULL };
const char *spcmd6[] = {"alacritty", "-t", "spamx", "--class", "spamx,spamx", "-e", "alsamixer", NULL }; const char *spcmd6[] = {"alacritty", "-t", "spamx", "--class", "spamx,spamx", "-e", "alsamixer", NULL };
const char *spcmd7[] = {"alacritty", "-t", "sppmx", "--class", "sppmx,sppmx", "-e", "pulsemixer", NULL }; const char *spcmd7[] = {"alacritty", "-t", "sppmx", "--class", "sppmx,sppmx", "-e", "pulsemixer", NULL };
const char *spcmd8[] = {"alacritty", "-t", "spcht", "--class", "spcht,spcht", "-e", "gomuks", NULL }; const char *spcmd8[] = {"alacritty", "-t", "spmsc", "--class", "spmsc,spmsc", "-e", "cmus", NULL };
const char *spcmd9[] = {"alacritty", "-t", "spmsc", "--class", "spmsc,spmsc", "-e", "cmus", NULL }; const char *spcmd9[] = {"alacritty", "-t", "spflm", "--class", "spflm,spflm", "-e", "./.config/vifm/scripts/vifmrun", NULL };
const char *spcmd10[] = {"alacritty", "-t", "spflm", "--class", "spflm,spflm", "-e", "./.config/vifm/scripts/vifmrun", NULL }; const char *spcmd10[] = {"alacritty", "-t", "sptot", "--class", "sptot,sptot", "-e", "tut", NULL };
const char *spcmd11[] = {"alacritty", "-t", "sptot", "--class", "sptot,sptot", "-e", "toot", "tui", NULL }; const char *spcmd11[] = {"alacritty", "-t", "spytm", "--class", "spytm,spytm", "-e", "ytfzf", "-mlst", NULL };
const char *spcmd12[] = {"alacritty", "-t", "spytm", "--class", "spytm,spytm", "-e", "ytfzf", "-mlst", NULL }; const char *spcmd12[] = {"alacritty", "-t", "sprss", "--class", "sprss,sprss", "-e", "newsboat", "-u", "~/.config/newsboat/urls", NULL };
static Sp scratchpads[] = { static Sp scratchpads[] = {
/* name cmd */ /* name cmd */
{"sptrm", spcmd1}, {"sptrm", spcmd1},
@ -45,11 +45,11 @@ static Sp scratchpads[] = {
{"spytf", spcmd5}, {"spytf", spcmd5},
{"spamx", spcmd6}, {"spamx", spcmd6},
{"sppmx", spcmd7}, {"sppmx", spcmd7},
{"spcht", spcmd8}, {"spmsc", spcmd8},
{"spmsc", spcmd9}, {"spflm", spcmd9},
{"spflm", spcmd10}, {"sptot", spcmd10},
{"sptot", spcmd11}, {"spytm", spcmd11},
{"spytm", spcmd12}, {"sprss", spcmd12},
}; };
/* tagging */ /* tagging */
@ -82,7 +82,7 @@ static const Rule rules[] = {
// test tag // test tag
{ "Virt-manager", NULL, NULL, 1, 0, -1 }, { "Virt-manager", NULL, NULL, 1, 0, -1 },
// web tag // web tag
{ "librewolf", NULL, NULL, 1 << 2, 0, -1 }, { "LibreWolf", NULL, NULL, 1 << 2, 0, -1 },
{ "firefox", NULL, NULL, 1 << 2, 0, -1 }, { "firefox", NULL, NULL, 1 << 2, 0, -1 },
{ "qutebrowser", NULL, NULL, 1 << 2, 0, -1 }, { "qutebrowser", NULL, NULL, 1 << 2, 0, -1 },
{ "Chromium", NULL, NULL, 1 << 2, 0, -1 }, { "Chromium", NULL, NULL, 1 << 2, 0, -1 },
@ -100,6 +100,7 @@ static const Rule rules[] = {
{ "Cadence", NULL, NULL, 1 << 4, 0, -1 }, { "Cadence", NULL, NULL, 1 << 4, 0, -1 },
// video tag // video tag
{ "kdenlive", NULL, NULL, 1 << 5, 0, -1 }, { "kdenlive", NULL, NULL, 1 << 5, 0, -1 },
{ "Pitivi", NULL, NULL, 1 << 5, 0, -1 },
{ "Blender", NULL, NULL, 1 << 5, 0, -1 }, { "Blender", NULL, NULL, 1 << 5, 0, -1 },
{ "Natron", NULL, NULL, 1 << 5, 0, -1 }, { "Natron", NULL, NULL, 1 << 5, 0, -1 },
{ "SimpleScreenRecorder", NULL, NULL, 1 << 5, 0, -1 }, { "SimpleScreenRecorder", NULL, NULL, 1 << 5, 0, -1 },
@ -126,11 +127,11 @@ static const Rule rules[] = {
{ NULL, "spytf", NULL, SPTAG(4), 1, -1 }, { NULL, "spytf", NULL, SPTAG(4), 1, -1 },
{ NULL, "spamx", NULL, SPTAG(5), 1, -1 }, { NULL, "spamx", NULL, SPTAG(5), 1, -1 },
{ NULL, "sppmx", NULL, SPTAG(6), 1, -1 }, { NULL, "sppmx", NULL, SPTAG(6), 1, -1 },
{ NULL, "spcht", NULL, SPTAG(7), 1, -1 }, { NULL, "spmsc", NULL, SPTAG(7), 1, -1 },
{ NULL, "spmsc", NULL, SPTAG(8), 1, -1 }, { NULL, "spflm", NULL, SPTAG(8), 1, -1 },
{ NULL, "spflm", NULL, SPTAG(9), 1, -1 }, { NULL, "sptot", NULL, SPTAG(9), 1, -1 },
{ NULL, "sptot", NULL, SPTAG(10), 1, -1 }, { NULL, "spytm", NULL, SPTAG(10), 1, -1 },
{ NULL, "spytm", NULL, SPTAG(11), 1, -1 }, { NULL, "sprss", NULL, SPTAG(11), 1, -1 },
}; };
// layout(s) // layout(s)
@ -165,12 +166,14 @@ static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray
// terminal // terminal
static const char *termcmd[] = { "alacritty", NULL }; static const char *termcmd[] = { "alacritty", NULL };
#include "movestack.c"
static const Key keys[] = { static const Key keys[] = {
/* modifier key function argument */ /* modifier key function argument */
// text editor // text editor
{ MODKEY, XK_e, spawn, SHCMD("emacsclient -c -a 'emacs'")}, { MODKEY, XK_e, spawn, SHCMD("emacsclient -c -a 'emacs'")},
// web browser // web browser
{ MODKEY, XK_w, spawn, SHCMD("qutebrowser")}, { MODKEY, XK_w, spawn, SHCMD("librewolf")},
// set keyboard layout to es // set keyboard layout to es
{ MODKEY|ControlMask, XK_e, spawn, SHCMD("setxkbmap -layout es")}, { MODKEY|ControlMask, XK_e, spawn, SHCMD("setxkbmap -layout es")},
// set keyboard layout to us // set keyboard layout to us
@ -214,6 +217,9 @@ static const Key keys[] = {
// increase and decrease master client size // increase and decrease master client size
{ MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} },
// move windows on stack
{ MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } },
{ MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } },
// switch master window // switch master window
{ MODKEY|ControlMask, XK_Return, zoom, {0} }, { MODKEY|ControlMask, XK_Return, zoom, {0} },
// switch to latest tag // switch to latest tag
@ -249,11 +255,11 @@ static const Key keys[] = {
{ MODKEY|ShiftMask, XK_y, togglescratch, {.ui = 4 } }, { MODKEY|ShiftMask, XK_y, togglescratch, {.ui = 4 } },
{ MODKEY|ShiftMask, XK_o, togglescratch, {.ui = 5 } }, { MODKEY|ShiftMask, XK_o, togglescratch, {.ui = 5 } },
{ MODKEY|ShiftMask, XK_p, togglescratch, {.ui = 6 } }, { MODKEY|ShiftMask, XK_p, togglescratch, {.ui = 6 } },
{ MODKEY|ShiftMask, XK_c, togglescratch, {.ui = 7 } }, { MODKEY|ShiftMask, XK_m, togglescratch, {.ui = 7 } },
{ MODKEY|ShiftMask, XK_m, togglescratch, {.ui = 8 } }, { MODKEY|ShiftMask, XK_v, togglescratch, {.ui = 8 } },
{ MODKEY|ShiftMask, XK_v, togglescratch, {.ui = 9 } }, { MODKEY|ShiftMask, XK_t, togglescratch, {.ui = 9 } },
{ MODKEY|ShiftMask, XK_t, togglescratch, {.ui = 10 } }, { MODKEY|ShiftMask, XK_n, togglescratch, {.ui = 10 } },
{ MODKEY|ShiftMask, XK_n, togglescratch, {.ui = 11 } }, { MODKEY|ShiftMask, XK_r, togglescratch, {.ui = 11 } },
// tag bindings // tag bindings
TAGKEYS( XK_1, 0) TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1) TAGKEYS( XK_2, 1)

View file

@ -0,0 +1,48 @@
void
movestack(const Arg *arg) {
Client *c = NULL, *p = NULL, *pc = NULL, *i;
if(arg->i > 0) {
/* find the client after selmon->sel */
for(c = selmon->sel->next; c && (!ISVISIBLE(c) || c->isfloating); c = c->next);
if(!c)
for(c = selmon->clients; c && (!ISVISIBLE(c) || c->isfloating); c = c->next);
}
else {
/* find the client before selmon->sel */
for(i = selmon->clients; i != selmon->sel; i = i->next)
if(ISVISIBLE(i) && !i->isfloating)
c = i;
if(!c)
for(; i; i = i->next)
if(ISVISIBLE(i) && !i->isfloating)
c = i;
}
/* find the client before selmon->sel and c */
for(i = selmon->clients; i && (!p || !pc); i = i->next) {
if(i->next == selmon->sel)
p = i;
if(i->next == c)
pc = i;
}
/* swap c and selmon->sel selmon->clients in the selmon->clients list */
if(c && c != selmon->sel) {
Client *temp = selmon->sel->next==c?selmon->sel:selmon->sel->next;
selmon->sel->next = c->next==selmon->sel?c:c->next;
c->next = temp;
if(p && p != c)
p->next = c;
if(pc && pc != selmon->sel)
pc->next = selmon->sel;
if(selmon->sel == selmon->clients)
selmon->clients = c;
else if(c == selmon->clients)
selmon->clients = selmon->sel;
arrange(selmon);
}
}

View file

@ -0,0 +1,95 @@
From 9a4037dc0ef56f91c009317e78e9e3790dafbb58 Mon Sep 17 00:00:00 2001
From: BrunoCooper17 <BrunoCooper17@outlook.com>
Date: Mon, 15 Nov 2021 14:04:53 -0600
Subject: [PATCH] MoveStack patch
This plugin allows you to move clients around in the stack and swap them
with the master. It emulates the behavior off mod+shift+j and mod+shift+k
in Xmonad. movestack(+1) will swap the client with the current focus with
the next client. movestack(-1) will swap the client with the current focus
with the previous client.
---
config.def.h | 3 +++
movestack.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100644 movestack.c
diff --git a/config.def.h b/config.def.h
index a2ac963..33efa5b 100644
--- a/config.def.h
+++ b/config.def.h
@@ -60,6 +60,7 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn()
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL };
+#include "movestack.c"
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
@@ -71,6 +72,8 @@ static Key keys[] = {
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
+ { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } },
+ { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
diff --git a/movestack.c b/movestack.c
new file mode 100644
index 0000000..520f4ae
--- /dev/null
+++ b/movestack.c
@@ -0,0 +1,48 @@
+void
+movestack(const Arg *arg) {
+ Client *c = NULL, *p = NULL, *pc = NULL, *i;
+
+ if(arg->i > 0) {
+ /* find the client after selmon->sel */
+ for(c = selmon->sel->next; c && (!ISVISIBLE(c) || c->isfloating); c = c->next);
+ if(!c)
+ for(c = selmon->clients; c && (!ISVISIBLE(c) || c->isfloating); c = c->next);
+
+ }
+ else {
+ /* find the client before selmon->sel */
+ for(i = selmon->clients; i != selmon->sel; i = i->next)
+ if(ISVISIBLE(i) && !i->isfloating)
+ c = i;
+ if(!c)
+ for(; i; i = i->next)
+ if(ISVISIBLE(i) && !i->isfloating)
+ c = i;
+ }
+ /* find the client before selmon->sel and c */
+ for(i = selmon->clients; i && (!p || !pc); i = i->next) {
+ if(i->next == selmon->sel)
+ p = i;
+ if(i->next == c)
+ pc = i;
+ }
+
+ /* swap c and selmon->sel selmon->clients in the selmon->clients list */
+ if(c && c != selmon->sel) {
+ Client *temp = selmon->sel->next==c?selmon->sel:selmon->sel->next;
+ selmon->sel->next = c->next==selmon->sel?c:c->next;
+ c->next = temp;
+
+ if(p && p != c)
+ p->next = c;
+ if(pc && pc != selmon->sel)
+ pc->next = selmon->sel;
+
+ if(selmon->sel == selmon->clients)
+ selmon->clients = c;
+ else if(c == selmon->clients)
+ selmon->clients = selmon->sel;
+
+ arrange(selmon);
+ }
+}
\ No newline at end of file
--
2.33.1

View file

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# Prints the current volume or 🔇 if muted. # Prints the current volume or 🔇 if muted.
[ $(pamixer --get-mute) = true ] && echo " VL: [MUT] " && exit [ $(pamixer --get-mute) = true ] && echo " vol: mut " && exit
vol="$(pamixer --get-volume)" vol="$(pamixer --get-volume)"
echo " vol: $vol% " echo " vol: $vol% "

View file

@ -22,7 +22,7 @@ static const char * text_color = "#d4c4a1";
static const char * font_name = "mtx"; static const char * font_name = "mtx";
/* Background image path, should be available to the user above */ /* Background image path, should be available to the user above */
static const char* background_image = ".config/suckless/slock/lockscreen.png"; static const char* background_image = ".config/suckless/slock/lockscreen.jpg";
/* PAM service that's used for authentication */ /* PAM service that's used for authentication */
static const char* pam_service = "system-local-login"; static const char* pam_service = "system-local-login";

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB