diff options
Diffstat (limited to 'home/wayland/modules/sway')
| -rw-r--r-- | home/wayland/modules/sway/bemenu.nix | 13 | ||||
| -rw-r--r-- | home/wayland/modules/sway/home.nix | 200 | ||||
| -rw-r--r-- | home/wayland/modules/sway/i3status.nix | 5 | ||||
| -rw-r--r-- | home/wayland/modules/sway/mako.nix | 18 | ||||
| -rw-r--r-- | home/wayland/modules/sway/swayidle.nix | 110 | ||||
| -rw-r--r-- | home/wayland/modules/sway/swaylock.nix | 6 | ||||
| -rw-r--r-- | home/wayland/modules/sway/theme.nix | 3 | 
7 files changed, 195 insertions, 160 deletions
diff --git a/home/wayland/modules/sway/bemenu.nix b/home/wayland/modules/sway/bemenu.nix index ced6b2f..ed1094d 100644 --- a/home/wayland/modules/sway/bemenu.nix +++ b/home/wayland/modules/sway/bemenu.nix @@ -1,12 +1,15 @@ -{ config, lib, ... }: let +{ config, lib, ... }: +let    background = "#000000";    foreground = "#FFFFFF";    swayYellow = "#d79921"; -  font = config.global.font.sans.name -    + lib.optionalString (config.global.font.sans.size != null) -      " " + builtins.toString config.global.font.sans.size; -in { +  font = +    config.global.font.sans.name +    + lib.optionalString (config.global.font.sans.size != null) " " +    + builtins.toString config.global.font.sans.size; +in +{    programs.bemenu = {      enable = true; diff --git a/home/wayland/modules/sway/home.nix b/home/wayland/modules/sway/home.nix index 776d26c..7dc24c2 100644 --- a/home/wayland/modules/sway/home.nix +++ b/home/wayland/modules/sway/home.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: let +{ +  config, +  pkgs, +  lib, +  ... +}: +let    mod = "mod4";    left = "h";    right = "l"; @@ -6,7 +12,7 @@    up = "k";    background = "${config.xdg.dataHome}/wayland/desktop"; -  wayland-scripts = pkgs.callPackage ../../pkgs/wayland-scripts {}; +  wayland-scripts = pkgs.callPackage ../../pkgs/wayland-scripts { };    cwall = "${wayland-scripts}/bin/cwall";    daskpass = "${wayland-scripts}/bin/daskpass"; @@ -22,10 +28,12 @@    mako = lib.getExe config.services.mako.package;    firefox = lib.getExe config.programs.firefox.finalPackage; -  font = config.global.font.sans.name -    + lib.optionalString (config.global.font.sans.size != null) -      " " + builtins.toString config.global.font.sans.size; -in { +  font = +    config.global.font.sans.name +    + lib.optionalString (config.global.font.sans.size != null) " " +    + builtins.toString config.global.font.sans.size; +in +{    imports = [      ./mako.nix      ./theme.nix @@ -66,107 +74,107 @@ in {      settings = {        bar = { -	inherit font; -	position = "top"; -	status_command = i3status; -	colors = { -	  background = "#000000"; -	  focused_workspace = "#000000 #000000 #ffba08"; -	  inactive_workspace = "#000000 #000000 #cde4e6"; -	}; +        inherit font; +        position = "top"; +        status_command = i3status; +        colors = { +          background = "#000000"; +          focused_workspace = "#000000 #000000 #ffba08"; +          inactive_workspace = "#000000 #000000 #cde4e6"; +        };        };        bindgesture = { -	"swipe:left" = "workspace next"; -	"swipe:right" = "workspace prev"; -	"swipe:down" = "exec ${swaylock}"; -	"swipe:up" = "exec ${cwall}"; +        "swipe:left" = "workspace next"; +        "swipe:right" = "workspace prev"; +        "swipe:down" = "exec ${swaylock}"; +        "swipe:up" = "exec ${cwall}";        };        input = { -	"type:touchpad" = { -	  dwt = "enabled"; -	  tap = "enabled"; -	  natural_scroll = "enabled"; -	}; -	"type:keyboard" = { -	  repeat_rate = 100; -	  repeat_delay = 250; -	}; +        "type:touchpad" = { +          dwt = "enabled"; +          tap = "enabled"; +          natural_scroll = "enabled"; +        }; +        "type:keyboard" = { +          repeat_rate = 100; +          repeat_delay = 250; +        };        };        bindsym = { -	# basics -	"${mod}+q" = "kill"; -	"${mod}+shift+c" = "reload"; -	"${mod}+shift+e" = '' -	  exec swaynag -t warning -m 'Do you really want to exit sway?' \ -	      -B 'Yes, exit sway' 'swaymsg exit' -	''; - -	# workspaces -	"${mod}+1" = "workspace number 1"; -	"${mod}+2" = "workspace number 2"; -	"${mod}+3" = "workspace number 3"; -	"${mod}+4" = "workspace number 4"; -	"${mod}+5" = "workspace number 5"; -	"${mod}+6" = "workspace number 6"; -	"${mod}+7" = "workspace number 7"; -	"${mod}+8" = "workspace number 8"; -	"${mod}+9" = "workspace number 9"; -	"${mod}+tab" = "workspace back_and_forth"; -	"${mod}+shift+1" = "move container to workspace number 1"; -	"${mod}+shift+2" = "move container to workspace number 2"; -	"${mod}+shift+3" = "move container to workspace number 3"; -	"${mod}+shift+4" = "move container to workspace number 4"; -	"${mod}+shift+5" = "move container to workspace number 5"; -	"${mod}+shift+6" = "move container to workspace number 6"; -	"${mod}+shift+7" = "move container to workspace number 7"; -	"${mod}+shift+8" = "move container to workspace number 8"; -	"${mod}+shift+9" = "move container to workspace number 9"; -	"${mod}+c" = "splitv"; -	"${mod}+v" = "splith"; - -	# layout -	"${mod}+${left}" = "focus left"; -	"${mod}+${down}" = "focus down"; -	"${mod}+${up}" = "focus up"; -	"${mod}+${right}" = "focus right"; -	"${mod}+shift+${left}" = "move left"; -	"${mod}+shift+${right}" = "move right"; -	"${mod}+shift+${down}" = "move down"; -	"${mod}+shift+${up}" = "move up"; -	"${mod}+f" = "fullscreen"; -	"${mod}+s" = "layout stacking"; -	"${mod}+t" = "layout tabbed"; -	"${mod}+e" = "layout toggle split"; -	"${mod}+shift+space" = "floating toggle"; -	"${mod}+r" = "mode resize"; - -	# scratchpad -	"${mod}+shift+minus" = "move scratchpad"; -	"${mod}+minus" = "scratchpad show"; - -	# exec -	"print" = "exec ${freezshot}"; -	"${mod}+return" = "exec ${foot}"; -	"${mod}+o" = "exec ${bemenu}"; -	"${mod}+w" = "exec ${firefox}"; -	"${mod}+n" = "exec ${foot} -- ${nnn} -decC"; - -	XF86MonBrightnessDown = "exec ${brightnessctl} set 1%-"; -	XF86MonBrightnessUp = "exec ${brightnessctl} set 1%+"; -	XF86AudioLowerVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%-"; -	XF86AudioRaiseVolume = "exec ${wpctl} set-volume --limit 1.5 @DEFAULT_AUDIO_SINK@ 5%+"; -	XF86AudioMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle"; -	XF86AudioMicMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; +        # basics +        "${mod}+q" = "kill"; +        "${mod}+shift+c" = "reload"; +        "${mod}+shift+e" = '' +          	  exec swaynag -t warning -m 'Do you really want to exit sway?' \ +          	      -B 'Yes, exit sway' 'swaymsg exit' +          	''; + +        # workspaces +        "${mod}+1" = "workspace number 1"; +        "${mod}+2" = "workspace number 2"; +        "${mod}+3" = "workspace number 3"; +        "${mod}+4" = "workspace number 4"; +        "${mod}+5" = "workspace number 5"; +        "${mod}+6" = "workspace number 6"; +        "${mod}+7" = "workspace number 7"; +        "${mod}+8" = "workspace number 8"; +        "${mod}+9" = "workspace number 9"; +        "${mod}+tab" = "workspace back_and_forth"; +        "${mod}+shift+1" = "move container to workspace number 1"; +        "${mod}+shift+2" = "move container to workspace number 2"; +        "${mod}+shift+3" = "move container to workspace number 3"; +        "${mod}+shift+4" = "move container to workspace number 4"; +        "${mod}+shift+5" = "move container to workspace number 5"; +        "${mod}+shift+6" = "move container to workspace number 6"; +        "${mod}+shift+7" = "move container to workspace number 7"; +        "${mod}+shift+8" = "move container to workspace number 8"; +        "${mod}+shift+9" = "move container to workspace number 9"; +        "${mod}+c" = "splitv"; +        "${mod}+v" = "splith"; + +        # layout +        "${mod}+${left}" = "focus left"; +        "${mod}+${down}" = "focus down"; +        "${mod}+${up}" = "focus up"; +        "${mod}+${right}" = "focus right"; +        "${mod}+shift+${left}" = "move left"; +        "${mod}+shift+${right}" = "move right"; +        "${mod}+shift+${down}" = "move down"; +        "${mod}+shift+${up}" = "move up"; +        "${mod}+f" = "fullscreen"; +        "${mod}+s" = "layout stacking"; +        "${mod}+t" = "layout tabbed"; +        "${mod}+e" = "layout toggle split"; +        "${mod}+shift+space" = "floating toggle"; +        "${mod}+r" = "mode resize"; + +        # scratchpad +        "${mod}+shift+minus" = "move scratchpad"; +        "${mod}+minus" = "scratchpad show"; + +        # exec +        "print" = "exec ${freezshot}"; +        "${mod}+return" = "exec ${foot}"; +        "${mod}+o" = "exec ${bemenu}"; +        "${mod}+w" = "exec ${firefox}"; +        "${mod}+n" = "exec ${foot} -- ${nnn} -decC"; + +        XF86MonBrightnessDown = "exec ${brightnessctl} set 1%-"; +        XF86MonBrightnessUp = "exec ${brightnessctl} set 1%+"; +        XF86AudioLowerVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%-"; +        XF86AudioRaiseVolume = "exec ${wpctl} set-volume --limit 1.5 @DEFAULT_AUDIO_SINK@ 5%+"; +        XF86AudioMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle"; +        XF86AudioMicMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ toggle";        };        mode.resize.bindsym = { -	${left} = "resize shrink width 10px"; -	${right} = "resize grow width 10px"; -	${down} = "resize grow height 10px"; -	${up} = "resize shrink height 10px"; -	return = "mode default"; +        ${left} = "resize shrink width 10px"; +        ${right} = "resize grow width 10px"; +        ${down} = "resize grow height 10px"; +        ${up} = "resize shrink height 10px"; +        return = "mode default";        };        exec = [ mako ]; diff --git a/home/wayland/modules/sway/i3status.nix b/home/wayland/modules/sway/i3status.nix index a7e4075..dbc8671 100644 --- a/home/wayland/modules/sway/i3status.nix +++ b/home/wayland/modules/sway/i3status.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{    programs.i3status = {      enable = true;      enableDefault = false; @@ -56,7 +57,7 @@        };        "wireless _first_" = { -        position = 00; +        position = 0;          settings = {            format_up = "  %quality";            format_down = ""; diff --git a/home/wayland/modules/sway/mako.nix b/home/wayland/modules/sway/mako.nix index d545cd1..a0b4fc6 100644 --- a/home/wayland/modules/sway/mako.nix +++ b/home/wayland/modules/sway/mako.nix @@ -1,8 +1,16 @@ -{ config, pkgs, lib, ... }: let -  font = config.global.font.sans.name -    + lib.optionalString (config.global.font.sans.size != null) -      " " + builtins.toString config.global.font.sans.size; -in { +{ +  config, +  pkgs, +  lib, +  ... +}: +let +  font = +    config.global.font.sans.name +    + lib.optionalString (config.global.font.sans.size != null) " " +    + builtins.toString config.global.font.sans.size; +in +{    home.packages = with pkgs; [ libnotify ];    services.mako = { diff --git a/home/wayland/modules/sway/swayidle.nix b/home/wayland/modules/sway/swayidle.nix index fd23f41..d9ff473 100644 --- a/home/wayland/modules/sway/swayidle.nix +++ b/home/wayland/modules/sway/swayidle.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, ... }: let +{ +  config, +  lib, +  pkgs, +  ... +}: +let    swaylock = lib.getExe config.programs.swaylock.package;    brightnessctl = lib.getExe pkgs.brightnessctl;    swaymsg = "${pkgs.sway}/bin/swaymsg"; @@ -7,34 +13,42 @@    suspend_timeout = minute * 60;    suspend_on_battery = pkgs.writeShellApplication {      name = "suspend_on_battery"; -    runtimeInputs = with pkgs; [ gnugrep systemd sudo coreutils ]; -    text = let -      sudo = "/run/wrappers/bin/sudo"; -    in '' -      is_discharging() { -	  grep -qFx \ -	      'POWER_SUPPLY_STATUS=Discharging' \ -	      /sys/class/power_supply/*/uevent -      } +    runtimeInputs = with pkgs; [ +      gnugrep +      systemd +      sudo +      coreutils +    ]; +    text = +      let +        sudo = "/run/wrappers/bin/sudo"; +      in +      '' +              is_discharging() { +        	  grep -qFx \ +        	      'POWER_SUPPLY_STATUS=Discharging' \ +        	      /sys/class/power_supply/*/uevent +              } -      was_charging=false -      while true; do -	  if is_discharging; then -	      if [ $was_charging = true ]; then -		  sleep ${builtins.toString suspend_timeout} -	      fi +              was_charging=false +              while true; do +        	  if is_discharging; then +        	      if [ $was_charging = true ]; then +        		  sleep ${builtins.toString suspend_timeout} +        	      fi -	      if is_discharging; then -		  ${sudo} systemctl suspend-then-hibernate -	      fi -	  fi +        	      if is_discharging; then +        		  ${sudo} systemctl suspend-then-hibernate +        	      fi +        	  fi -	  was_charging=true -	  sleep 10 -      done -    ''; +        	  was_charging=true +        	  sleep 10 +              done +      '';    }; -in { +in +{    systemd.user.services.suspend_on_battery = {      Unit.Description = "Suspend on battery";      Service.ExecStart = lib.getExe suspend_on_battery; @@ -44,42 +58,40 @@ in {      enable = true;      systemdTarget = "sway-session.target"; -    events = [{ -      event = "before-sleep"; -      command = swaylock; -    }]; +    events = [ +      { +        event = "before-sleep"; +        command = swaylock; +      } +    ];      timeouts = [        { -	timeout = minute * 30; -	command = -	  "${brightnessctl} --save; " -	  + "${brightnessctl} set 10%-"; -	resumeCommand = "${brightnessctl} --restore"; +        timeout = minute * 30; +        command = "${brightnessctl} --save; " + "${brightnessctl} set 10%-"; +        resumeCommand = "${brightnessctl} --restore";        }        { -	timeout = minute * 31; -	command = swaylock; +        timeout = minute * 31; +        command = swaylock;        }        { -	timeout = minute * 32; -	command = -	  "${swaymsg} --type command 'output * dpms off'; " -	  + "${brightnessctl} -c leds -d platform::kbd_backlight --save; " -	  + "${brightnessctl} -c leds -d platform::kbd_backlight set 0"; -	resumeCommand = -	  "${brightnessctl} -c leds -d platform::kbd_backlight --restore; " -	  + "${swaymsg} --type command 'output * dpms on'"; +        timeout = minute * 32; +        command = +          "${swaymsg} --type command 'output * dpms off'; " +          + "${brightnessctl} -c leds -d platform::kbd_backlight --save; " +          + "${brightnessctl} -c leds -d platform::kbd_backlight set 0"; +        resumeCommand = +          "${brightnessctl} -c leds -d platform::kbd_backlight --restore; " +          + "${swaymsg} --type command 'output * dpms on'";        }        { -	timeout = suspend_timeout; -	command = -	  "${pkgs.systemd}/bin/systemctl --user start suspend_on_battery"; -	resumeCommand = -	  "${pkgs.systemd}/bin/systemctl --user stop suspend_on_battery"; +        timeout = suspend_timeout; +        command = "${pkgs.systemd}/bin/systemctl --user start suspend_on_battery"; +        resumeCommand = "${pkgs.systemd}/bin/systemctl --user stop suspend_on_battery";        }      ];    }; diff --git a/home/wayland/modules/sway/swaylock.nix b/home/wayland/modules/sway/swaylock.nix index 1d5a58f..d606167 100644 --- a/home/wayland/modules/sway/swaylock.nix +++ b/home/wayland/modules/sway/swaylock.nix @@ -1,6 +1,8 @@ -{ config, pkgs, ... }: let +{ config, pkgs, ... }: +let    background = "${config.xdg.dataHome}/wayland/lockscreen"; -in { +in +{    programs.swaylock = {      enable = true;      package = pkgs.swaylock-effects; diff --git a/home/wayland/modules/sway/theme.nix b/home/wayland/modules/sway/theme.nix index b1673da..57bb314 100644 --- a/home/wayland/modules/sway/theme.nix +++ b/home/wayland/modules/sway/theme.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{    dconf.enable = false;    gtk = {  | 
