sway/kanshi: Make it functional on miku
This commit is contained in:
@@ -1,33 +1,51 @@
|
||||
{
|
||||
config
|
||||
, lib, writeScript
|
||||
, lib, pkgs
|
||||
, stdenv
|
||||
, sway, mako, bemenu
|
||||
, ...
|
||||
}:
|
||||
|
||||
let
|
||||
passwordDmenu = writeShellScript "password_menu" ''
|
||||
#!${stdenv.shell}
|
||||
password=$(gopass list --flat | bmenu)
|
||||
gopass show -c "$password
|
||||
'';
|
||||
in {
|
||||
environment.systemPackages = [ sway ];
|
||||
modifier = "Mod1";
|
||||
writeShellScript = pkgs.writeShellScript;
|
||||
|
||||
nwggrid = "${pkgs.nwg-launchers}/bin/nwggrid";
|
||||
gopass = "${pkgs.gopass}/bin/gopass";
|
||||
# TODO: Add shebangs
|
||||
passwordDmenu = writeShellScript "password_menu" ''
|
||||
password=$(${gopass} list --flat | ${pkgs.bemenu}/bin/bemenu)
|
||||
${gopass} show -c "$password"
|
||||
'';
|
||||
mkWrapperScript = binary: args: let
|
||||
pname = baseNameOf binary;
|
||||
in writeShellScript "${pname}-wrapper" ''
|
||||
ps -aux | grep ${pname} &> /dev/null
|
||||
[[ "$?" -eq 0 ]] && pkill ${pname}
|
||||
|
||||
${binary} ${args}
|
||||
'';
|
||||
makoWrapper = mkWrapperScript "${pkgs.mako}/bin/mako" "--default-timeout=3000";
|
||||
waybarWrapper = mkWrapperScript "${pkgs.waybar}/bin/waybar" "";
|
||||
kanshiWrapper = mkWrapperScript "${pkgs.kanshi}/bin/kanshi" "";
|
||||
in {
|
||||
home-manager.users."${config.system.singleUser}" = {
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
config = rec {
|
||||
config = {
|
||||
bars = [ ];
|
||||
startup = [
|
||||
{ command = "${mako}/bin/mako --default-timeout=3000"; }
|
||||
{ command = "${makoWrapper}"; always = true; }
|
||||
{ command = "${waybarWrapper}"; always = true; }
|
||||
{ command = "${kanshiWrapper}"; always = true; }
|
||||
{ command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; always = true; }
|
||||
];
|
||||
modifier = "Mod1";
|
||||
modifier = "${modifier}";
|
||||
gaps = {
|
||||
inner = 5;
|
||||
outer = 7;
|
||||
};
|
||||
input = {
|
||||
* = { xkb_layout = "de"; };
|
||||
"*" = { xkb_layout = "de"; };
|
||||
"2:7:SynPS/2_Synaptics_TouchPad" = {
|
||||
tap = "enabled";
|
||||
natural_scroll = "disabled";
|
||||
@@ -36,16 +54,16 @@ in {
|
||||
"2:10:TPPS/2_Elan_TrackPoint" = { dwt = "enabled"; };
|
||||
};
|
||||
output = {
|
||||
* = { adaptive_sync = "on"; };;
|
||||
"*" = { adaptive_sync = "on"; };
|
||||
};
|
||||
keybindings = lib.mkOptionDefault let
|
||||
keybindings = let
|
||||
speakers = "alsa_output.pci-0000_00_1f.3.analog-stereo";
|
||||
in {
|
||||
in lib.mkOptionDefault {
|
||||
"${modifier}+Return" = "exec alacritty";
|
||||
"${modifier}+e" = "exec emacs";
|
||||
"${modifier}+Shift+q" = "kill";
|
||||
"${modifer}+f" = "exec firefox";
|
||||
"${modifier}+d" = "exec ${bemenu}/bin/bemenu-run";
|
||||
"${modifier}+f" = "exec firefox";
|
||||
"${modifier}+d" = "exec ${pkgs.nwg-launchers}/bin/nwggrid";
|
||||
"${modifier}+p" = "exec ${passwordDmenu}";
|
||||
"Mod4+s" = "exec systemctl suspend";
|
||||
# TODO: Screenlock
|
||||
|
||||
Reference in New Issue
Block a user