aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/profiles/xorg/default.nix2
-rw-r--r--users/tdback/desktop.nix3
-rw-r--r--users/tdback/modules/polybar/default.nix113
-rw-r--r--users/tdback/modules/xmonad/default.nix68
-rw-r--r--users/tdback/modules/xorg/default.nix110
5 files changed, 70 insertions, 226 deletions
diff --git a/modules/profiles/xorg/default.nix b/modules/profiles/xorg/default.nix
index 8004d05..46c2777 100644
--- a/modules/profiles/xorg/default.nix
+++ b/modules/profiles/xorg/default.nix
@@ -21,7 +21,7 @@
enable = true;
xkb.layout = "us";
displayManager.lightdm.enable = true;
- windowManager.bspwm.enable = true;
+ windowManager.xmonad.enable = true;
};
security.rtkit.enable = true;
diff --git a/users/tdback/desktop.nix b/users/tdback/desktop.nix
index 9b7fa8d..5760bc0 100644
--- a/users/tdback/desktop.nix
+++ b/users/tdback/desktop.nix
@@ -38,10 +38,9 @@ in
./modules/firefox
./modules/mpd
./modules/ncmpcpp
- ./modules/polybar
./modules/rofi
./modules/tmux
- ./modules/xorg
+ ./modules/xmonad
];
home.packages = with pkgs.unstable; [
diff --git a/users/tdback/modules/polybar/default.nix b/users/tdback/modules/polybar/default.nix
deleted file mode 100644
index 72c7be8..0000000
--- a/users/tdback/modules/polybar/default.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}:
-{
- services.polybar = {
- enable = true;
- package = pkgs.unstable.polybar.override { pulseSupport = true; };
- script = "polybar main &";
- settings =
- let
- colors = {
- alert = "#505050";
- background = "#050505";
- background-alt = "#373B41";
- foreground = "#F1F1F1";
- };
- in
- {
- "bar/main" = {
- width = "100%";
- height = "18pt";
- line.size = "3pt";
- font = [ "JetBrainsMonoNerdFont:size=9" ];
- foreground = "${colors.foreground}";
- background = "${colors.background}";
- separator = "|";
- padding = {
- left = 1;
- right = 1;
- };
-
- module.margin = 1;
- modules = {
- left = "bspwm";
- center = "time";
- right = "volume cpu memory date";
- };
-
- wm.restack = "bspwm";
- cursor.click = "pointer";
- };
-
- "module/bspwm" = {
- type = "internal/bspwm";
- pin.workspaces = true;
- label = {
- focused = {
- text = "%index%";
- foreground = "${colors.foreground}";
- padding = 1;
- };
- occupied = {
- text = "%index%";
- foreground = "${colors.alert}";
- padding = 1;
- };
- urgent = {
- text = "%index%";
- foreground = "${colors.foreground}";
- background = "${colors.background-alt}";
- padding = 1;
- };
- empty.text = "";
- };
- };
-
- "module/cpu" = {
- type = "internal/cpu";
- interval = 3;
- label = "CPU %percentage%%";
- };
-
- "module/memory" = {
- type = "internal/memory";
- interval = 3;
- label = "RAM %percentage_used%%";
- };
-
- "module/volume" = {
- type = "internal/pulseaudio";
- label = {
- volume = "VOL %percentage%%";
- muted = "VOL 0%";
- };
- click.right = "${lib.getExe pkgs.unstable.pavucontrol}";
- };
-
- "module/time" = {
- type = "internal/date";
- interval = 1;
- label = "%time%";
- time = "%H:%M";
- };
-
- "module/date" = {
- type = "internal/date";
- interval = 1;
- label = "%date%";
- date = "%m.%d.%Y";
- };
-
- "settings" = {
- screenchange.reload = true;
- pseudo.transparency = true;
- };
- };
- };
-
- # Automatically start polybar for graphical sessions.
- systemd.user.services.polybar.Install.WantedBy = [ "graphical-session.target" ];
-}
diff --git a/users/tdback/modules/xmonad/default.nix b/users/tdback/modules/xmonad/default.nix
new file mode 100644
index 0000000..7a59dbe
--- /dev/null
+++ b/users/tdback/modules/xmonad/default.nix
@@ -0,0 +1,68 @@
+{
+ lib,
+ pkgs,
+ ...
+}:
+let
+ inherit (lib) getExe;
+in
+{
+ # Enable xmonad and xmonad-contrib.
+ xsession.windowManager.xmonad = {
+ enable = true;
+ enableContribAndExtras = true;
+ };
+
+ # Enable xmobar, which will be started from xmonad.
+ programs.xmobar = {
+ enable = true;
+ package = pkgs.unstable.xmobar;
+ extraConfig =
+ let
+ volume = lib.getExe pkgs.unstable.pavucontrol;
+ in
+ ''
+ Config
+ { font = "JetBrainsMono Nerd Font 9"
+ , allDesktops = True
+ , hideOnStart = False
+ , lowerOnStart = True
+ , overrideRedirect = True
+ , persistent = True
+ , sepChar = "%"
+ , alignSep = "}{"
+ , template = "%XMonadLog%}%time%{<action=`${volume}` button=1>%default:Master%</action> | %cpu% | %memory% | %date% "
+ , commands =
+ [ Run Cpu ["-t", "CPU: <total>%"] 10
+ , Run Memory ["-t", "RAM: <usedratio>%"] 10
+ , Run Date "%m.%d.%Y" "date" 10
+ , Run Date "%H:%M" "time" 10
+ , Run Volume "default" "Master" ["-t", "VOL: <volume>%"] 10
+ , Run XMonadLog
+ ]
+ }
+ '';
+ };
+
+ # Generate X11 init scripts.
+ home.file = with pkgs.unstable; {
+ ".xinitrc".text = ''
+ [ -f ~/.xprofile ] && . ~/.xprofile
+ [ -f ~/.Xresources ] && ${getExe xorg.xrdb} -merge ~/.Xresources
+ exec xmonad
+ '';
+ ".xprofile".text = ''
+ ${getExe xorg.setxkbmap} -layout us
+ ${getExe xorg.xrandr} --output DP-0 --primary --mode 1920x1080 --rotate normal --rate 165
+ ${getExe xorg.xset} r rate 350 40
+ ${getExe xorg.xsetroot} -cursor_name left_ptr
+ ~/.fehbg
+ '';
+ ".Xresources".text = "Xcursor.size: 24";
+ };
+
+ # Include these packages.
+ home.packages = with pkgs.unstable; [
+ pamixer
+ ];
+}
diff --git a/users/tdback/modules/xorg/default.nix b/users/tdback/modules/xorg/default.nix
deleted file mode 100644
index d45f00e..0000000
--- a/users/tdback/modules/xorg/default.nix
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}:
-with pkgs.unstable;
-let
- inherit (lib) getExe getExe';
-in
-{
- xsession.windowManager.bspwm = {
- enable = true;
- package = bspwm;
- settings =
- let
- border = "#16191F";
- feedback = "#485264";
- in
- {
- window_gap = 4;
- border_width = 1;
- top_padding = 2;
- bottom_padding = 2;
- right_padding = 2;
- left_padding = 2;
- top_monocle_padding = 0;
- bottom_monocle_padding = 0;
- right_monocle_padding = 0;
- left_monocle_padding = 0;
- split_ratio = 0.5;
- borderless_monocle = true;
- gapless_monocle = true;
- normal_border_color = border;
- active_border_color = border;
- focused_border_color = feedback;
- };
-
- rules = {
- "Zathura".state = "tiled";
- };
-
- startupPrograms = [
- "${getExe xorg.setxkbmap} -layout us"
- "${getExe xorg.xsetroot} -cursor_name left_ptr"
- "${getExe xorg.xset} r rate 350 40"
- "~/.fehbg"
- ];
-
- extraConfig = ''
- ${getExe' bspwm "bspc"} monitor -d 1 2 3 4 5 6 7 8 9
- '';
- };
-
- services.sxhkd = {
- enable = true;
- package = sxhkd;
- keybindings =
- let
- bspc = getExe' bspwm "bspc";
- in
- {
- # Program hotkeys.
- "alt + Tab" = "${getExe rofi} -show window";
- "super + r" = "${getExe rofi} -show drun";
- "super + x" = getExe alacritty;
- "super + b" = "$BROWSER";
- "super + p" = "snapshot -f";
- "super + shift + p" = "snapshot";
- "super + Escape" = "systemctl --user restart polybar";
- "super + alt + {q,r}" = "${bspc} {quit,wm -r}";
-
- # Function hotkeys.
- "XF86AudioPrev" = "${getExe mpc} prev";
- "XF86AudioNext" = "${getExe mpc} next";
- "XF86AudioPlay" = "${getExe mpc} toggle";
- "XF86AudioLowerVolume" = "${getExe pamixer} -d 5";
- "XF86AudioRaiseVolume" = "${getExe pamixer} -i 5";
- "XF86AudioMute" = "${getExe pamixer} -t";
-
- # Manipulate window manager.
- "super + q" = "${bspc} node -{c,k}";
- "super + f" = "${bspc} node focused.tiled -t fullscreen";
- "super + t" = "${bspc} node focused.fullscreen -t tiled";
- "super + shift + f" = "${bspc} node focused.tiled -t floating";
- "super + shift + t" = "${bspc} node focused.floating -t tiled";
- "super + {_,shift + }{h,j,k,l}" = "${bspc} node -{f,s} {west,south,north,east}";
- "super + {_,shift}c" = "${bspc} node -f {next,prev}.local.!hidden.window";
- "super + bracket{left,right}" = "${bspc} desktop -f {prev,next}.local";
- "super + {grave,Tab}" = "${bspc} {node,desktop} -f last";
- "super + {o,i}" = "${bspc} wm -h off; ${bspc} node {older,newer} -f; ${bspc} wm -h on";
- "super + {_,shift + }{1-9,0}" = "${bspc} {desktop -f, node -d} '^{1-9,10}'";
- "super + alt + {h,j,k,l}" = "${bspc} node -z {left -20 0, bottom 0 20, top 0 -20, right 20 0}";
- "super + alt + shift {h,j,k,l}" =
- "${bspc} node -z {right -20 0, top 0 20, bottom 0 -20, left 20 0}";
- "super + {Left,Down,Up,Right}" = "${bspc} node -v {-20 0,0 20,0 -20,20 0}";
- };
- };
-
- # Generate X11 init scripts.
- home.file = {
- ".xinitrc".text = ''
- [ -f ~/.xprofile ] && . ~/.xprofile
- [ -f ~/.Xresources ] && ${getExe xorg.xrdb} -merge ~/.Xresources
- exec ${getExe' bspwm "bspwm"}
- '';
- ".xprofile".text =
- "${getExe xorg.xrandr} --output DP-0 --primary --mode 1920x1080 --rotate normal --rate 165";
- ".Xresources".text = "Xcursor.size: 24";
- };
-}