Files
nixos-config/backup/bspwm.nix
Alexander Szczepanski 6d9f59e21b some changes
2022-08-11 19:18:41 +02:00

276 lines
8.1 KiB
Nix

{ config, pkgs, lib, ... }:
let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
in
{
services = {
blueman.enable = true;
accounts-daemon.enable = pkgs.lib.mkForce false;
xserver = {
enable = true;
displayManager = {
lightdm = {
enable = true;
background = ../wallpaper.jpg;
greeters.gtk.theme = {
name = "Adwaita-dark";
};
};
defaultSession = "xsession";
session = [{
manage = "desktop";
name = "xsession";
start = ''exec $HOME/.xsession'';
}];
};
desktopManager = {
xfce = {
enable = true;
noDesktop = true;
enableXfwm = true;
thunarPlugins = [ pkgs.xfce.thunar-archive-plugin ];
};
};
layout = "us";
# Enable touchpad support.
libinput.enable = true;
updateDbusEnvironment = true;
};
};
environment.systemPackages = with unstable.pkgs; [
lightlocker
pulseaudio-ctl
];
home-manager.users.alex = { pkgs, ... }: {
home = {
packages = with unstable.pkgs; [
arandr
evince
gnome.eog
gnome.file-roller
gnome.gnome-calculator
keepassxc
libnotify
gnome.cheese
];
};
gtk = {
enable = true;
font = {
name = "Liberation Sans Regular";
size = 12;
};
gtk3 = {
extraConfig = { gtk-application-prefer-dark-theme = 1; };
};
iconTheme = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
};
theme = { name = "Adwaita-dark"; };
};
services = {
# picom = {
# enable = true;
# blur = true;
# shadow = true;
# vSync = true;
# };
dunst = {
enable = true;
package = unstable.dunst;
iconTheme = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
};
settings = {
global = {
alignment = "center";
follow = "mouse";
font = "SF Pro Display Regular 12";
format = "%s %p %b";
width = "(0,300)";
# height = 300;
origin = "bottom-right";
notification_limit = 5;
offset = "4x4";
horizontal_padding = 8;
icon_position = "left";
idle_threshold = 120;
ignore_newline = "no";
indicate_hidden = "no";
line_height = 0;
markup = "yes";
max_icon_size = 64;
monitor = 0;
padding = 8;
separator_color = "frame";
separator_height = 1;
show_age_threshold = 60;
show_indicators = "no";
shrink = "yes";
sort = "yes";
stack_duplicates = "no";
startup_notification = true;
sticky_history = "yes";
transparency = 0;
word_wrap = "yes";
frame_width = 2;
frame_color = "#A6A6A6";
};
urgency_low = {
background = "#000000";
foreground = "#A6A6A6";
timeout = 4;
};
urgency_normal = {
background = "#000000";
foreground = "#A6A6A6";
timeout = 4;
};
urgency_critical = {
background = "#900000";
foreground = "#ffffff";
timeout = 16;
};
};
};
sxhkd = {
enable = true;
keybindings = {
"super + x" = "notify-send Time $(date '+%H:%M')";
"super + z" = "notify-send Battery $(cat /sys/class/power_supply/BAT0/capacity)%";
"alt + Tab" = "rofi -show window";
"super + Return" = "kitty";
"super + shift + Return" = "rofi -show drun";
"super + Escape" = "pkill -USR1 -x sxhkd";
"super {_,shift + }Tab" = "bspc node -f {next,prev}";
"super + shift + c" = "bspc node -c";
"super + a" = "bspc node @/ --flip vertical";
"super + d" = ''layer=normal; \
bspc query -N -n "focused.$\{layer\}" && layer=below; \
bspc node -l "$layer"'';
"super + {s,f,k}" =
''state={floating,fullscreen,pseudo_tiled}; \
bspc query -N -n "focused.$\{state\}" && state=tiled; \
bspc node -t "$state" '';
"super + alt + {Left,Down,Up,Right}" = "bspc node -p {west,south,north,east}";
"super + ctrl + {Left,Right,Up,Down}" = "xdo move {-x -50,-x +50,-y -50,-y +50}";
"super + ctrl + alt + {Left,Right,Up,Down}" = "xdo resize {-w -50,-w +50,-h -50,-h +50}";
"super + {_,shift + }{Left,Down,Up,Right}" = "bspc node -{f,s} {west,south,north,east}";
"super + m" = "bspc node -s biggest";
"super + l" = "~/.bin/lock";
"super + ctrl + space" = "bspc node -p cancel";
"super + apostrophe" = "bspc node -s last";
"super + ctrl + comma" = "bspc node @/ --rotate 90";
"super + shift + comma" = "bspc node @/ --circulate forward";
"super + {1-9,0}" = "bspc desktop -f '{I,II,III,IV,V,VI,VII,VIII,IX,X}' && notify-send `bspc query -D -d --names`";
"super + shift + {1-9,0}" = "bspc node -d '{I,II,III,IV,V,VI,VII,VIII,IX,X}'";
# "XF86AudioMute" = "pulseaudio-ctl mute";
# "XF86AudioLowerVolume" = "pulseaudio-ctl down";
# "XF86AudioRaiseVolume" = "pulseaudio-ctl up";
"Print" = "flameshot gui";
"super + v" = "bspc node -g hidden";
"super + shift + v" = "bspc node {,$(bspc query -N -n .hidden |tail -n 1)} -g hidden=off -d $(bspc query -D -d focused --names) -t floating -f";
};
};
# nextcloud-client = {
# enable = true;
# startInBackground = true;
# };
# polybar = {
# enable = true;
# script = "polybar bar &";
# settings = {
# "bar/top" = {
# monitor = "\${env:MONITOR:DisplayPort-1}";
# width = "100%";
# height = "3%";
# radius = 0;
# modules-center = "date";
# };
# "module/date" = {
# type = "internal/date";
# internal = 5;
# date = "%d.%m.%y";
# time = "%H:%M";
# label = "%time% %date%";
# };
# };
# };
redshift = {
enable = true;
duskTime = "21:00-22:00";
dawnTime = "06:30-07:00";
package = pkgs.redshift;
};
flameshot.enable = true;
};
xsession = {
enable = true;
pointerCursor = {
defaultCursor = "left_ptr";
name = "elementary";
package = pkgs.pantheon.elementary-icon-theme;
};
windowManager = {
command = pkgs.lib.mkForce ''
${pkgs.bspwm}/bin/bspwm -c ~/.config/bspwm/bspwmrc &
${pkgs.xfce.xfce4-session}/bin/xfce4-session
'';
bspwm = {
enable = true;
extraConfig = ''
bspc wm --adopt-orphans
node /home/alex/Sync/windows.js
bspc subscribe monitor_add monitor_remove| while read -r a event; do
node /home/alex/Sync/windows.js
done &
'';
settings = {
border_width = 4;
window_gap = 4;
top_padding = 0;
left_padding = 0;
right_padding = 0;
bottom_padding = 0;
split_ratio = 0.50;
borderless_monocle = true;
single_monocle = true;
gapless_monocle = true;
focus_follows_pointer = true;
pointer_follows_monitor = true;
pointer_follows_focus = false;
center_pseudo_tiled = true;
automatic_scheme = "alternate";
remove_unplugged_monitors = true;
remove_disabled_monitors = true;
normal_border_color = "#333333";
focused_border_color = "#666666";
presel_feedback_color = "#000000";
};
};
};
};
};
}