Move picom config to home-manager, add setup for xfce desktop with bspwm window manager

This commit is contained in:
Evie Litherland-Smith 2023-04-04 14:20:49 +01:00
parent 9ca27329bd
commit ca888abcaf
10 changed files with 173 additions and 10 deletions

View file

@ -3,11 +3,4 @@
imports = [ imports = [
./common.nix ./common.nix
]; ];
services.picom = {
enable = true;
shadow = true;
fade = true;
activeOpacity = 1.0;
inactiveOpacity = 1.0;
};
} }

View file

@ -3,7 +3,6 @@
imports = [ imports = [
./common.nix ./common.nix
./xserver.nix ./xserver.nix
./picom.nix
]; ];
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;

19
nixos/desktop/xfce.nix Normal file
View file

@ -0,0 +1,19 @@
{ ... }:
{
imports = [
./common.nix
./xserver.nix
];
services.xserver = {
enable = true;
desktopManager.xterm.enable = false;
desktopManager.xfce = {
enable = true;
enableXfwm = false;
};
windowManager.bspwm.enable = true;
displayManager.sddm.enable = true;
displayManager.defaultSession = "xfce+bspwm";
};
}

17
nixos/home-manager/env/bspwm.nix vendored Normal file
View file

@ -0,0 +1,17 @@
{ ... }:
{
xsession.windowManager.bspwm = {
enable = true;
settings = {
window_gap = 12;
border_width = 2;
split_ratio = 0.5;
borderless_monocle = true;
gapless_monocle = true;
pointer_modifier = "mod1";
pointer_action1 = "move";
pointer_action2 = "resize_side";
pointer_action3 = "resize_corner";
};
};
}

View file

@ -1,6 +1,6 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./i3.nix ./xfce.nix
]; ];
} }

24
nixos/home-manager/env/picom.nix vendored Normal file
View file

@ -0,0 +1,24 @@
{ ... }:
{
services.picom = {
enable = true;
shadow = true;
fade = true;
activeOpacity = 1.0;
inactiveOpacity = 0.8;
settings = {
blur = {
# requires: https://github.com/ibhagwan/picom
# method = "dual_kawase";
method = "kernel";
strength = 7;
deviation = 1.0;
kernel = "11x11gaussian";
background = false;
background-frame = false;
background-fixed = false;
kern = "3x3box";
};
};
};
}

4
nixos/home-manager/env/polybar.nix vendored Normal file
View file

@ -0,0 +1,4 @@
{ ... }:
{
services.polybar.enable = true;
}

View file

@ -4,6 +4,5 @@
enable = true; enable = true;
location = "right"; location = "right";
pass.enable = true; pass.enable = true;
#theme = "$HOME/.dotfiles/nixos/home-manager/env/config/rofi/catppuccin-macchiato.rasi";
}; };
} }

94
nixos/home-manager/env/sxhkd.nix vendored Normal file
View file

@ -0,0 +1,94 @@
{ ... }:
{
services.sxhkd = {
enable = true;
keybindings = {
"super + w" = "firefox";
# terminal emulator
"super + Return" = "kitty";
"super + t" = "al-terminal";
"alt + shift + Return" = "al-terminal";
# file manager
"super + f" = "kitty -e ranger";
"super + shift + f" = "al-filemanager";
# program launcher
"super + @space" = "rofi_run -r";
"alt + p" = "rofi_run -r";
#to change tabs ig
# Switch to recent window
"alt + Tab" = "bspc node -f last.local";
# make sxhkd reload its configuration files:
"super + shift + r" = "pkill -USR1 -x sxhkd";
# quit bspwm normally
"super + x" = "rofi_run -l";
# Send the window to another edge of the screen
"super + {_,shift + }{Left,Down,Up,Right}" = "bspc node -{f,s} {west,south,north,east}";
# close and kill
"super + {_,shift + }q" = "bspc node -{c,k}";
# alternate between the tiled and monocle layout
#super + shift + m
"alt + Return" = "bspc desktop -l next";
# if the current node is automatic, send it to the last manual, otherwise pull the last leaf
"super + y" = "bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused";
# swap the current node and the biggest node
"super + g" = "bspc node -s biggest";
#
# state/flags
#
# set the window state
#super + {t,shift + t,s,f}
# bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
"alt + f" = "bspc node -t \"~\"{floating,tiled}";
# set the node flags
"super + ctrl + {x,y,z}" = "bspc node -g {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 node in the current desktop
"super + {_,shift + }c" = "bspc node -f {next,prev}.local";
# 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
"space + shift + {Left,Down,Up,Right}" = "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}
## Move floating windows
"alt + shift + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
# volume control keys
"XF86AudioMute" = "pamixer -t";
"XF86AudioRaiseVolume" = "pamixer -i 2";
"XF86AudioLowerVolume" = "pamixer -d 2";
"XF86MonBrightnessUp" = "xbacklight +10";
"XF86MonBrightnessDown" = "xbacklight -10";
# screenshot
"Print" = "flameshot gui";
};
};
}

14
nixos/home-manager/env/xfce.nix vendored Normal file
View file

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
imports = [
./bspwm.nix
./sxhkd.nix
./picom.nix
./rofi.nix
./polybar.nix
];
home.packages = with pkgs; [
xfce.thunar
ranger
];
}