summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md18
-rwxr-xr-xdwm-6.2/dwmbin72056 -> 72056 bytes
-rw-r--r--dwm-6.2/dwm.obin63192 -> 63192 bytes
-rw-r--r--dwmblocks/.gitignore56
-rw-r--r--dwmblocks/LICENSE7
-rw-r--r--dwmblocks/Makefile17
-rw-r--r--dwmblocks/README.md15
-rw-r--r--dwmblocks/blocks.def.h11
-rw-r--r--dwmblocks/dwmblocks.c213
-rw-r--r--etc/wallpaper/blue.wallpaper.jpg (renamed from etc/blue.wallpaper.jpg)bin3000322 -> 3000322 bytes
-rw-r--r--etc/wallpaper/default.wallpaper.jpg (renamed from etc/default.wallpaper.jpg)bin1069893 -> 1069893 bytes
-rw-r--r--etc/wallpaper/green.wallpaper.jpg (renamed from etc/green.wallpaper.jpg)bin2806111 -> 2806111 bytes
-rw-r--r--etc/wallpaper/nord.wallpaper.jpgbin0 -> 347931 bytes
-rw-r--r--etc/wallpaper/purple.wallpaper.jpg (renamed from etc/purple.wallpaper.jpg)bin1570213 -> 1570213 bytes
-rw-r--r--etc/wallpaper/red.wallpaper.jpg (renamed from etc/red.wallpaper.jpg)bin1744142 -> 1744142 bytes
-rwxr-xr-xinstall.sh4
-rw-r--r--themes/theme.h4
-rw-r--r--themes/themes/nord16
18 files changed, 343 insertions, 18 deletions
diff --git a/README.md b/README.md
index 9a52cd1..ea52e9b 100644
--- a/README.md
+++ b/README.md
@@ -11,16 +11,12 @@ Files are in $HOME/.config/sarc
## Installation
-```git clone https://github.com/SkywalkerSW5/sarc
+```
+git clone https://github.com/SkywalkerSW5/sarc
cd sarc
./install.sh
```
-## Themes
-Their are dwm config files that are different themes. To change the theme, edit the theme variable in the install.sh script. Then run it again, and the theme will change.
-
-Note that if you want to change anything in the dwm config, do it in dwm/config.def.h, otherwise it won't be permanent.
-
### Current Themes
- Red
@@ -31,12 +27,4 @@ Note that if you want to change anything in the dwm config, do it in dwm/config.
- Purple
-
-## Credits
-
-### st
-Luke Smith (lukesmith.xyz) is the creator of the version of st I am using, so thanks to him. https://github.com/LukeSmithxyz/
-
-### Mouse Icon Theme
-
-https://www.gnome-look.org/p/1356095/
+- Nord
diff --git a/dwm-6.2/dwm b/dwm-6.2/dwm
index a73f24f..3013902 100755
--- a/dwm-6.2/dwm
+++ b/dwm-6.2/dwm
Binary files differ
diff --git a/dwm-6.2/dwm.o b/dwm-6.2/dwm.o
index 7802266..b1f2ac7 100644
--- a/dwm-6.2/dwm.o
+++ b/dwm-6.2/dwm.o
Binary files differ
diff --git a/dwmblocks/.gitignore b/dwmblocks/.gitignore
new file mode 100644
index 0000000..b6605b4
--- /dev/null
+++ b/dwmblocks/.gitignore
@@ -0,0 +1,56 @@
+# Custom blocks file
+blocks.h
+
+# Prerequisites
+*.d
+
+# Object files
+*.o
+*.ko
+*.obj
+*.elf
+
+# Linker output
+*.ilk
+*.map
+*.exp
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Libraries
+*.lib
+*.a
+*.la
+*.lo
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+# Executables
+*.exe
+*.out
+*.app
+*.i*86
+*.x86_64
+*.hex
+dwmblocks
+
+# Debug files
+*.dSYM/
+*.su
+*.idb
+*.pdb
+
+# Kernel Module Compile Results
+*.mod*
+*.cmd
+.tmp_versions/
+modules.order
+Module.symvers
+Mkfile.old
+dkms.conf
diff --git a/dwmblocks/LICENSE b/dwmblocks/LICENSE
new file mode 100644
index 0000000..3ec2656
--- /dev/null
+++ b/dwmblocks/LICENSE
@@ -0,0 +1,7 @@
+ISC License (ISC)
+
+Copyright 2020 torrinfail
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/dwmblocks/Makefile b/dwmblocks/Makefile
new file mode 100644
index 0000000..ef43ef4
--- /dev/null
+++ b/dwmblocks/Makefile
@@ -0,0 +1,17 @@
+PREFIX ?= /usr/local
+CC ?= cc
+LDFLAGS = -lX11
+
+output: dwmblocks.c blocks.def.h blocks.h
+ ${CC} dwmblocks.c $(LDFLAGS) -o dwmblocks
+blocks.h:
+ cp blocks.def.h $@
+
+
+clean:
+ rm -f *.o *.gch dwmblocks
+install: output
+ mkdir -p $(DESTDIR)$(PREFIX)/bin
+ install -m 0755 dwmblocks $(DESTDIR)$(PREFIX)/bin/dwmblocks
+uninstall:
+ rm -f $(DESTDIR)$(PREFIX)/bin/dwmblocks
diff --git a/dwmblocks/README.md b/dwmblocks/README.md
new file mode 100644
index 0000000..dda2259
--- /dev/null
+++ b/dwmblocks/README.md
@@ -0,0 +1,15 @@
+# dwmblocks
+Modular status bar for dwm written in c.
+# usage
+To use dwmblocks first run 'make' and then install it with 'sudo make install'.
+After that you can put dwmblocks in your xinitrc or other startup script to have it start with dwm.
+# modifying blocks
+The statusbar is made from text output from commandline programs.
+Blocks are added and removed by editing the blocks.h header file.
+By default the blocks.h header file is created the first time you run make which copies the default config from blocks.def.h.
+This is so you can edit your status bar commands and they will not get overwritten in a future update.
+# patches
+Here are some patches to dwmblocks that add features that I either don't want to merge in, or that require a dwm patch to work.
+I do not maintain these but I will take pull requests to update them.
+<br>
+<a href=https://gist.github.com/IGeraGera/e4a5583b91b3eec2e81fdceb44dea717>dwmblocks-statuscmd-b6b0be4.diff</a>
diff --git a/dwmblocks/blocks.def.h b/dwmblocks/blocks.def.h
new file mode 100644
index 0000000..1d41ced
--- /dev/null
+++ b/dwmblocks/blocks.def.h
@@ -0,0 +1,11 @@
+//Modify this file to change what commands output to your statusbar, and recompile using the make command.
+static const Block blocks[] = {
+ /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/
+ {" ", "uname -n ", 0, 0},
+ {"", "uname -r", 0, 0},
+ {"", "date '+%I:%M%p'", 5, 0},
+};
+
+//sets delimeter between status commands. NULL character ('\0') means no delimeter.
+static char delim[] = " | ";
+static unsigned int delimLen = 5;
diff --git a/dwmblocks/dwmblocks.c b/dwmblocks/dwmblocks.c
new file mode 100644
index 0000000..ded717c
--- /dev/null
+++ b/dwmblocks/dwmblocks.c
@@ -0,0 +1,213 @@
+#include<stdlib.h>
+#include<stdio.h>
+#include<string.h>
+#include<unistd.h>
+#include<signal.h>
+#ifndef NO_X
+#include<X11/Xlib.h>
+#endif
+#ifdef __OpenBSD__
+#define SIGPLUS SIGUSR1+1
+#define SIGMINUS SIGUSR1-1
+#else
+#define SIGPLUS SIGRTMIN
+#define SIGMINUS SIGRTMIN
+#endif
+#define LENGTH(X) (sizeof(X) / sizeof (X[0]))
+#define CMDLENGTH 50
+#define MIN( a, b ) ( ( a < b) ? a : b )
+#define STATUSLENGTH (LENGTH(blocks) * CMDLENGTH + 1)
+
+typedef struct {
+ char* icon;
+ char* command;
+ unsigned int interval;
+ unsigned int signal;
+} Block;
+#ifndef __OpenBSD__
+void dummysighandler(int num);
+#endif
+void sighandler(int num);
+void getcmds(int time);
+void getsigcmds(unsigned int signal);
+void setupsignals();
+void sighandler(int signum);
+int getstatus(char *str, char *last);
+void statusloop();
+void termhandler();
+void pstdout();
+#ifndef NO_X
+void setroot();
+static void (*writestatus) () = setroot;
+static int setupX();
+static Display *dpy;
+static int screen;
+static Window root;
+#else
+static void (*writestatus) () = pstdout;
+#endif
+
+
+#include "blocks.h"
+
+static char statusbar[LENGTH(blocks)][CMDLENGTH] = {0};
+static char statusstr[2][STATUSLENGTH];
+static int statusContinue = 1;
+static int returnStatus = 0;
+
+//opens process *cmd and stores output in *output
+void getcmd(const Block *block, char *output)
+{
+ strcpy(output, block->icon);
+ FILE *cmdf = popen(block->command, "r");
+ if (!cmdf)
+ return;
+ int i = strlen(block->icon);
+ fgets(output+i, CMDLENGTH-i-delimLen, cmdf);
+ i = strlen(output);
+ if (i == 0) {
+ //return if block and command output are both empty
+ pclose(cmdf);
+ return;
+ }
+ if (delim[0] != '\0') {
+ //only chop off newline if one is present at the end
+ i = output[i-1] == '\n' ? i-1 : i;
+ strncpy(output+i, delim, delimLen);
+ }
+ else
+ output[i++] = '\0';
+ pclose(cmdf);
+}
+
+void getcmds(int time)
+{
+ const Block* current;
+ for (unsigned int i = 0; i < LENGTH(blocks); i++) {
+ current = blocks + i;
+ if ((current->interval != 0 && time % current->interval == 0) || time == -1)
+ getcmd(current,statusbar[i]);
+ }
+}
+
+void getsigcmds(unsigned int signal)
+{
+ const Block *current;
+ for (unsigned int i = 0; i < LENGTH(blocks); i++) {
+ current = blocks + i;
+ if (current->signal == signal)
+ getcmd(current,statusbar[i]);
+ }
+}
+
+void setupsignals()
+{
+#ifndef __OpenBSD__
+ /* initialize all real time signals with dummy handler */
+ for (int i = SIGRTMIN; i <= SIGRTMAX; i++)
+ signal(i, dummysighandler);
+#endif
+
+ for (unsigned int i = 0; i < LENGTH(blocks); i++) {
+ if (blocks[i].signal > 0)
+ signal(SIGMINUS+blocks[i].signal, sighandler);
+ }
+
+}
+
+int getstatus(char *str, char *last)
+{
+ strcpy(last, str);
+ str[0] = '\0';
+ for (unsigned int i = 0; i < LENGTH(blocks); i++)
+ strcat(str, statusbar[i]);
+ str[strlen(str)-strlen(delim)] = '\0';
+ return strcmp(str, last);//0 if they are the same
+}
+
+#ifndef NO_X
+void setroot()
+{
+ if (!getstatus(statusstr[0], statusstr[1]))//Only set root if text has changed.
+ return;
+ XStoreName(dpy, root, statusstr[0]);
+ XFlush(dpy);
+}
+
+int setupX()
+{
+ dpy = XOpenDisplay(NULL);
+ if (!dpy) {
+ fprintf(stderr, "dwmblocks: Failed to open display\n");
+ return 0;
+ }
+ screen = DefaultScreen(dpy);
+ root = RootWindow(dpy, screen);
+ return 1;
+}
+#endif
+
+void pstdout()
+{
+ if (!getstatus(statusstr[0], statusstr[1]))//Only write out if text has changed.
+ return;
+ printf("%s\n",statusstr[0]);
+ fflush(stdout);
+}
+
+
+void statusloop()
+{
+ setupsignals();
+ int i = 0;
+ getcmds(-1);
+ while (1) {
+ getcmds(i++);
+ writestatus();
+ if (!statusContinue)
+ break;
+ sleep(1.0);
+ }
+}
+
+#ifndef __OpenBSD__
+/* this signal handler should do nothing */
+void dummysighandler(int signum)
+{
+ return;
+}
+#endif
+
+void sighandler(int signum)
+{
+ getsigcmds(signum-SIGPLUS);
+ writestatus();
+}
+
+void termhandler()
+{
+ statusContinue = 0;
+}
+
+int main(int argc, char** argv)
+{
+ for (int i = 0; i < argc; i++) {//Handle command line arguments
+ if (!strcmp("-d",argv[i]))
+ strncpy(delim, argv[++i], delimLen);
+ else if (!strcmp("-p",argv[i]))
+ writestatus = pstdout;
+ }
+#ifndef NO_X
+ if (!setupX())
+ return 1;
+#endif
+ delimLen = MIN(delimLen, strlen(delim));
+ delim[delimLen++] = '\0';
+ signal(SIGTERM, termhandler);
+ signal(SIGINT, termhandler);
+ statusloop();
+#ifndef NO_X
+ XCloseDisplay(dpy);
+#endif
+ return 0;
+}
diff --git a/etc/blue.wallpaper.jpg b/etc/wallpaper/blue.wallpaper.jpg
index 0920b93..0920b93 100644
--- a/etc/blue.wallpaper.jpg
+++ b/etc/wallpaper/blue.wallpaper.jpg
Binary files differ
diff --git a/etc/default.wallpaper.jpg b/etc/wallpaper/default.wallpaper.jpg
index 9fc1f81..9fc1f81 100644
--- a/etc/default.wallpaper.jpg
+++ b/etc/wallpaper/default.wallpaper.jpg
Binary files differ
diff --git a/etc/green.wallpaper.jpg b/etc/wallpaper/green.wallpaper.jpg
index 111ffe1..111ffe1 100644
--- a/etc/green.wallpaper.jpg
+++ b/etc/wallpaper/green.wallpaper.jpg
Binary files differ
diff --git a/etc/wallpaper/nord.wallpaper.jpg b/etc/wallpaper/nord.wallpaper.jpg
new file mode 100644
index 0000000..2b315fb
--- /dev/null
+++ b/etc/wallpaper/nord.wallpaper.jpg
Binary files differ
diff --git a/etc/purple.wallpaper.jpg b/etc/wallpaper/purple.wallpaper.jpg
index f0e89e8..f0e89e8 100644
--- a/etc/purple.wallpaper.jpg
+++ b/etc/wallpaper/purple.wallpaper.jpg
Binary files differ
diff --git a/etc/red.wallpaper.jpg b/etc/wallpaper/red.wallpaper.jpg
index 4cc72e2..4cc72e2 100644
--- a/etc/red.wallpaper.jpg
+++ b/etc/wallpaper/red.wallpaper.jpg
Binary files differ
diff --git a/install.sh b/install.sh
index a930f00..e42dd8f 100755
--- a/install.sh
+++ b/install.sh
@@ -11,6 +11,7 @@ echo ""
echo "What theme do you want to use? Current themes are down below:"
echo
ls themes/themes/
+echo
echo "Enter what theme you want here:" && read theme
echo
echo "Theme is $theme"
@@ -36,9 +37,10 @@ cd ..
mkdir -p ~/.config/sarc
mkdir ~/.dwm/
cp -r * ~/.config/sarc/
+
cp etc/.xinitrc ~
etc/cursor
-cp etc/$theme.wallpaper.jpg ~/.config/wallpaper.jpg
+cp etc/wallpaper/$theme.wallpaper.jpg ~/.config/wallpaper.jpg
cp etc/autostart.sh ~/.dwm
sudo cp bin/* /usr/local/bin
diff --git a/themes/theme.h b/themes/theme.h
index 162087c..ae77542 100644
--- a/themes/theme.h
+++ b/themes/theme.h
@@ -6,11 +6,11 @@
/* primary color */
-static const char col_cyan[] = "#8c0180";
+static const char col_cyan[] = "#5e81ac";
/* secondary colors */
-static const char col_gray1[] = "#222222";
+static const char col_gray1[] = "#2e3440";
static const char col_gray2[] = "#444444";
static const char col_gray3[] = "#bbbbbb";
static const char col_gray4[] = "#eeeeee";
diff --git a/themes/themes/nord b/themes/themes/nord
new file mode 100644
index 0000000..ae77542
--- /dev/null
+++ b/themes/themes/nord
@@ -0,0 +1,16 @@
+/* Sarc config file */
+
+/*
+ * DWM CONFIGURATION
+*/
+
+/* primary color */
+
+static const char col_cyan[] = "#5e81ac";
+
+/* secondary colors */
+
+static const char col_gray1[] = "#2e3440";
+static const char col_gray2[] = "#444444";
+static const char col_gray3[] = "#bbbbbb";
+static const char col_gray4[] = "#eeeeee";