diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 00000000..1a4c639a --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,34 @@ +#!/bin/sh + +# If refreshing bspwm, remove all previous rules to prevent doubling up. +bspc rule -r "*" + +# We look for a non-laptop monitor to use for default, but use the laptop +# screen (LVDS) if there's nothing else. This is because I assume that if you +# have an extra screen attached to a laptop, you want to use that. +mainmonitor="$(bspc query --monitors --names | grep -v LVDS | head -n 1)" + +if ! echo "$mainmonitor" | grep LVDS >/dev/null 2>&1; then + xrandr --output "$mainmonitor" --auto --output LVDS1 --off +fi + +# Start workspaces on the main monitor. +bspc monitor $mainmonitor -d 1 2 3 4 5 6 7 8 9 10 +bspc desktop -f 1 + +# If you want a multi-monitor display or something else, I leave that to you to +# arrange. I have this sensible default for most people's use cases. + + +bspc config border_width 3 +bspc config window_gap 15 +bspc config top_padding 24 # top_padding I set equal to polybar's height +bspc config focus_follows_pointer true + +dropdownname="dropdown" +bspc query -N -n .hidden >/dev/null || setsid $TERMINAL -n "$dropdownname" -e dropdown >/dev/null 2>&1 & +bspc rule -a St:$dropdownname hidden=on +bspc rule -a St:$dropdownname sticky=on +bspc rule -a St:$dropdownname state=floating + +bspc config external_rules_command "$(which floaters)" diff --git a/.config/files b/.config/files index 9f4edfe2..b34f1849 100644 --- a/.config/files +++ b/.config/files @@ -2,7 +2,7 @@ bf ~/.config/files bd ~/.config/directories bw ~/.config/bookmarks cfa ~/.config/aliasrc -cfz ~/$ZDOTDIR/.zshrc +cfz $ZDOTDIR/.zshrc cfv ~/.config/nvim/init.vim cfm ~/.config/mutt/muttrc cfd ~/.Xdefaults diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 741f1a98..18a7e53a 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -15,7 +15,7 @@ cmd open ${{ text/troff) man ./ $f;; text/*) $EDITOR $fx;; image/x-xcf|image/svg+xml) setsid gimp $f >/dev/null 2>&1 & ;; - image/*) rotdir $f | setsid sxiv -aio 2>&1 | lf-select & ;; + image/*) rotdir $f | setsid sxiv -aio 2>/dev/null | lf-select & ;; audio/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f ;; video/*) setsid mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f -quiet >/dev/null 2>&1 & ;; application/pdf) setsid zathura $fx >/dev/null 2>&1 & ;; @@ -49,6 +49,10 @@ cmd copyto ${{ notify-send "📋 File(s) copied." "File(s) copies to $dest." }} +cmd bulkrename ${{ + vidir +}} + # Bindings map c $lf -remote "send $id cd $(cut -d' ' -f2 ~/.config/directories | fzf)" map $lf -remote "send $id select '$(fzf)'" @@ -61,6 +65,7 @@ map M moveto map a push %mkdir map r push :rename map R $lf -remote "send $id push :rename$f" +map b bulkrename map reload map shell map x $$f diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index a158f9ab..16d88fb5 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -91,10 +91,6 @@ set clipboard+=unnamedplus autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff autocmd BufRead,BufNewFile *.tex set filetype=tex -" Copy selected text to system clipboard: - vnoremap "+y - map "+P - " Save file as sudo on files that require root permission cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! diff --git a/.config/polybar/config b/.config/polybar/config new file mode 100644 index 00000000..ec7dd8b6 --- /dev/null +++ b/.config/polybar/config @@ -0,0 +1,413 @@ +; vim:ft=dosini +;===================================================== +; +; To learn more about how to configure Polybar +; go to https://github.com/jaagr/polybar +; +; The README contains alot of information +; +;===================================================== + +[colors] +black = ${xrdb:color0:#1d2021} +darkred = ${xrdb:color1:#cc241d} +darkgreen = ${xrdb:color2:#98971a} +darkyellow = ${xrdb:color3:#d79921} +darkblue = ${xrdb:color4:#458588} +darkmagenta = ${xrdb:color5:#b16286} +darkcyan = ${xrdb:color6:#689d6a} +lightgray = ${xrdb:color7:#a89984} +gray = ${xrdb:color8:#928374} +red = ${xrdb:color9:#fb4934} +green = ${xrdb:color10:#b8bb26} +yellow = ${xrdb:color11:#fabd2f} +blue = ${xrdb:color12:#83a598} +magenta = ${xrdb:color13:#d3869b} +cyan = ${xrdb:color14:#8ec07c} +white = ${xrdb:color15:#ebdbb2} +background = ${xrdb:color256:#1d2021} +foreground = ${xrdb:color257:#ebdbb2} + +[bar/default] +;monitor = ${env:MONITOR:LVDS-1} +;monitor = ${env:MONITOR:HDMI-1} +enable-ipc = true +width = 100% +height = 24 +;offset-x = 1% +;offset-y = 1% +;radius = 6.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = {$xrdb:red} + +border-size = 0 +border-color = ${colors.white} + +padding-left = 0 +padding-right = 0 + +module-margin-left = 1 +module-margin-right = 1 + +font-0 = mono:pixelsize=9;1 +font-1 = Inconsolata Nerd Font:size=8;1 +font-2 = Noto Color Emoji:scale=10:style=Regular;2 +font-3 = Symbola:pixelsize=9;1 + + +; Other modules: xkeyboard filesystem xbacklight backlight-acpi cpu memory temperature powermenu weather +modules-left = bspwm xwindow +;modules-center = +modules-right = mpd volume mutt-wizard wlan eth battery date + +tray-position = right +tray-padding = 0 + +wm-restack = bspwm + +;override-redirect = true + +scroll-up = bspwm-desknext +scroll-down = bspwm-deskprev + +[module/mutt-wizard] + +type = custom/script +exec = mailbox +interval = 5 +format-prefix = " " +format-underline = ${colors.red} + +click-left = st -e neomutt + + +[module/weather] + +type = custom/script +exec = weather +interval = 5000 +;format-underline = + +[module/xwindow] +type = internal/xwindow +label = %title:0:45:...% +format-foreground = ${colors.blue} + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +format-prefix = " " +format-prefix-foreground = ${colors.gray} +format-prefix-underline = ${colors.darkmagenta} + +label-layout = %layout% +label-layout-underline = ${colors.darkmagenta} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-background = ${colors.darkmagenta} +label-indicator-underline = ${colors.darkmagenta} + +[module/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / +mount-1 = /home + +label-mounted-underline = ${colors.cyan} +label-mounted = /: %percentage_used%% +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.gray} + +[module/bspwm] +type = internal/bspwm + +label-focused = %index% +label-focused-foreground = ${colors.black} +label-focused-background = ${colors.blue} +label-focused-underline= ${colors.yellow} +label-focused-padding = 1 + +label-occupied = %index% +label-occupied-underline = ${colors.blue} +label-occupied-padding = 1 + +label-urgent = %index%! +label-urgent-background = ${colors.red} +label-urgent-padding = 1 + +label-empty = %index% +label-empty-foreground = ${colors.lightgray} +label-empty-padding = 1 + +[module/i3] +type = internal/i3 +format = +index-sort = true +wrapping-scroll = false + +; Only show workspaces on the same output as the bar +;pin-workspaces = true + +label-mode-padding = 2 +label-mode-foreground = ${colors.white} +label-mode-background = ${colors.darkyellow} + +; focused = Active workspace on focused monitor +label-focused = %index% +label-focused-background = ${colors:black} +;label-focused-background = ${module/bspwm.label-focused-background} +label-focused-underline = ${module/bspwm.label-focused-underline} +label-focused-padding = ${module/bspwm.label-focused-padding} + +; unfocused = Inactive workspace on any monitor +label-unfocused = %index% +label-unfocused-padding = ${module/bspwm.label-occupied-padding} + +; visible = Active workspace on unfocused monitor +label-visible = %index% +label-visible-background = ${self.label-focused-background} +label-visible-underline = ${self.label-focused-underline} +label-visible-padding = ${self.label-focused-padding} + +; urgent = Workspace with urgency hint set +label-urgent = %index% +label-urgent-background = ${module/bspwm.label-urgent-background} +label-urgent-padding = ${module/bspwm.label-urgent-padding} + +[module/mpd] +type = internal/mpd +format-online = + +click-left = st -e ncmpcpp +click-right = mpc toggle + +label-song = %artist% - %title% +label-song-maxlen = 70 +label-song-ellipsis = true + +format-paused-foreground = ${colors.gray} + +[module/xbacklight] +type = internal/xbacklight + +format =