This commit is contained in:
edwark43
2023-11-19 23:55:40 -05:00
committed by GitHub
parent f5fd9fb9f4
commit 4dc48552c7
82 changed files with 5097 additions and 2 deletions

View File

@@ -0,0 +1,69 @@
font:
normal:
family: JetBrainsMono Nerd Font
bold:
family: JetBrainsMono Nerd Font
italic:
family: JetBrainsMono Nerd Font
bold_italic:
family: JetBrainsMono Nerd Font
size: 10
colors:
primary:
background: '#1f2329'
foreground: '#b8bfe5'
normal:
black: '#0f1319'
red: '#644d66'
green: '#375759'
yellow: '#736871'
blue: '#3f5273'
magenta: '#543f66'
cyan: '#324f66'
white: '#b3b3b3'
bright:
black: '#b3b3b3'
red: '#735771'
green: '#3f6566'
yellow: '#807476'
blue: '#465b80'
magenta: '#533969'
cyan: '#385a73'
white: '#e5e5e5'
cursor:
cursor: '#465b80'
text: '#e5e5e5'
window:
padding:
x: 15
y: 15
decorations: none
opacity: 1.0
dynamic_title: true
history: 10000
multiplier: 3
selection:
save_to_clipboard: false
cursor:
style:
shape: Block
blinking: On
unfocused_hollow: false
blink_interval: 550
live_config_reload: true

76
config/bspwm/bspwmrc Normal file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env bash
PATH="$HOME/.local/bin:$PATH"
## Fix java applications
export _JAVA_AWT_WM_NONREPARENTING=1
# Workspaces
# Default 1 monitor with 6 workspaces
for monitor in "$(xrandr -q | grep -w 'connected' | cut -d' ' -f1)"; do
bspc monitor "$monitor" -d '1' '2' '3' '4' '5' '6'
done
# Bspwm Config
bspc config external_rules_command "$HOME"/.local/bin/externalrules
bspc config window_gap -1
bspc config split_ratio 0.51
bspc config single_monocle true
bspc config borderless_monocle false
bspc config gapless_monocle false
bspc config focus_follows_pointer true
bspc config pointer_follows_focus false
bspc config pointer_motion_interval 5
bspc config pointer_modifier mod4
bspc config pointer_action1 move
bspc config pointer_action2 resize_side
bspc config pointer_action3 resize_corner
bspc config border_width 2
bspc config top_padding 48
bspc config bottom_padding 48
bspc config left_padding 2
bspc config right_padding 2
bspc config normal_border_color "#252533"
bspc config active_border_color "#252533"
bspc config focused_border_color "#61C766"
bspc config presel_feedback_color "#61C766"
bspc rule -a scratch sticky=on state=floating focus=on
# Autostart
# Set system vars for polybar
. setsysvars
# Terminate already running polybar, sxhkd, dunst, and mpd instances
processes=("polybar" "sxhkd" "dunst" "mpd")
for process in "${processes[@]}"; do
if pgrep -f "$process"; then
pkill -9 -f "$process" > /dev/null; sleep 0.1
fi
done
# Load bspwm conf, colors, dunst, and bars
. "$HOME"/.config/polybar/bar.sh
pidof -q picom || { picom --config "$HOME"/.config/picom/picom.conf & }
# Set random wallpaper for actual rice
feh -z --no-fehbg --bg-fill "$HOME"/pics/wallpapers
# Reload sxhkd daemon
sxhkd -c "$HOME"/.config/sxhkd/sxhkdrc &
# Launch dunst notification daemon
dunst -config "$HOME"/.config/dunst/dunstrc &
# Launch polkit
pidof -q polkit-gnome-authentication-agent-1 || { /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & }
# Launch mpd
mpd
# Fix cursor
xsetroot -cursor_name left_ptr

64
config/dunst/dunstrc Normal file
View File

@@ -0,0 +1,64 @@
[global]
title = Dunst
class = Dunst
monitor = 0
follow = mouse
width = 300
height = 300
origin = top-right
offset = 10x92
indicate_hidden = yes
shrink = yes
transparency = 4
separator_height = 2
padding = 8
horizontal_padding = 11
frame_width = 6
frame_color = "#1f2329"
separator_color = "#3f5273"
font = JetBrainsMono Nerd Font Medium 9
line_height = 0
markup = full
format = "<span size='x-large' font_desc='Cantarell 9' weight='bold' foreground='#f9f9f9'>%s</span>\n%b"
alignment = center
idle_threshold = 120
show_age_threshold = 60
sort = no
word_wrap = yes
ignore_newline = no
stack_duplicates = false
hide_duplicate_count = yes
show_indicators = no
sticky_history = no
history_length = 20
always_run_script = true
corner_radius = 4
icon_position = left
max_icon_size = 80
icon_path = /usr/share/icons/Papirus-Dark/48x48/actions/:/usr/share/icons/Papirus-Dark/48x48/apps/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/emblems/:/usr/share/icons/Papirus-Dark/48x48/emotes/:/usr/share/icons/Papirus-Dark/48x48/mimetypes/:/usr/share/icons/Papirus-Dark/48x48/places/:/usr/share/icons/Papirus-Dark/48x48/status/
browser = brave
mouse_left_click = close_current
mouse_middle_click = do_action
mouse_right_click = close_all
[urgency_low]
timeout = 3
background = "#1f2329"
foreground = "#b3b3b3"
[urgency_normal]
timeout = 6
background = "#1f2329"
foreground = "#b3b3b3"
[urgency_critical]
timeout = 0
background = "#1f2329"
foreground = "#b3b3b3"

31
config/jgmenu/jgmenurc Normal file
View File

@@ -0,0 +1,31 @@
position_mode = pointer
stay_alive = 0
tint2_look = 0
terminal_exec = alacritty
terminal_args = -e
menu_width = 160
menu_padding_top = 5
menu_padding_right = 5
menu_padding_bottom = 5
menu_padding_left = 5
menu_radius = 8
menu_border = 0
menu_halign = left
sub_hover_action = 1
item_margin_y = 5
item_height = 30
item_padding_x = 8
item_radius = 6
item_border = 0
sep_height = 2
font = Clarity City Bold 12px
icon_size = 16
icon_theme = Papirus-Dark
arrow_string = 󰄾
color_menu_border = #ffffff 0
color_menu_bg = #1f2329
color_norm_bg = #ffffff 0
color_norm_fg = #b8bfe5
color_sel_bg = #23272e
color_sel_fg = #b8bfe5
color_sep_fg = #b3b3b3

25
config/jgmenu/menu.csv Normal file
View File

@@ -0,0 +1,25 @@
Terminal ,openapp --floating ,/usr/share/icons/Papirus/32x32/apps/terminal.svg
Web Browser ,openapp --browser ,/usr/share/icons/Papirus/32x32/apps/brave-browser.svg
File Manager ,openapp --filemanager ,/usr/share/icons/Papirus/32x32/apps/org.xfce.filemanager.svg
^sep()
Widgets ,^checkout(wg) ,/usr/share/icons/Papirus/32x32/apps/kmenuedit.svg
BSPWM ,^checkout(wm) ,/usr/share/icons/Papirus/32x32/apps/gnome-windows.svg
Exit ,^checkout(exit) ,/usr/share/icons/Papirus/32x32/apps/system-shutdown.svg
^tag(wg)
User Card ,openapp --usercard ,/usr/share/icons/Papirus/32x32/apps/system-users.svg
Power Menu ,openapp --powermenu ,/usr/share/icons/Papirus/32x32/status/changes-allow.svg
Calendar ,openapp --calendar ,/usr/share/icons/Papirus/32x32/apps/office-calendar.svg
^tag(wm)
Change Theme ,openapp --rice ,/usr/share/icons/Papirus/32x32/apps/colors.svg
Keybinds ,keybindingshelp ,/usr/share/icons/Papirus/32x32/apps/preferences-desktop-keyboard-shortcuts.svg
Restart WM ,bspc wm -r ,/usr/share/icons/Papirus/32x32/apps/system-reboot.svg
Quit ,bspc quit ,/usr/share/icons/Papirus/32x32/apps/system-log-out.svg
^tag(exit)
Block computer ,physlock -d ,/usr/share/icons/Papirus/32x32/status/changes-prevent.svg
Reboot ,systemctl reboot ,/usr/share/icons/Papirus/32x32/apps/system-reboot.svg
Shutdown ,systemctl poweroff ,/usr/share/icons/Papirus/32x32/apps/system-shutdown.svg
1 Terminal ,openapp --floating ,/usr/share/icons/Papirus/32x32/apps/terminal.svg
2 Web Browser ,openapp --browser ,/usr/share/icons/Papirus/32x32/apps/brave-browser.svg
3 File Manager ,openapp --filemanager ,/usr/share/icons/Papirus/32x32/apps/org.xfce.filemanager.svg
4 ^sep()
5 Widgets ,^checkout(wg) ,/usr/share/icons/Papirus/32x32/apps/kmenuedit.svg
6 BSPWM ,^checkout(wm) ,/usr/share/icons/Papirus/32x32/apps/gnome-windows.svg
7 Exit ,^checkout(exit) ,/usr/share/icons/Papirus/32x32/apps/system-shutdown.svg
8 ^tag(wg)
9 User Card ,openapp --usercard ,/usr/share/icons/Papirus/32x32/apps/system-users.svg
10 Power Menu ,openapp --powermenu ,/usr/share/icons/Papirus/32x32/status/changes-allow.svg
11 Calendar ,openapp --calendar ,/usr/share/icons/Papirus/32x32/apps/office-calendar.svg
12 ^tag(wm)
13 Change Theme ,openapp --rice ,/usr/share/icons/Papirus/32x32/apps/colors.svg
14 Keybinds ,keybindingshelp ,/usr/share/icons/Papirus/32x32/apps/preferences-desktop-keyboard-shortcuts.svg
15 Restart WM ,bspc wm -r ,/usr/share/icons/Papirus/32x32/apps/system-reboot.svg
16 Quit ,bspc quit ,/usr/share/icons/Papirus/32x32/apps/system-log-out.svg
17 ^tag(exit)
18 Block computer ,physlock -d ,/usr/share/icons/Papirus/32x32/status/changes-prevent.svg
19 Reboot ,systemctl reboot ,/usr/share/icons/Papirus/32x32/apps/system-reboot.svg
20 Shutdown ,systemctl poweroff ,/usr/share/icons/Papirus/32x32/apps/system-shutdown.svg

0
config/mpd/log Normal file
View File

20
config/mpd/mpd.conf Normal file
View File

@@ -0,0 +1,20 @@
music_directory "~/music"
playlist_directory "~/.config/mpd/playlists"
db_file "~/.config/mpd/mpd.db"
state_file "~/.config/mpd/mpdstate"
auto_update "yes"
bind_to_address "127.0.0.1"
bind_to_address "~/.config/mpd/socket"
audio_output {
type "pulse"
name "pulse audio"
}
audio_output {
type "fifo"
name "my_fifo"
path "/tmp/mpd.fifo"
format "44100:16:2"
}

0
config/mpd/mpd.db Normal file
View File

0
config/mpd/mpdstate Normal file
View File

View File

73
config/ncmpcpp/config Normal file
View File

@@ -0,0 +1,73 @@
mpd_host = "127.0.0.1"
mpd_port = 6600
mpd_connection_timeout = "5"
mpd_crossfade_time = "5"
mpd_music_dir = ~/music
lyrics_directory = ~/.config/ncmpcpp/lyrics
execute_on_song_change = "mediacontrol nccover ; dunstify --replace=27072 -i /tmp/cover.png "Playing.." "$(mpc --format '%title% \n%artist%' current)""
visualizer_data_source = /tmp/mpd.fifo
visualizer_output_name = my_fifo
visualizer_in_stereo = "yes"
visualizer_fps = "60"
visualizer_type = "spectrum"
visualizer_look = ●●
visualizer_color = "13"
visualizer_spectrum_smooth_look = "yes"
# GENERAL
# ---
connected_message_on_startup = "yes"
cyclic_scrolling = "yes"
mouse_support = "no"
mouse_list_scroll_whole_page = "yes"
lines_scrolled = "1"
message_delay_time = "1"
playlist_shorten_total_times = "yes"
playlist_display_mode = "columns"
browser_display_mode = "columns"
search_engine_display_mode = "columns"
playlist_editor_display_mode = "columns"
autocenter_mode = "yes"
centered_cursor = "yes"
user_interface = "classic"
follow_now_playing_lyrics = "yes"
locked_screen_width_part = "50"
ask_for_locked_screen_width_part = "yes"
display_bitrate = "no"
external_editor = "nano"
main_window_color = "default"
startup_screen = "playlist"
# PROGRESS BAR
# ---
progressbar_look = "▪▪▪"
#progressbar_look = "▃▃▃"
progressbar_elapsed_color = "magenta"
progressbar_color = "black"
# UI VISIBILITY
# ---
header_visibility = "no"
statusbar_visibility = "yes"
titles_visibility = "yes"
enable_window_title = "yes"
# COLORS
# ---
statusbar_color = "white"
color1 = "white"
color2 = "blue"
# UI APPEARANCE
# ---
now_playing_prefix = "$b$2$7 "
now_playing_suffix = " $/b$8"
current_item_prefix = "$b$7$/b$3 "
current_item_suffix = " $8"
song_columns_list_format = "(50)[]{t|fr:Title} (0)[magenta]{a}"
song_list_format = " {%t $R  $8%a$8}|{%f $R  $8%l$8} $8"
song_status_format = "$b$2󰣐 $7 {$b$6$8 %t $6} $7 $8"
song_window_title_format = "Now Playing .."

0
config/ncmpcpp/error.log Normal file
View File

7
config/nvim/init.lua Normal file
View File

@@ -0,0 +1,7 @@
require("config.plugins-setup")
require("config.core.options")
require("config.core.keymaps")
require("config.core.colorscheme")
require("config.plugins.nvim-tree")
require("config.plugins.lualine")
require("config.plugins.colorizer")

View File

@@ -0,0 +1,11 @@
local status, _ = pcall(vim.cmd, "colorscheme onedark")
if not status then
print("Colorscheme not found!") -- print error if colorscheme not installed
return
end
require('onedark').setup {
style = 'darker',
transparent = true
}
require('onedark').load()

View File

@@ -0,0 +1,19 @@
vim.g.mapleader = " "
local keymap = vim.keymap -- haz las cosas facil..
-- General Keymaps
-- window management
keymap.set("n", "<leader>sv", "<C-w>v") -- split window vertically
keymap.set("n", "<leader>sh", "<C-w>s") -- split window horizontally
keymap.set("n", "<leader>se", "<C-w>=") -- make split windows equal width & height
keymap.set("n", "<leader>sx", ":close<CR>") -- close current split window
keymap.set("n", "<leader>to", ":tabnew<CR>") -- open new tab
keymap.set("n", "<leader>tx", ":tabclose<CR>") -- close current tab
keymap.set("n", "<leader>tn", ":tabn<CR>") -- go to next tab
keymap.set("n", "<leader>tp", ":tabp<CR>") -- go to previous tab
-- nvim-tree
keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>") -- toggle file explorer

View File

@@ -0,0 +1,38 @@
local opt = vim.opt -- for conciseness
-- Numeracion de las lineas
opt.relativenumber = true
opt.number = true
-- tabs & indentation
opt.tabstop = 4
opt.shiftwidth = 4
opt.expandtab = true
opt.autoindent = true
-- Line wrapping
opt.wrap = false
-- Search setting
opt.ignorecase = true
opt.smartcase = true
-- Cursor line
opt.cursorline = true
-- appearance
opt.termguicolors = true
opt.background = "dark"
opt.signcolumn = "yes"
-- Backspace
opt.backspace = "indent,eol,start"
-- Clipboard
opt.clipboard:append("unnamedplus")
-- Splitt Windows
opt.splitright = true
opt.splitbelow = true
opt.iskeyword:append("-")

View File

@@ -0,0 +1,52 @@
-- auto install packer if not installed
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
vim.cmd([[packadd packer.nvim]])
return true
end
return false
end
local packer_bootstrap = ensure_packer() -- true if packer was just installed
-- autocommand that reloads neovim and installs/updates/removes plugins
-- when file is saved
vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins-setup.lua source <afile> | PackerSync
augroup end
]])
-- import packer safely
local status, packer = pcall(require, "packer")
if not status then
return
end
-- add list of plugins to install
return packer.startup(function(use)
-- packer can manage itself
use("wbthomason/packer.nvim")
use("navarasu/onedark.nvim")
-- file explorer
use("nvim-tree/nvim-tree.lua")
-- vs-code like icons
use("nvim-tree/nvim-web-devicons")
-- statusline
use("nvim-lualine/lualine.nvim")
-- Colorizer
use("norcalli/nvim-colorizer.lua")
if packer_bootstrap then
require("packer").sync()
end
end)

View File

@@ -0,0 +1,12 @@
require'colorizer'.setup(
{'*';},
{
RGB = true; -- #RGB hex codes
RRGGBB = true; -- #RRGGBB hex codes
names = true; -- "Name" codes like Blue
RRGGBBAA = true; -- #RRGGBBAA hex codes
rgb_fn = true; -- CSS rgb() and rgba() functions
hsl_fn = true; -- CSS hsl() and hsla() functions
css = true; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true; -- Enable all CSS *functions*: rgb_fn, hsl_fn
})

View File

@@ -0,0 +1,36 @@
-- import lualine plugin safely
local status, lualine = pcall(require, "lualine")
if not status then
return
end
-- get lualine nightfly theme
local lualine_onedark = require("lualine.themes.onedark")
-- new colors for theme
local new_colors = {
blue = "#65D1FF",
green = "#3EFFDC",
violet = "#FF61EF",
yellow = "#FFDA7B",
black = "#000000",
}
-- change nightlfy theme colors
lualine_onedark.normal.a.bg = new_colors.blue
lualine_onedark.insert.a.bg = new_colors.green
lualine_onedark.visual.a.bg = new_colors.violet
lualine_onedark.command = {
a = {
gui = "bold",
bg = new_colors.yellow,
fg = new_colors.black, -- black
},
}
-- configure lualine with modified theme
lualine.setup({
options = {
theme = lualine_onedark,
},
})

View File

@@ -0,0 +1,40 @@
-- import nvim-tree plugin safely
local setup, nvimtree = pcall(require, "nvim-tree")
if not setup then
return
end
-- recommended settings from nvim-tree documentation
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- change color for arrows in tree to light blue
vim.cmd([[ highlight NvimTreeIndentMarker guifg=#3FC5FF ]])
-- configure nvim-tree
nvimtree.setup({
-- change folder arrow icons
renderer = {
icons = {
glyphs = {
folder = {
arrow_closed = "", -- arrow when folder is closed
arrow_open = "", -- arrow when folder is open
},
},
},
},
-- disable window_picker for
-- explorer to work well with
-- window splits
actions = {
open_file = {
window_picker = {
enable = false,
},
},
},
-- git = {
-- ignore = false,
-- },
})

23
config/picom/picom.conf Normal file
View File

@@ -0,0 +1,23 @@
# Available backends "xrender" "glx" "egl" "xr_glx_hybrid"
backend = "glx";
dithered-present = false;
vsync = false;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
glx-no-stencil = true;
use-damage = true;
log-level = "warn";
wintypes:
{
normal = { fade = false; shadow = false; }
tooltip = { fade = false; shadow = false; focus = true; full-shadow = false; }
dock = { shadow = false; clip-shadow-above = false; }
dnd = { shadow = false; }
};

6
config/polybar/bar.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
for mon in $(polybar --list-monitors | cut -d":" -f1); do
(MONITOR=$mon polybar -q bar1 -c "$HOME"/.config/polybar/config.ini)&
(MONITOR=$mon polybar -q bar2 -c "$HOME"/.config/polybar/config.ini)&
done

23
config/polybar/colors.ini Normal file
View File

@@ -0,0 +1,23 @@
[bar]
bg = #0b0910
bg-alt = #708491
fg = #8C8C8C
mb = #252533
trans = #00000000
white = #FFFFFF
black = #000000
red = #EC7875
pink = #EC407A
purple = #BA68C8
blue = #42A5F5
cyan = #4DD0E1
teal = #00B19F
green = #61C766
lime = #B9C244
yellow = #FDD835
amber = #FBC02D
orange = #E57C46
brown = #AC8476
grey = #8C8C8C
indigo = #6C77BB
blue-gray = #6D8895

118
config/polybar/config.ini Normal file
View File

@@ -0,0 +1,118 @@
[global/wm]
margin-bottom = 0
margin-top = 0
include-file = system.ini
include-file = colors.ini
include-file = modules.ini
[bar/bar1]
monitor = ${env:MONITOR:}
monitor-strict = false
override-redirect = false
bottom = false
fixed-center = true
width = 100%
height = 30
offset-x = 0
offset-y = 0
background = ${bar.bg}
foreground = ${bar.fg}
radius = 0
line-size = 2
line-color = ${bar.blue}
border-size = 8
border-color = ${bar.bg}
padding-left = 1
padding-right = 1
module-margin-left = 0
module-margin-right = 0
font-0 = "JetBrainsMono:style=Regular:size=9;2"
font-1 = "Material Design Icons Desktop:size=13;3"
font-2 = "Material Design Icons Desktop:size=16;4"
font-3 = "MesloLGS NF:style=Regular:size=17;4"
modules-left = sep date sep
modules-center = bspwm
modules-right = sep filesystem cpu_bar memory_bar sep network sep battery sep
separator =
dim-value = 1.0
wm-restack = bspwm
enable-ipc = true
cursor-click = pointer
cursor-scroll =
[bar/bar2]
monitor = ${env:MONITOR:}
monitor-strict = false
override-redirect = false
bottom = true
fixed-center = true
width = 100%
height = 30
offset-x = 0
offset-y = 0
background = ${bar.bg}
foreground = ${bar.fg}
radius = 0
line-size = 2
line-color = ${bar.blue}
border-size = 8
border-color = ${bar.bg}
padding-left = 1
padding-right = 1
module-margin-left = 0
module-margin-right = 0
font-0 = "JetBrainsMono:style=Regular:size=9;3"
font-1 = "Material Design Icons Desktop:size=13;4"
font-2 = "Font Awesome 6 Free Solid:size=10;3"
font-3 = "MesloLGS NF:style=Regular:size=17;4"
modules-left = title
modules-center = mpd_control sep mpd
modules-right = mod sep weather sep pulseaudio sep sep updates sep
separator =
dim-value = 1.0
wm-restack = bspwm
enable-ipc = true
cursor-click = pointer
cursor-scroll =
[settings]
screenchange-reload = false
compositing-background = source
compositing-foreground = over
compositing-overline = over
compositing-underline = over
compositing-border = over
pseudo-transparency = true

276
config/polybar/modules.ini Normal file
View File

@@ -0,0 +1,276 @@
[module/date]
type = internal/date
interval = 1.0
time = %I:%M %P
format-foreground = ${bar.fg}
date-alt = " %A, %d %B %Y"
format = <label>
label = "%date% %time%"
######################################################
[module/filesystem]
type = internal/fs
mount-0 = /
interval = 60
fixed-values = false
format-mounted = <label-mounted>
format-mounted-prefix = "disk: "
format-mounted-prefix-foreground = ${bar.green}
format-unmounted = <label-unmounted>
format-unmounted-prefix = "disk: "
label-mounted = "%used% "
label-unmounted = %mountpoint%: not mounted
######################################################
[module/network]
type = internal/network
interface = ${system.sys_network_interface}
interval = 3.0
accumulate-stats = true
unknown-as-up = true
format-connected = <label-connected>
format-connected-prefix = "net: "
format-connected-foreground = ${bar.green}
speed-unit = ""
label-connected = "%netspeed%"
label-connected-foreground = ${bar.blue}
format-disconnected = <label-disconnected>
format-disconnected-prefix = "net: "
format-disconnected-foreground = ${bar.red}
label-disconnected = offline
label-disconnected-foreground = ${bar.red}
######################################################
[module/pulseaudio]
type = internal/pulseaudio
use-ui-max = true
interval = 5
;;<bar-volume>
format-volume = <label-volume>
format-volume-prefix = "vol: "
format-volume-foreground = ${bar.green}
label-volume = "%percentage%"
label-volume-foreground = ${bar.fg}
format-muted = <label-muted>
format-muted-prefix = 󰝟
label-muted = " Muted"
label-muted-foreground = ${bar.red}
######################################################
[module/battery]
type = internal/battery
full-at = 99
battery = ${system.sys_battery}
adapter = ${system.sys_adapter}
poll-interval = 2
time-format = %H:%M
format-charging = <label-charging>
format-charging-prefix = " bat: "
format-charging-prefix-font = 5
format-charging-prefix-foreground = ${bar.green}
label-charging = "%percentage%%"
format-discharging = <label-discharging>
format-discharging-prefix = " bat: "
format-discharging-prefix-font = 5
format-discharging-prefix-foreground = ${bar.green}
label-discharging = "%percentage%%"
format-full = <label-full>
format-full-prefix = " bat: "
format-full-prefix-font = 5
format-full-prefix-foreground = ${bar.green}
label-full = "%percentage%%"
######################################################
[module/weather]
type = custom/script
exec = weather wmodule
interval = 900
format = <label>
label = " %output% "
######################################################
[module/bspwm]
type = internal/bspwm
enable-click = true
enable-scroll = true
reverse-scroll = true
pin-workspaces = true
occupied-scroll = false
ws-icon-0 = 1;󰬺
ws-icon-1 = 2;󰬻
ws-icon-2 = 3;󰬼
ws-icon-3 = 4;󰬽
ws-icon-4 = 5;󰬾
ws-icon-5 = 6;󰬿
ws-icon-default = "♟ "
format = <label-state>
format-font = 3
label-focused = %icon%
label-focused-background = ${bar.mb}
label-focused-padding = 1
label-focused-foreground = ${bar.fg}
label-occupied = %icon%
label-occupied-padding = 1
label-occupied-foreground= ${bar.fg}
label-urgent = %icon%
label-urgent-padding = 1
label-empty = %icon%
label-empty-foreground = ${bar.fg}
label-empty-padding = 1
label-separator = ""
label-separator-padding = 0
label-separator-foreground = ${bar.bg-alt}
[module/mod]
type = internal/bspwm
format = <label-mode>
format-background = ${bar.bg}
format-foreground = ${bar.green}
format-padding = 1
format-font = 1
label-monocle = "monocle"
label-tiled = "tiled"
label-floating = " | float"
label-pseudotiled = " | pseudo"
label-fullscreen = " | full"
label-locked = " | locked"
label-sticky = " | sticky"
label-private = " | private"
######################################################
[module/title]
type = internal/xwindow
format = <label>
label = %title%
label-maxlen = 45
label-empty = "bspwm"
label-empty-foreground = ${bar.grey}
######################################################
[module/updates]
type = custom/script
exec = updates --get-updates
interval = 120
label = "%output%"
format-prefix = "upd: "
format-prefix-foreground = ${bar.green}
######################################################
[module/sep]
type = custom/text
label = " "
label-foreground = ${bar.bg-alt}
######################################################
[module/cpu_bar]
type = internal/cpu
interval = 0.5
format = <label>
format-prefix = "cpu: "
format-prefix-foreground = ${bar.green}
label = "%percentage%% "
######################################################
[module/memory_bar]
type = internal/memory
interval = 3
format = <label>
format-prefix = "mem: "
format-prefix-foreground = ${bar.green}
label = "%used% "
######################################################
[module/mpd_control]
type = internal/mpd
host = 127.0.0.1
port = 6600
interval = 2
format-online = <icon-prev><toggle><icon-next>
format-offline = <label-offline>
label-offline = "󰝛 No Music"
icon-play = " %{T2}󰐌"
icon-pause = " %{T2}󰏥"
icon-stop = " %{T2}󰙦"
icon-prev = "%{T2}󰼨"
icon-next = " %{T2}󰼧"
format-offline-foreground = ${bar.grey}
icon-play-foreground = ${bar.lime}
icon-pause-foreground = ${bar.lime}
icon-stop-foreground = ${bar.lime}
icon-prev-foreground = ${bar.blue}
icon-next-foreground = ${bar.blue}
toggle-on-foreground = ${bar.green}
toggle-off-foreground = ${bar.red}
######################################################
[module/mpd]
type = internal/mpd
host = 127.0.0.1
port = 6600
interval = 2
format-online = "%{F#9ece6a}[%{F-} %{A1:openapp --music:}<label-song>%{A} %{F#9ece6a}]%{F-}"
format-offline = ""
label-song = "%title%"
label-song-maxlen = 40
icon-repeat = "󰝚"
icon-repeat-background = ${bar.bg}
toggle-on-foreground = ${bar.green}
toggle-off-foreground = ${bar.red}
#####################################################

11
config/polybar/system.ini Normal file
View File

@@ -0,0 +1,11 @@
;; The variables for the polybar modules are taken from this file.
;; Edit according to your system
;; Run `ls -1 /sys/class/power_supply/` to list list batteries and adapters.
;; Run `ls -1 /sys/class/backlight/` to list available graphics cards.
;; Run `ip link | awk '/state UP/ {print $2}' | tr -d :` to get active network interface.
[system]
sys_adapter = AC
sys_battery = BAT1
sys_graphics_card = intel_backlight
sys_network_interface = wlan0

239
config/ranger/rc.conf Normal file
View File

@@ -0,0 +1,239 @@
set preview_script ~/.config/ranger/scope.sh
# Use the external preview script or display simple plain text or image previews?
set use_preview_script true
# Use one of the supported image preview protocols
set preview_images true
# Set the preview image method.
set preview_images_method ueberzug
# Which colorscheme to use? These colorschemes are available by default:
# default, jungle, snow, solarized
set colorscheme default
# Preview files on the rightmost column?
# And collapse (shrink) the last column if there is nothing to preview?
set preview_files true
set preview_directories true
set collapse_preview true
# Use a unicode "..." character to mark cut-off filenames?
set unicode_ellipsis true
# Which viewmode should be used? Possible values are:
# miller: Use miller columns which show multiple levels of the hierarchy
# multipane: Midnight-commander like multipane view showing all tabs next
# to each other
set viewmode miller
# How many columns are there, and what are their relative widths?
set column_ratios 1,3,3
# Which files should be hidden? (regular expression)
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden false
# Ask for a confirmation when running the "delete" command?
# Valid values are "always", "never", "multiple" (default)
# With "multiple", ranger will ask only if you delete multiple files at once.
set confirm_on_delete multiple
# Automatically count files in the directory, even before entering them?
set automatically_count_files true
# Open all images in this directory when running certain image viewers
# like feh or sxiv? You can still open selected files by marking them.
set open_all_images true
# Be aware of version control systems and display information.
set vcs_aware true
# State of the four backends git, hg, bzr, svn. The possible states are
# disabled, local (only show local info), enabled (show local and remote
# information).
set vcs_backend_git enabled
set vcs_backend_hg disabled
set vcs_backend_bzr disabled
set vcs_backend_svn disabled
# Truncate the long commit messages to this length when shown in the statusbar.
set vcs_msg_length 50
# Show dotfiles in the bookmark preview box?
set show_hidden_bookmarks true
# Wrap long lines in plain text previews?
set wrap_plaintext_previews true
# Save the console history on exit?
set save_console_history false
# Draw the status bar on top of the browser window (default: bottom)
set status_bar_on_top false
# Draw a progress bar in the status bar which displays the average state of all
# currently running tasks which support progress bars?
set draw_progress_bar_in_status_bar true
# Draw borders around columns?
set draw_borders both
# Display the directory name in tabs?
set dirname_in_tabs true
# Enable the mouse support?
set mouse_enabled true
# Display the file size in the main column or status bar?
set display_size_in_main_column false
set display_size_in_status_bar true
# Display the free disk space in the status bar?
set display_free_space_in_status_bar false
# Display files tags in all columns or only in main column?
set display_tags_in_all_columns false
# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
set update_title true
# Set the tmux/screen window-name to "ranger"?
set update_tmux_title true
# Shorten the title if it gets long? The number defines how many
# directories are displayed at once, 0 turns off this feature.
set shorten_title 3
# Show hostname in titlebar?
set hostname_in_titlebar true
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
set tilde_in_titlebar true
# How many directory-changes or console-commands should be kept in history?
set max_history_size 20
set max_console_history_size 50
# Try to keep so much space between the top/bottom border when scrolling:
set scroll_offset 8
# Flush the input after each key hit? (Noticeable when ranger lags)
set flushinput true
# Padding on the right when there's no preview?
# This allows you to click into the space to run the file.
set padding_right true
# Save bookmarks (used with mX and `X) instantly?
# This helps to synchronize bookmarks between multiple ranger
# instances but leads to *slight* performance loss.
# When false, bookmarks are saved when ranger is exited.
set autosave_bookmarks false
# Save the "`" bookmark to disk. This can be used to switch to the last
# directory by typing "``".
set save_backtick_bookmark true
# You can display the "real" cumulative size of directories by using the
# command :get_cumulative_size or typing "dc". The size is expensive to
# calculate and will not be updated automatically. You can choose
# to update it automatically though by turning on this option:
set autoupdate_cumulative_size false
# Turning this on makes sense for screen readers:
set show_cursor false
# One of: size, natural, basename, atime, ctime, mtime, type, random
set sort natural
# Additional sorting options
set sort_reverse false
set sort_case_insensitive true
set sort_directories_first true
set sort_unicode false
# Enable this if key combinations with the Alt Key don't work for you.
# (Especially on xterm)
set xterm_alt_key false
# Whether to include bookmarks in cd command
set cd_bookmarks true
# Changes case sensitivity for the cd command tab completion
set cd_tab_case sensitive
# Use fuzzy tab completion with the "cd" command. For example,
# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
set cd_tab_fuzzy true
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
# disable this feature.
set preview_max_size 0
# The key hint lists up to this size have their sublists expanded.
# Otherwise the submaps are replaced with "...".
set hint_collapse_threshold 10
# Add the highlighted file to the path in the titlebar
set show_selection_in_titlebar true
# The delay that ranger idly waits for user input, in milliseconds, with a
# resolution of 100ms. Lower delay reduces lag between directory updates but
# increases CPU load.
set idle_delay 2000
# When the metadata manager module looks for metadata, should it only look for
# a ".metadata.json" file in the current directory, or do a deep search and
# check all directories above the current one as well?
set metadata_deep_search false
# Clear all existing filters when leaving a directory
set clear_filters_on_dir_change false
# Disable displaying line numbers in main column.
# Possible values: false, absolute, relative.
set line_numbers false
# When line_numbers=relative show the absolute line number in the
# current line.
set relative_current_zero false
# Start line numbers from 1 instead of 0
set one_indexed false
# Save tabs on exit
set save_tabs_on_exit false
# Enable scroll wrapping - moving down while on the last item will wrap around to
# the top and vice versa.
set wrap_scroll false
# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
# directories, files and symlinks respectively.
set global_inode_type_filter
# This setting allows to freeze the list of files to save I/O bandwidth. It
# should be 'false' during start-up, but you can toggle it by pressing F.
set freeze_files false
# Print file sizes in bytes instead of the default human-readable format.
set size_in_bytes false
# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
# give a warning when you nest ranger in a subshell started by ranger.
# Special value "error" makes the warning more visible.
set nested_ranger_warning true
# ===================================================================
# == Local Options
# ===================================================================
# You can set local options that only affect a single directory.
# Examples:
# setlocal path=~/downloads sort mtime
default_linemode devicons

98
config/ranger/rifle.conf Normal file
View File

@@ -0,0 +1,98 @@
# Websites
ext x?html?, has brave, X, flag f = brave -- "$@"
# Misc
mime ^text, label editor = nvim -- "$@"
mime ^text, label pager = "$PAGER" -- "$@"
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = nvim -- "$@"
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
ext 1 = man "$1"
ext s[wmf]c, has zsnes, X = zsnes "$1"
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
ext nes, has fceux, X = fceux "$1"
ext exe = wine "$1"
name ^[mM]akefile$ = make
# Code
ext py = python -- "$1"
ext pl = perl -- "$1"
ext rb = ruby -- "$1"
ext js = node -- "$1"
ext sh = sh -- "$1"
ext php = php -- "$1"
# Audio without X
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
# Video/Audio with a GUI
mime ^video, has mpv, X, flag f = mpv -- "$@"
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
# Video without X:
mime ^video, terminal, !X, has mpv = mpv -- "$@"
# Documents
ext pdf, has zathura, X, flag f = zathura -- "$@"
ext pdf, has mupdf, X, flag f = mupdf "$@"
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
ext pdf, has evince, X, flag f = evince -- "$@"
ext pdf, has atril, X, flag f = atril -- "$@"
ext pdf, has okular, X, flag f = okular -- "$@"
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
ext pdf, has open, X, flag f = open "$@"
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
ext djvu, has zathura,X, flag f = zathura -- "$@"
ext djvu, has evince, X, flag f = evince -- "$@"
ext djvu, has atril, X, flag f = atril -- "$@"
ext djvu, has djview, X, flag f = djview -- "$@"
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
# Image Viewing:
mime ^image, has feh, X, flag f = feh -- "$@"
ext xcf, X, flag f = gimp -- "$@"
# Archives
# avoid password prompt by providing empty password
ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
# Listing and extracting archives without atool:
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
ext zip, has unzip = unzip -l "$1" | less
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
ext ace, has unace = unace l "$1" | less
ext ace, has unace = for file in "$@"; do unace e "$file"; done
ext rar, has unrar = unrar l "$1" | less
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
# Flag t fallback terminals
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
# Misc
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
# Define the editor for non-text files + pager as last action
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
# The very last action, so that it's never triggered accidentally, is to execute a program:
mime application/x-executable = "$1"

179
config/ranger/scope.sh Normal file
View File

@@ -0,0 +1,179 @@
#!/usr/bin/env bash
set -o noclobber -o noglob -o nounset -o pipefail
IFS=$'\n'
# If the option `use_preview_script` is set to `true`,
# then this script will be called and its output will be displayed in ranger.
# ANSI color codes are supported.
# STDIN is disabled, so interactive scripts won't work properly
# This script is considered a configuration file and must be updated manually.
# It will be left untouched if you upgrade ranger.
# Meanings of exit codes:
# code | meaning | action of ranger
# -----+------------+-------------------------------------------
# 0 | success | Display stdout as preview
# 1 | no preview | Display no preview at all
# 2 | plain text | Display the plain content of the file
# 3 | fix width | Don't reload when width changes
# 4 | fix height | Don't reload when height changes
# 5 | fix both | Don't ever reload
# 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
# 7 | image | Display the file directly as an image
# Script arguments
FILE_PATH="${1}" # Full path of the highlighted file
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
FILE_EXTENSION="${FILE_PATH##*.}"
FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]')
# Settings
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
HIGHLIGHT_TABWIDTH=8
HIGHLIGHT_STYLE='pablo'
PYGMENTIZE_STYLE='autumn'
handle_extension() {
case "${FILE_EXTENSION_LOWER}" in
# Archive
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
atool --list -- "${FILE_PATH}" && exit 5
bsdtar --list --file "${FILE_PATH}" && exit 5
exit 1;;
rar)
# Avoid password prompt by providing empty password
unrar lt -p- -- "${FILE_PATH}" && exit 5
exit 1;;
7z)
# Avoid password prompt by providing empty password
7z l -p -- "${FILE_PATH}" && exit 5
exit 1;;
# PDF
pdf)
# Preview as text conversion
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
# BitTorrent
torrent)
transmission-show -- "${FILE_PATH}" && exit 5
exit 1;;
# OpenDocument
odt|ods|odp|sxw)
# Preview as text conversion
odt2txt "${FILE_PATH}" && exit 5
exit 1;;
# HTML
htm|html|xhtml)
# Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 5
lynx -dump -- "${FILE_PATH}" && exit 5
elinks -dump "${FILE_PATH}" && exit 5
;; # Continue with next handler on failure
esac
}
handle_image() {
local mimetype="${1}"
case "${mimetype}" in
# SVG
image/svg+xml)
convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
exit 1;;
# Image
image/*)
local orientation
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
# If orientation data is present and the image actually
# needs rotating ("1" means no rotation)...
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
# ...auto-rotate the image according to the EXIF data.
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
fi
# `w3mimgdisplay` will be called for all images (unless overriden as above),
# but might fail for unsupported types.
exit 7;;
# Video
video/*)
# Thumbnail
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
exit 1;;
# PDF
application/pdf)
pdftoppm -f 1 -l 1 \
-scale-to-x 1920 \
-scale-to-y -1 \
-singlefile \
-jpeg -tiffcompression jpeg \
-- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
&& exit 6 || exit 1;;
esac
}
handle_mime() {
local mimetype="${1}"
case "${mimetype}" in
# Text
text/* | */xml)
# Syntax highlight
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
exit 2
fi
if [[ "$( tput colors )" -ge 256 ]]; then
local pygmentize_format='terminal256'
local highlight_format='xterm256'
else
local pygmentize_format='terminal'
local highlight_format='ansi'
fi
highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
--style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5
# pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
exit 2;;
# Image
image/*)
# Preview as text conversion
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
exiftool "${FILE_PATH}" && exit 5
exit 1;;
# Video and audio
video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
esac
}
handle_fallback() {
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
exit 1
}
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
handle_image "${MIMETYPE}"
fi
handle_extension
handle_mime "${MIMETYPE}"
handle_fallback
exit 1

164
config/rofi/launcher.rasi Normal file
View File

@@ -0,0 +1,164 @@
configuration {
modi: "drun";
icon-theme: "Papirus-Dark";
application-fallback-icon: "Adwaita";
show-icons: true;
drun-display-format: "{name}";
disable-history: true;
sidebar-mode: false;
hover-select: true;
me-select-entry: "";
me-accept-entry: "MousePrimary";
}
/*****----- Global Properties -----*****/
* {
font: "JetBrainsMono Nerd Font Bold 9";
background: #1f2329;
background-alt: #1f2329E0;
foreground: #b8bfe5;
selected: #3f5273;
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
border: 2px;
border-color: #465b80;
fullscreen: false;
width: 550px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
border-radius: 0px;
cursor: "default";
background-color: @background;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 0px;
background-color: transparent;
orientation: vertical;
children: [ "inputbar", "listbox" ];
}
listbox {
spacing: 10px;
padding: 10px 5px 10px 5px;
background-color: transparent;
orientation: vertical;
children: [ "message", "listview" ];
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
background-color: transparent;
text-color: @foreground;
orientation: horizontal;
children: [ "textbox-prompt-colon", "entry" ];
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "";
padding: 12px 15px;
border-radius: 8px;
background-color: @background-alt;
text-color: inherit;
}
entry {
enabled: true;
expand: true;
padding: 12px 16px;
border-radius: 8px;
background-color: @background-alt;
text-color: inherit;
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
}
dummy {
expand: true;
background-color: transparent;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 3;
lines: 5;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 1px;
background-color: transparent;
text-color: @foreground;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 10px;
padding: 8px;
border-radius: 4px;
background-color: transparent;
text-color: @foreground;
cursor: pointer;
}
element normal.normal {
background-color: inherit;
text-color: inherit;
}
element selected.normal {
background-color: @selected;
text-color: @background;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 24px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Message -----*****/
message {
background-color: transparent;
}
textbox {
padding: 12px;
border-radius: 5px;
background-color: @background-alt;
text-color: @foreground;
vertical-align: 0.5;
horizontal-align: 0.0;
}
error-message {
padding: 12px;
border-radius: 5px;
background-color: @background;
text-color: @foreground;
}

173
config/sxhkd/sxhkdrc Normal file
View File

@@ -0,0 +1,173 @@
#|||----- Applications -----|||#
# Open Terminal (alacritty)
super + Return
openapp --terminal
# Open floating Terminal
super + alt + Return
openapp --floating
# Menu applications
super + F1
openapp --menu
#####
# Apps (browser, editor, filemanager, music, and updater)
shift + alt + {b,v,f,k,u}
openapp {--browser,--nvim,--ranger, --music, --update}
#|||----- System Keybindings -----|||#
# Show keybindings help
alt + F1
keybindingshelp
# jgmenu
~button3
xqp 0 $(xdo id -N Bspwm -n root) && jgmenu --csv-file=~/.config/jgmenu/menu.csv --config-file=~/.config/jgmenu/jgmenurc
# Scratchpad
super + alt + o
tdrop -a -w 70% -h 35% -y 0 -x 15% --class scratch alacritty --class=scratch
# Power off, Reboot, Log out, Lockscreen, kill an app
ctrl + super + alt + {p,r,q,l,k}
{systemctl poweroff, systemctl reboot,bspc quit,physlock -d,xkill}
# Hide/Show Bar
super + {h,u}
hidebar {-h,-u}
# Change transparency on focused window
ctrl + alt + {plus,minus,t}
picom-trans {-c -o +3,-c -o -1,-c -d}
# Random wallpaper
super + alt + w
feh -z --no-fehbg --bg-fill ~/pics/wallpapers/
# Screenshot Now
Print
screenshoter --now
# Screenshot Select
ctrl + Print
screenshoter --sel
# Screenshot in 10s
alt + Print
screenshoter --in10
# Screenshot active window
shift + Print
screenshoter --active
# Manage brightness
XF86MonBrightness{Up,Down}
sh brightness {up,down}
# Volume control
XF86Audio{RaiseVolume,LowerVolume,Mute}
volume{ --inc, --dec, --toggle}
# Music Control
XF86Audio{Next,Prev,Play,Stop}
mediacontrol {--next,--previous,--toggle,--stop}
#|||----- Bspwm hotkeys -----|||#
# Reload BSPWM
super + alt + r
bspc wm -r
# close and kill
super + {_,shift + }q
bspc node -{c,k}
# Reload Keybindings
super + Escape
pkill -USR1 -x sxhkd; dunstify -u low -i ~/.local/share/assets/reload.svg 'sxhkd' 'The configuration file has been reloaded successfully!'
#####
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
ctrl + alt {m,x,s,p}
bspc node -g {marked,locked,sticky,private}
# Hide/Unhide Window
ctrl + alt + h
bsphidenode
#####
# rotate desktop
super + r
bspc node @/ --rotate {90,-90}
# Circulate the leaves of the tree
super + c
bspc node @/ --circulate {backward,forward}
# Change focus of the Node or Swap Nodes
super + {_,shift + }{Left,Down,Up,Right}
bspc node -{f,s} {west,south,north,east}
# Switch workspace
super + ctrl + {Left,Right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus or send to the given desktop
super + ctrl + {1-9,0}
bspc {node -d} '^{1-9,10}' '--follow'
# Send focused Node to workspace directionally
super + ctrl + shift + {Left,Right}
bspc node -d {prev,next} '--follow'
#####
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + alt + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#####
# expand a window
super + alt + {Left,Down,Up,Right}
bspc node -z {left -10 0,bottom 0 10,top 0 -10,right 10 0}
# contract a window
super + alt + shift + {Left,Down,Up,Right}
bspc node -z {right -10 0,top 0 10,bottom 0 -10,left 10 0}
# move a floating window
alt + shift {Left,Down,Up,Right}
bspc node -v {-10 0,0 10,0 -10,10 0}

9
config/user-dirs.dirs Normal file
View File

@@ -0,0 +1,9 @@
XDG_DESKTOP_DIR="$HOME/desk"
XDG_DOWNLOAD_DIR="$HOME/down"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/docs"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/pics"
XDG_VIDEOS_DIR="$HOME/vids"
XDG_GAMES_DIR="$HOME/games"

1840
config/zsh/zcompdump Normal file

File diff suppressed because it is too large Load Diff

3
config/zsh/zhistory Normal file
View File

@@ -0,0 +1,3 @@
curl -L https://is.gd/lkarch -o $HOME/setup.sh
chmod +x setup.sh
./setup.sh