diff --git a/config/users/alex/default.nix b/config/users/alex/default.nix index 9511f5d..3268a52 100644 --- a/config/users/alex/default.nix +++ b/config/users/alex/default.nix @@ -17,6 +17,7 @@ drawio exiftool # For digikam famistudio + feh digikam firefox flameshot @@ -67,12 +68,15 @@ enable = true; settings = { border_width = 10; + focus_follows_pointer = true; }; extraConfig = '' - bspc monitor -d I II III IV V + bspc monitor DP-2 -d I II III IV V + bspc monitor HDMI-1 -d VI VII VIII IX X + polybar & ''; - startupPrograms = [ ]; + startupPrograms = [ "picom" "polybar primary" "polybar secondary" ]; }; }; @@ -80,7 +84,6 @@ { enable = true; keybindings = { - "Super_L; @Super_L" = "rofi -show drun"; "super + Return" = "kitty"; # @@ -154,14 +157,208 @@ # move a floating window "super + {Left,Down,Up,Right}" = " bspc node -v {-20 0,0 20,0 -20,20 0}"; + + "Super_L; @Super_L" = "rofi -show drun"; }; }; services.polybar = { enable = true; - config = "${pkgs.polybar}/etc/polybar/config.ini"; - script = "polybar &"; + script = ""; # required but we start polybar via bspwm, so dont start it here. + config = rec { + colors = { + background = "#282A2E"; + # background = "#ff00ff"; + background-alt = "#373B41"; + foreground = "#C5C8C6"; + primary = "#F0C674"; + secondary = "#8ABEB7"; + alert = "#A54242"; + disabled = "#707880"; + }; + + common-bar = { + width = "100%"; + height = "24pt"; + radius = 10; + + #;dpi = 96 + + background = colors.background; + foreground = colors.foreground; + line-size = "3pt"; + + border-size = "4pt"; + border-color = "#00000000"; + + padding-left = 0; + padding-right = 1; + + module-margin = 1; + + separator = "|"; + separator-foreground = colors.disabled; + + font-0 = "monospace;2"; + wm-restack = "bspwm"; + + cursor-click = "pointer"; + cursor-scroll = "ns-resize"; + + enable-ipc = true; + }; + + "bar/primary" = common-bar // { + monitor = "DP-2"; + modules-left = "xworkspaces xwindow"; + modules-right = "filesystem memory cpu wlan date"; + + }; + + "bar/secondary" = common-bar // { + monitor = "HDMI-1"; + modules-left = "xworkspaces"; + modules-center = "date"; + }; + + "module/xworkspaces" = { + type = "internal/xworkspaces"; + + group-by-monitor = true; + pin-workspaces = true; + + 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; + }; + }; + extraConfig = '' + [module/systray] + type = internal/tray + + format-margin = 8pt + tray-spacing = 16pt + + [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 = %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 = + format-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 = %l:%M%P + date-alt = %Y-%m-%d %H:%M:%S + + label = %date% + label-foreground = ''${colors.primary} + + [settings] + screenchange-reload = true + pseudo-transparency = true + + ; vim:ft=dosini + + ''; }; + + services.picom = { + enable = true; + backend = "glx"; + + activeOpacity = 0.9; + inactiveOpacity = 0.6; + shadow = true; + vSync = true; + + settings = { + blur = { + method = "gaussian"; + size = 50; + deviation = 10.0; + }; + corner-radius = 15; + }; + }; + # User software configurations programs = { bash = { @@ -223,7 +420,6 @@ }; }; }; - git = { enable = true; userEmail = "alexmat2on@protonmail.com"; @@ -262,17 +458,23 @@ }; vscode = { enable = true; - extensions = with pkgs; [ - vscode-extensions.eamodio.gitlens - vscode-extensions.jnoortheen.nix-ide - vscode-extensions.scalameta.metals + extensions = with pkgs.vscode-extensions; [ + eamodio.gitlens + jnoortheen.nix-ide + scalameta.metals + kamikillerto.vscode-colorize + vscode-icons-team.vscode-icons ]; userSettings = { - "workbench.colorTheme" = "Default Dark Modern"; "security.workspace.trust.untrustedFiles" = "open"; - "nix.formatterPath" = "nixpkgs-fmt"; + "workbench.colorTheme" = "Default Dark Modern"; "files.autoSave" = "afterDelay"; "editor.formatOnSave" = true; + "nix.formatterPath" = "nixpkgs-fmt"; + "colorize.languages" = [ + "javascript" + "nix" + ]; }; }; }; diff --git a/quick-switch.sh b/quick-switch.sh index ac2b90e..df99eb1 100755 --- a/quick-switch.sh +++ b/quick-switch.sh @@ -22,6 +22,9 @@ function yes_or_no { function reset_bspwm() { pkill -USR1 -x sxhkd + pkill -x picom + pkill polybar + sxhkd & bspc wm -r }