Add BSPWM config, clean dont't use configs

This commit is contained in:
Smirnov Olexandr 2021-01-22 11:27:54 +02:00
parent ed62788b9e
commit 246dc34d13
28 changed files with 303 additions and 727 deletions

4
config/bspwm/bar.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
killall -q polybar
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
polybar -c ~/.config/bspwm/polybar bar&

49
config/bspwm/bspwmrc Executable file
View file

@ -0,0 +1,49 @@
#!/bin/sh
# Smirnov-O <ss2316544@gmail.com>
# BSPWM config file
## == Functions
Run() {
if ! pgrep $1; then $@& fi
}
## == Autostart
setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps" &
Run sxhkd -c .config/bspwm/sxhkd &
~/.config/bspwm/bar.sh &
Run nitrogen --restore &
Run lxsession &
Run picom &
## == BSPWM
bspc monitor -d 1 2 3 4 5 6 7 8 9
bspc config border_width 2
bspc config window_gap 8
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config click_to_focus true
bspc config single_monocle false
bspc config borderless_monocle true
# Colors
bspc config normal_border_color "#262A2B"
bspc config active_border_color "#1F2324"
bspc config focused_border_color "#008DCD"
bspc config presel_feedback_color "#51AFEF"
bspc config urgent_border_color "#FF6C6B"
# Rules
bspc rule -a Alacritty desktop='^1' focus=on follow=on
bspc rule -a firefox desktop='^2' focus=on
bspc rule -a VSCodium desktop='^3' focus=on follow=on
bspc rule -a '*:nvim' desktop='^3' focus=on follow=on
bspc rule -a '*:ranger' desktop='^4' focus=on follow=on
bspc rule -a Thunar desktop='^4' focus=on follow=on
bspc rule -a Joplin desktop='^5' focus=on
bspc rule -a discord descord='^6' focus=on
bspc rule -a TelegramDesktop descord='^6' focus=on
bspc rule -a Spotify descord='^9' focus=on
bspc rule -a google-tasks-desktop state=floating

99
config/bspwm/polybar Normal file
View file

@ -0,0 +1,99 @@
[settings]
enable-ipc = true
screenchange-reload = true
pseudo-transparency = true
[colors]
background = #262A2B
foreground = #DFDFDF
secondary = #008DCD
alert = #FF6C6B
[bar/bar]
width = 100%
height = 24
fixed-center = true
background = ${colors.background}
foreground = ${colors.foreground}
wm-restack = bspwm
module-margin-left = 1
module-margin-right = 1
font-0 = Iosevka Nerd Font:style=Medium:size=8;3
font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5
modules-left = windowname
modules-center = bspwm
modules-right = pulseaudio archupd wifi-signal weather memory cpu keyboard time date
tray-position = right
[module/bspwm]
type = internal/bspwm
pin-workspaces = true
enable-click = true
fuzzy-match = true
enable-scroll = true
label-focused = 
label-focused-foreground = ${colors.secondary}
label-focused-padding = 2
label-occupied = 
label-occupied-foreground = ${colors.foreground}
label-occupied-padding = 2
label-urgent = 
label-urgent-foreground = ${colors.alert}
label-urgent-padding = 2
label-empty = 
label-empty-foreground = #58676C74
label-empty-padding = 2
[module/pulseaudio]
type = internal/pulseaudio
interval = 2
format-volume = <ramp-volume> <label-volume>
label-volume = %percentage%%
label-volume-foreground = ${root.foreground}
label-muted = 
ramp-volume-0 = 
[module/weather]
type = custom/script
exec = python3 ~/.config/polybar/scripts/weather.py
interval = 60
[module/archupd]
type = custom/script
exec = ~/.config/polybar/scripts/updates-pacman-aur.sh
interval = 60
[module/keyboard]
type = internal/xkeyboard
format-prefix = ""
label-layout =  %layout%
blacklist-0 = num lock
blacklist-1 = scroll lock
blacklist-2= caps lock
[module/cpu]
type = internal/cpu
format-prefix = " "
interval = 2
[module/memory]
type = internal/memory
interval = 2
label = %percentage_used%%
format-prefix = " "
[module/windowname]
type = internal/xwindow
label = %title%
label-maxlen = 90
[module/date]
type = internal/date
interval = 600
date = %d.%m.%Y
label =  %date%
[module/time]
type = internal/date
time = %H:%M
label =  %time%

BIN
config/bspwm/screen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

91
config/bspwm/sxhkd Normal file
View file

@ -0,0 +1,91 @@
# Smirnov-O <ss2316544@gmail.com>
# BSPWM/SXKBD config file
## == USER keys
super + Return
alacritty
super + shift + w
firefox
super + shift + f
alacritty --class="ranger" -e ranger
super + shift + e
alacritty --class="nvim" -e nvim
super + shift + c
vscodium
super + shift + d
org.zealdocs.Zeal
super + shift + q
xkill
## == USER Menus
super + shift + Return
rofi -location 2 -show drun
super + Escape
~/.script/dmenu/dmenu-power.sh
super + ctrl + i
passmenu -h 24 -p Passwords
super + ctrl + u
~/.script/dmenu/dmenu-config-edit.sh
## == BSPWM keys
super + q
bspc node -{c,k}
super + control + r
bspc wm -r && pkill -USR1 -x sxhkd
## == BSPWM windows
## Resize window
super + ctrl + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# Resize floating window
#super + shift + {h,j,k,l}
# bspc node -v {-20 0,0 20,0 -20,20 0}
# Change focus & move focus window
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# Change focus window
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# Preselect the direction
super + alt + {h,j,k,l}
bspc node -p {west,south,north,east}
# Preselect the ratio
super + alt + {1-9}
bspc node -o 0.{1-9}
# Cancel the preselection
super + ctrl + space
bspc node -p cancel
## == BSPWM workspace
## Next/Prev workspace
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# Change WP & send window to WP
super + {_,shift + }{1-9}
bspc {desktop -f,node -d} focused:'^{1-9}'
## == BSPWM windwo layouts
# Set window layouts for specific window
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# Change windows layout
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}

View file

@ -1,13 +0,0 @@
# DWM
![Screenhot](screen.png)
------------------------
### Install
~~~bash
git clone https://git.suckless.org/dwm ~/.config/dwm
sudo cp ~/.config/dwm/dwm.desktop /usr/share/xsessions
cd ~/.config/dwm
sudo make clean install
~~~~

View file

@ -1,6 +0,0 @@
#!/bin/sh
xautolock -time 5 -locker "betterlockscreen --off 300 -t \"Computer is lockerd\" -l" &
setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps" &
nitrogen --restore &
lxsession &
picom -b &

View file

@ -1,125 +0,0 @@
static const unsigned int borderpx = 1; // border pixel of windows
static const unsigned int snap = 32; // snap pixel
static const int showbar = 1; // 0 means no bar
static const int topbar = 1; // 0 means bottom bar
static const char *fonts[] = { "monospace:size=10" };
static const char col_gray1[] = "#262A2B";
static const char col_gray2[] = "#262A2B";
static const char col_gray3[] = "#CED4DA";
static const char col_gray4[] = "#FFFFFF";
static const char col_cyan[] = "#008DCD";
static const char *colors[][3] = {
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
};
// Workspaces names
//static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static const char *tags[] = { "", "", "", "", "", "", "", "", "" };
// Rules
static const Rule rules[] = {
{ "Gimp", NULL, NULL, 0, 1, -1 },
{ "Firefox", NULL, NULL, 1 << 8,0, -1 },
};
// Autostart
static const char *const autostart[] = {
"./.config/dwm/autostart.sh", NULL,
"./.script/dwmbar.sh", NULL,
NULL
};
// Layout
static const float mfact = 0.55; // factor of master area size [0.05..0.95]
static const int nmaster = 1; // number of clients in master area
static const int resizehints = 1; // 1 means respect size hints in tiled resizals
static const Layout layouts[] = {
{ "[]=", tile },
{ "><>", NULL },
{ "[M]", monocle },
};
// Key definitions
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
// Commands
static char dmenumon[2] = "0";
static const char *dmenucmd[] = { "dmenu_run", NULL };
static const char *launchercmd[] = { "rofi", "-location", "2", "-show", "drun", NULL };
static const char *passmenucmd[] = { "passmenu", "-h", "24", "-p", "Passwords", NULL };
static const char *dmenuconfig[] = { "./.script/dmenu/dmenu-config-edit.sh", NULL };
static const char *dmenupower[] = { "./.script/dmenu/dmenu-power.sh", NULL };
static const char *browsercmd[] = { "firefox", NULL };
static const char *filemanager[] = { "thunar", NULL };
static const char *codeeditor[] = { "alacritty", "-e", "nvim", NULL };
static const char *termcmd[] = { "alacritty", NULL };
// Keyboards binds
static Key keys[] = {
// User keys
{ MODKEY, XK_b, togglebar, {0} }, // Toggle status bar
{ MODKEY, XK_q, killclient, {0} }, // Kill window
{ MODKEY, XK_Return, spawn, {.v = termcmd } }, // Terminal
{ MODKEY|ShiftMask, XK_w, spawn, {.v = browsercmd } }, // Browser
{ MODKEY|ShiftMask, XK_f, spawn, {.v = filemanager } }, // File manager
{ MODKEY|ShiftMask, XK_e, spawn, {.v = codeeditor } }, // File manager
// Menus
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = launchercmd } }, // Program menu
{ MODKEY|ControlMask, XK_i, spawn, {.v = passmenucmd } }, // Password menu
{ MODKEY|ControlMask, XK_u, spawn, {.v = dmenuconfig } }, // Configuration menu
{ MODKEY, XK_Escape, spawn, {.v = dmenupower } }, // Power menu
// Volume
{ MODKEY, XK_minus, spawn, SHCMD("amixer sset 'Master' 2%-") },
{ MODKEY, XK_equal, spawn, SHCMD("amixer sset 'Master' 2%+") },
{ MODKEY|ShiftMask, XK_minus, spawn, SHCMD("amixer sset 'Master' toggle") },
// DWM keys
{ MODKEY, XK_Tab, setlayout, {0} }, // Change layout
{ MODKEY|ShiftMask, XK_Tab, togglefloating, {0} }, // Set floating layout
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
// Workspaces
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
};
// Mouse binds
static Button buttons[] = {
// click event mask button function argument
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};

View file

@ -1,116 +0,0 @@
diff --git a/config.def.h b/config.def.h
index 1c0b587..ed056a4 100644
--- a/config.def.h
+++ b/config.def.h
@@ -18,6 +18,11 @@ static const char *colors[][3] = {
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
};
+static const char *const autostart[] = {
+ "st", NULL,
+ NULL /* terminate */
+};
+
/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
diff --git a/dwm.c b/dwm.c
index 9fd0286..1facd56 100644
--- a/dwm.c
+++ b/dwm.c
@@ -234,6 +234,7 @@ static int xerror(Display *dpy, XErrorEvent *ee);
static int xerrordummy(Display *dpy, XErrorEvent *ee);
static int xerrorstart(Display *dpy, XErrorEvent *ee);
static void zoom(const Arg *arg);
+static void autostart_exec(void);
/* variables */
static const char broken[] = "broken";
@@ -275,6 +276,34 @@ static Window root, wmcheckwin;
/* compile-time check if all tags fit into an unsigned int bit array. */
struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
+/* dwm will keep pid's of processes from autostart array and kill them at quit */
+static pid_t *autostart_pids;
+static size_t autostart_len;
+
+/* execute command from autostart array */
+static void
+autostart_exec() {
+ const char *const *p;
+ size_t i = 0;
+
+ /* count entries */
+ for (p = autostart; *p; autostart_len++, p++)
+ while (*++p);
+
+ autostart_pids = malloc(autostart_len * sizeof(pid_t));
+ for (p = autostart; *p; i++, p++) {
+ if ((autostart_pids[i] = fork()) == 0) {
+ setsid();
+ execvp(*p, (char *const *)p);
+ fprintf(stderr, "dwm: execvp %s\n", *p);
+ perror(" failed");
+ _exit(EXIT_FAILURE);
+ }
+ /* skip arguments */
+ while (*++p);
+ }
+}
+
/* function implementations */
void
applyrules(Client *c)
@@ -1249,6 +1278,16 @@ propertynotify(XEvent *e)
void
quit(const Arg *arg)
{
+ size_t i;
+
+ /* kill child processes */
+ for (i = 0; i < autostart_len; i++) {
+ if (0 < autostart_pids[i]) {
+ kill(autostart_pids[i], SIGTERM);
+ waitpid(autostart_pids[i], NULL, 0);
+ }
+ }
+
running = 0;
}
@@ -1632,9 +1671,25 @@ showhide(Client *c)
void
sigchld(int unused)
{
+ pid_t pid;
+
if (signal(SIGCHLD, sigchld) == SIG_ERR)
die("can't install SIGCHLD handler:");
- while (0 < waitpid(-1, NULL, WNOHANG));
+ while (0 < (pid = waitpid(-1, NULL, WNOHANG))) {
+ pid_t *p, *lim;
+
+ if (!(p = autostart_pids))
+ continue;
+ lim = &p[autostart_len];
+
+ for (; p < lim; p++) {
+ if (*p == pid) {
+ *p = -1;
+ break;
+ }
+ }
+
+ }
}
void
@@ -2139,6 +2194,7 @@ main(int argc, char *argv[])
if (!(dpy = XOpenDisplay(NULL)))
die("dwm: cannot open display");
checkotherwm();
+ autostart_exec();
setup();
#ifdef __OpenBSD__
if (pledge("stdio rpath proc exec", NULL) == -1)

View file

@ -1,7 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=Dwm
Comment=Dynamic window manager
Exec=dwm
Icon=dwm
Type=XSession

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 KiB

View file

@ -18,13 +18,14 @@ hide_edge_borders smart
############ Variables ###########
set $terminal alacritty
set $browser firefox
set $filemanager thunar
set $filemanager alacritty -e ranger
set $codeeditor alacritty -e nvim
set $guicode vscodium
set $documentationreader org.zealdocs.Zeal
############ Autostart ############
exec --no-startup-id exec setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps"
exec --no-startup-id exec picom --experimental-backends -b
exec_always --no-startup-id exec picom --experimental-backends -b
exec_always --no-startup-id exec $HOME/.config/i3/bar.sh
exec --no-startup-id exec nitrogen --restore
exec --no-startup-id exec lxsession
@ -75,6 +76,7 @@ bindsym $mod+Shift+w exec $browser
bindsym $mod+Shift+f exec $filemanager
bindsym $mod+Shift+e exec $codeeditor
bindsym $mod+Shift+c exec $guicode
bindsym $mod+Shift+d exec $documentationreader
# Toogle polybar
bindsym $mod+b exec ~/.script/polybar-toggle
@ -93,6 +95,7 @@ bindsym $mod+Shift+minus exec "amixer sset Master toggle"
######### Window preferens ########
assign [class="(?i)telegram|discord"] $ws6
for_window [title="Google Tasks"] floating enable
for_window [class="(?i)telegram|discord"] layout tabbed
focus_on_window_activation focus

View file

@ -2,10 +2,11 @@ call plug#begin('~/.vim/plugged')
Plug 'Smirnov-O/nten16.vim' " Color scheme
Plug 'itchyny/lightline.vim' " Status line
Plug 'airblade/vim-gitgutter' " Git indicator
Plug 'preservim/nerdtree' " File viewer
Plug 'ap/vim-css-color' " CSS color preview
Plug 'mhinz/vim-startify' " Start page
Plug 'dense-analysis/ale' " Linter
Plug 'kassio/neoterm' " Terminal wrapper
Plug 'aurieh/discord.nvim' " Discord rich
Plug 'editorconfig/editorconfig-vim' " EditorConfig support
" Completion & snippets
@ -17,10 +18,11 @@ call plug#begin('~/.vim/plugged')
Plug 'metakirby5/codi.vim'
Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
Plug 'vim-python/python-syntax', {'for': 'python'}
Plug 'fatih/vim-go', {'for': 'go'}
Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'}
Plug 'kovetskiy/sxhkd-vim'
call plug#end()
" Theme
set termguicolors
colorscheme nten16
@ -93,17 +95,6 @@ let g:vim_markdown_folding_disabled = 1
let g:vim_markdown_frontmatter = 1
let g:markdown_fenced_languages = ['go', 'python', 'bash', 'sh=bash']
" Go
let g:go_template_autocreate = 0
let g:go_highlight_structs = 1
let g:go_highlight_methods = 1
let g:go_highlight_functions = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
let g:go_snippet_engine = ""
let g:go_fmt_command = "goimports"
let g:go_auto_type_info = 1
" == Plugins configuration
let g:lightline = {

View file

@ -9,6 +9,12 @@ import (
)
endsnippet
snippet fn "Function"
func ${1:main}(${2:arg} ${3:type}) ${4:type} (
${5}
)
endsnippet
snippet for "For loop"
for ${1:i\:\=1}; ${2:i\<\=10}; ${3:\i\+\+} {
${4}

View file

@ -13,13 +13,16 @@ shadow-exclude = [
];
############ Fading ###########
fading = false;
fade-in-step = 0.03;
fade-out-step = 0.03;
fading = true;
fading-openclose = true;
fade-in-step = 1;
fade-out-step = 1;
fade-delta = 0;
##### Transparency/Opacity ####
inactive-opacity = 1;
frame-opacity = 0.7;
active-opacity = 1;
frame-opacity = 0.8;
inactive-opacity-override = false;
focus-exclude = [];
opacity-exclude = [ "class_g = 'openbox'" ];
@ -27,6 +30,7 @@ opacity-rule = [ "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ];
no-fading-openclose = true
##### Background-Blurring #####
blur = false;
#blur-method = "dual_kawase";
#blur-strength = 5;
#blur-kern = "3x3box";
@ -36,6 +40,7 @@ no-fading-openclose = true
####### General Settings ######
backend = "glx";
vsync = true;
xrender-sync-fence = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
glx-no-stencil = true
@ -49,11 +54,11 @@ use-damage = true;
log-level = "warn";
wintypes: {
tooltip = { fade = true; shadow = false; opacity = 1; focus = true; full-shadow = false; };
menu = { fade = true; shadow = false; opacity = 1; };
popup_menu = { fade = true; shadow = false; };
dropdown_menu = { fade = true; shadow = false; };
utility = { fade = true; shadow = false; };
dialog = { fade = true; shadow = false; };
notify = { fade = true; shadow = true; };
unknown = { fade = true; shadow = false; };
menu = { fade = true; shadow = false; opacity = false; };
popup_menu = { fade = true; shadow = false; opacity = false; };
dropdown_menu = { fade = true; shadow = false; opacity = false; };
utility = { fade = true; shadow = false; opacity = false; };
dialog = { fade = true; shadow = false; opacity = false; };
notify = { fade = true; shadow = true; opacity = false; };
unknown = { fade = true; shadow = false; opacity = false; };
};

View file

@ -9,7 +9,7 @@ foreground = #DFDFDF
secondary = #008DCD
alert = #FF6C6B
[bar/i3bar]
[bar/bar]
monitor = ${env:MONITOR_MIDDLE}
width = 100%
height = 24
@ -23,64 +23,18 @@ module-margin-right = 1
font-0 = Iosevka Nerd Font:style=Medium:size=8;3
font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5
font-2 = Weather Icons:size=7;2
modules-left = i3 menu pacman-up window-name
modules-left = i3 pacman-up window-name
modules-right = pulseaudio backlight wifi-signal keyboard time date
tray-position = right
[module/i3]
type = internal/i3
format = <label-state><label-mode>
index-sort = false
wrapping-scroll = false
label-mode-padding = 1
label-mode-background = ${colors.alert}
label-focused = %icon%
label-focused-background = ${colors.secondary}
label-focused-foreground = ${colors.foreground}
label-focused-padding = 1
label-focused-underline = ${colors.alert}
label-unfocused = %icon%
label-unfocused-foreground = ${colors.foreground}
label-unfocused-padding = 1
label-urgent = %icon%
label-urgent-background = ${colors.alert}
label-urgent-foreground = ${colors.foreground}
label-urgent-padding = 1
label-urgent-underline = ${colors.alert}
label-visible = %icon%
label-visible-background = ${colors.background}
label-visible-foreground = ${colors.foreground}
label-visible-padding = 1
label-visible-underline = ${colors.background}
ws-icon-0 = "1;1 "
ws-icon-1 = "2;2 "
ws-icon-2 = "3;3 "
ws-icon-3 = "4;4 "
ws-icon-4 = "5;5 "
ws-icon-5 = "6;6 "
ws-icon-6 = "7;7 "
ws-icon-7 = "8;8 "
ws-icon-8 = "9;9 "
[module/backlight]
type = internal/xbacklight
format = <ramp> <label>
label = %percentage%%
ramp-0 = 
[module/wifi-name]
type = internal/network
interface = wlp3s0
format-connected = <ramp-signal> <label-connected>
label-connected = %essid%
format-disconnected =
ramp-signal-0 = 
interval = 3
[module/bspwm]
type = internal/bspwm
pin-workspaces = true
inline-mode = false
enable-click = false
enable-scroll = false
reverse-scroll = false
fuzzy-match = true
[module/wifi-signal]
type = custom/script

View file

@ -5,25 +5,10 @@ import os
API_KEY = os.getenv("OWM_POLYBAR")
CITY = "Horodnytsya,UA"
CITY = os.getenv("OWM_CITY")
try: JSON = requests.get(f"http://api.openweathermap.org/data/2.5/weather?q={CITY}&lang=EN&&units=metric&appid={API_KEY}").json()
except Exception as a: print("No connection ")
try:
if JSON['weather'][0]['main'] == "Clear": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Thunderstorm": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Drizzle": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Rain": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Snow": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Mist": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Smoke": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Haze": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Dust": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Fog": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Sand": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Ash": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Squall": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Tornado": print("", int(JSON["main"]["temp"]),"°С")
elif JSON['weather'][0]['main'] == "Clouds": print("", int(JSON["main"]["temp"]),"°С")
except Exception as e: print(int(JSON["main"]["temp"]),"°С")
JSON = requests.get(f"http://api.openweathermap.org/data/2.5/weather?q={CITY}&lang=EN&&units=metric&appid={API_KEY}").json()
print("", int(JSON["main"]["temp"]), "°С")
except:
print(" err °С")

View file

@ -7,7 +7,6 @@
selected-foreground: #ffffff;
}
#window {
/* location: north; */
width: 100%;
height: 24px;
padding: 0px;
@ -26,6 +25,8 @@
#listview {
layout: horizontal;
spacing: 0px;
fixed-height: false;
dynamic: true;
lines: 100;
}
#entry {

View file

@ -1,25 +0,0 @@
highlight clear
highlight Win cterm=none ctermfg=default ctermbg=default
highlight Directory cterm=bold ctermfg=blue ctermbg=default
highlight Link cterm=bold ctermfg=cyan ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold,reverse ctermfg=4 ctermbg=black
highlight TopLine cterm=none ctermfg=white ctermbg=32
highlight TopLineSel cterm=bold ctermfg=white ctermbg=default
highlight StatusLine cterm=bold ctermfg=white ctermbg=default
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=default
highlight ErrorMsg cterm=none ctermfg=red ctermbg=default
highlight Border cterm=none ctermfg=default ctermbg=default
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
highlight TabLine cterm=none ctermfg=white ctermbg=default
highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default

View file

@ -1,93 +0,0 @@
colorscheme nten16
set vicmd=nvim
set syscalls
view
set history=100
set nofollowlinks
set sortnumbers
set undolevels=100
set norunexec
set timefmt=%m/%d\ %H:%M
set wildmenu
set wildstyle=popup
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
set ignorecase
set smartcase
set nohlsearch
set incsearch
set scrolloff=4
set trashdir=$HOME/.local/share/Trash/files
set vifminfo=dhistory,chistory,state,shistory,phistory,fhistory,dirstack,registers,bookmarks,bmarks
" === commands
command! zip zip -r %f.zip %f
command! targz tar -czvf %f.tar.gz %f
set rulerformat=
" === Key maps
nmap q ZQ
nnoremap gg ggj
nnoremap ! :shell<cr>
nnoremap w :view<cr>
nnoremap S :sort<cr>
nnoremap se :!$HOME/bin/extract %f &<cr>
nnoremap sa :!zip -r %f.zip %f
nnoremap ss :!tar -czvf %f.tar.gz @f
" === files
filetype *.csv,*.xlsx libreoffice %c %i
fileviewer *.csv sed "s/,,,,/,,-,,/g;s/,,/ /g" %c | column -t | sed "s/ - / /g" | cut -c -%pw
fileviewer *.html w3m -dump %c
filextype *.html,*.htm qutebrowser %f 2>/dev/null &
filetype <text/*> nvim
fileviewer <text/*> env -uCOLORTERM bat --color always --wrap never --pager never %c -p
filextype *.pdf zathura %c %i &
fileviewer *.pdf
\ vifmimg pdfpreview %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" \ pdftotext -nopgbrk %c -
filetype <audio/*> mocp %c %i &
filetype <video/*> mpv %c %i &
filextype <image/*> sxiv %c %i &
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm
\ ~/.config/vifm/vifmimg draw %px %py %pw %ph %c
\ %pc
\ ~/.config/vifm/vifmimg clear
filextype *.py nvim %c %i &
fileviewer *.zip,*.jar zip -sf %c
fileviewer *.tgz,*.tar.gz tar -tzf %c
fileviewer *.tar tar -tf %c
fileviewer *.rar unrar v %c
fileviewer *.7z 7z l %c
fileviewer */ ls --color --group-directories-first
fileviewer .*/ ls --color --group-directories-first
filetype * xdg-open %c
fileviewer * file -b %c
" go keys
nnoremap gh :cd ~<cr>
nnoremap gc :cd ~/Code<cr>
nnoremap gd :cd ~/Documents<cr>
nnoremap gb :cd ~/Documents/Books<cr>
nnoremap gm :cd ~/.dotfiles<cr>
nnoremap gn :cd ~/bin<cr>
nnoremap gz :cd ~/.script<cr>
" === file icons
set classify=' :dir:/, :exe:, :reg:, :link:'
set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::'
set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::'
set classify+=' ::*.bmp,,*.gif,,*.jpeg,,*.jpg,,*.ico,,*.png,,*.ppm,,*.svg,,*.svgz,,*.tga,,*.tif,,*.tiff,,*.xbm,,*.xcf,,*.xpm,,*.xspf,,*.xwd::'
set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::'
set classify+=' ::*.avi,,*.ts,,*.axv,,*.divx,,*.m2v,,*.m4p,,*.m4v,,.mka,,*.mkv,,*.mov,,*.mp4,,*.flv,,*.mp4v,,*.mpeg,,*.mpg,,*.nuv,,*.ogv,,*.pbm,,*.pgm,,*.qt,,*.vob,,*.wmv,,*.xvid::'
set classify+=' ::*.doc,,*.docx::, ::*.xls,,*.xls[mx]::, ::*.pptx,,*.ppt::'