Browse Source

bspwm rice added

master
junikimm717 2 years ago
parent
commit
dd5db0b033
  1. 7
      configuration.nix
  2. 28
      dotfiles/bspwm/bspwmrc
  3. 204
      dotfiles/bspwm/polybar/config
  4. 19
      dotfiles/bspwm/polybar/launch.sh
  5. 142
      dotfiles/bspwm/sxhkdrc
  6. 14
      dotfiles/bspwm/xinitrc
  7. 0
      dotfiles/cwm/cwm.sh
  8. 0
      dotfiles/cwm/cwmrc
  9. 2
      dotfiles/cwm/xinitrc
  10. 84
      rices/bspwm.nix
  11. 6
      rices/cwm.nix

7
configuration.nix

@ -99,7 +99,12 @@
# List packages installed in system profile. To search, run:
# $ nix search wget
fonts.fonts = with pkgs; [ jetbrains-mono dejavu_fonts ];
fonts.fonts = with pkgs; [
jetbrains-mono
dejavu_fonts
noto-fonts-emoji
iosevka
];
environment.systemPackages = with pkgs; [
vim neovim neofetch pfetch tmux
fff

28
dotfiles/bspwm/bspwmrc

@ -0,0 +1,28 @@
#! /bin/sh
killall picom
picom &
nitrogen --restore &
~/.config/polybar/launch.bspwm.sh
pgrep -x sxhkd > /dev/null || sxhkd &
#bspc monitor -d I II III IV V VI VII VIII IX X
bspc monitor -d 1 2 3 4 5 6
bspc config border_width 1
bspc config window_gap 20
bspc config top_padding 25
bspc config split_ratio 0.50
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc rule -a Gimp desktop='^8' state=floating follow=on
bspc rule -a Spotify desktop='^6'
# only add if nothing is there
#if test "$(mpc playlist | wc -l)" -eq 0 ; then
# mpc ls | mpc add
#fi

204
dotfiles/bspwm/polybar/config

@ -0,0 +1,204 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
;==========================================================
[colors]
background = #222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #cec0af
secondary = #242e35
alert = #bd2c40
black = #000
white = #fff
grey = #aaa
darkgrey = #555
red = #f00
green = #0f0
blue = #2d02d0
yellow = #d2b55b
[bar/main]
modules-center = date
font-0 = Jetbrains Mono:style=Regular
height = 30
width = 320
offset-x = 15
offset-y = 15
background = ${colors.primary}
radius=5
override-redirect=true
[module/date]
type = internal/date
date = "%h-%d-20%y %r"
label-foreground = #000000
[bar/pulse]
modules-center = pulseaudio
height = 30
width = 200
offset-y = 15
#offset-x = 1300
offset-x = 350
radius=5
override-redirect=true
background = ${colors.secondary}
foreground = #fff
font-0 = Jetbrains Mono:style=Regular
font-1 = FontAwesome:style=Regular
font-2 = "Iosevka:pixelsize=12;0"
font-3 = RobotoMono Nerd Font:pixelsize=12;1
[bar/bspwm]
modules-center = bspwm
height = 30
width = 350
offset-y = 15
offset-x = 565
radius=5
background = ${colors.secondary}
font-0 = Jetbrains Mono:style=Regular
font-1 = "Iosevka:pixelsize=12;0"
[module/bspwm]
type=internal/bspwm
#label-focused = %index%
label-focused = ●
#label-focused-background = ${colors.blue}
label-focused-underline= #ffb52a
label-focused-padding = 2
#label-occupied = %index%
label-occupied = ○
label-occupied-padding = 2
#label-urgent = %index%!
label-urgent = ○
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
#label-empty = %index%
label-empty = ○
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
label-layout = %layout%
label-layout-foreground = ${colors.primary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
#[module/date]
#type = internal/date
#interval = 1
#date = %H:%M
#date-alt = %Y-%m-%d %H:%M:%S
#label = %date%
#label-foreground = ${colors.primary}
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini

19
dotfiles/bspwm/polybar/launch.sh

@ -0,0 +1,19 @@
#!/bin/bash
# Terminate already running bar instances
pkill polybar
# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
# Launch Polybar, using default config location ~/.config/polybar/config
newver() {
polybar main & sleep 0.5
polybar pulse &
polybar bspwm &
}
newver
echo "Polybar launched..."

142
dotfiles/bspwm/sxhkdrc

@ -0,0 +1,142 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
kitty
# browser
super + shift + w
brave
# program launcher
super + {p,space}
dmenu_run -fn "Fira Code:size=14"
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + shift + r
bspc wm -r
super + shift + p
~/.config/polybar/launch.bspwm.sh
super + shift + e
~/scripts/bin/quit.sh
# close and kill
super + shift + q
bspc node -c
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
super + g
bspc node -s biggest.window
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
#super + {p,b,comma,period}
# bspc node -f @{parent,brother,first,second}
# focus the next/previous window in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {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
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
# old alt keybindings
#
alt + {Up,Down}
pactl set-sink-volume 0 {+5%,-5%}
# screenshot capability
super + shift + s
mkdir -p ~/screenshots
scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png

14
dotfiles/bspwm/xinitrc

@ -0,0 +1,14 @@
#!/bin/bash
setxkbmap -option caps:escape
brightnessctl set 50%
source "/etc/X11/xinit/xinitrc.d/50-systemd-user.sh"
eval "$(gnome-keyring-daemon --start)"
export SSH_AUTH_SOCK
# USE BSPWM ONLY!!! (only place where configs fucking work)
export MANAGER=bspwm
exec $MANAGER

0
dotfiles/cwm.sh → dotfiles/cwm/cwm.sh

0
dotfiles/cwmrc → dotfiles/cwm/cwmrc

2
dotfiles/cwm/xinitrc

@ -0,0 +1,2 @@
xrandr -s 1600x900
exec dbus-run-session "$HOME/cwm.sh"

84
rices/bspwm.nix

@ -0,0 +1,84 @@
{ config, pkgs, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz";
in
{
imports = [
(import "${home-manager}/nixos")
];
services.xserver.displayManager.startx.enable = true;
home-manager.users.junikim = {
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "junikim";
home.homeDirectory = "/home/junikim";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "22.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.starship.enable = true;
home.packages = with pkgs; [
vim xclip neofetch tmux
fff
nodejs shellcheck
dash
wget brave
bspwm polybarFull kitty nitrogen dmenu picom
nfs-utils gcc gnumake pulsemixer
];
programs.neovim = {
enable = true;
plugins = with pkgs.vimPlugins; [
coc-nvim
neovim-sensible
vim-airline
vim-airline-themes
vim-nix
];
extraConfig = builtins.readFile ../dotfiles/init.vim;
};
programs.git = {
enable = true;
userName = "Juni Kim";
userEmail = "junikimm717@gmail.com";
};
programs.zsh = {
oh-my-zsh = {
enable = true;
theme = "robbyrussell";
};
};
home.file = {
#".config/nvim/init.vim".source = ./dotfiles/init.vim;
".config/polybar" = {
source = ../dotfiles/bspwm/polybar;
recursive = true;
};
".config/kitty/kitty.conf".source = ../dotfiles/kitty.conf;
".config/picom/picom.conf".source = ../dotfiles/picom.conf;
".config/nixpkgs/config.nix".source = ../dotfiles/config.nix;
".config/bspwm/bspwmrc".source = ../dotfiles/bspwm/bspwmrc;
".config/sxhkd/sxhkdrc".source = ../dotfiles/bspwm/sxhkdrc;
".xinitrc".source = ../dotfiles/bspwm/xinitrc;
".tmux.conf".source = ../dotfiles/tmux.conf;
".zshrc".source = ../dotfiles/zshrc;
};
};
}

6
rices/cwm.nix

@ -74,9 +74,9 @@ in
".config/kitty/kitty.conf".source = ../dotfiles/kitty.conf;
".config/picom/picom.conf".source = ../dotfiles/picom.conf;
".config/nixpkgs/config.nix".source = ../dotfiles/config.nix;
".cwmrc".source = ../dotfiles/cwmrc;
"cwm.sh".source = ../dotfiles/cwm.sh;
".xinitrc".source = ../dotfiles/xinitrc;
".cwmrc".source = ../dotfiles/cwm/cwmrc;
"cwm.sh".source = ../dotfiles/cwm/cwm.sh;
".xinitrc".source = ../dotfiles/cwm/xinitrc;
".tmux.conf".source = ../dotfiles/tmux.conf;
".zshrc".source = ../dotfiles/zshrc;
};

Loading…
Cancel
Save