configure kanshi
This commit is contained in:
		
							parent
							
								
									f45861482d
								
							
						
					
					
						commit
						270b384f2c
					
				
					 5 changed files with 265 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
{
 | 
			
		||||
  disko.devices = {
 | 
			
		||||
    disk = {
 | 
			
		||||
      nvme0n1 = {
 | 
			
		||||
        type = "disk";
 | 
			
		||||
        device = "/dev/nvme0n1";
 | 
			
		||||
        content = {
 | 
			
		||||
          type = "gpt";
 | 
			
		||||
          partitions = {
 | 
			
		||||
            ESP = {
 | 
			
		||||
              size = "512M";
 | 
			
		||||
              type = "EF00";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "filesystem";
 | 
			
		||||
                format = "vfat";
 | 
			
		||||
                mountpoint = "/boot";
 | 
			
		||||
                mountOptions = [
 | 
			
		||||
                  "defaults"
 | 
			
		||||
                ];
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
            luks = {
 | 
			
		||||
              size = "100%";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "luks";
 | 
			
		||||
                name = "crypted";
 | 
			
		||||
                # disable settings.keyFile if you want to use interactive password entry
 | 
			
		||||
                #passwordFile = "/tmp/secret.key"; # Interactive
 | 
			
		||||
                settings = {
 | 
			
		||||
                  allowDiscards = true;
 | 
			
		||||
                  keyFile = "/tmp/secret.key";
 | 
			
		||||
                };
 | 
			
		||||
                additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
 | 
			
		||||
                content = {
 | 
			
		||||
                  type = "btrfs";
 | 
			
		||||
                  extraArgs = [ "-f" ];
 | 
			
		||||
                  subvolumes = {
 | 
			
		||||
                    "/root" = {
 | 
			
		||||
                      mountpoint = "/";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/home" = {
 | 
			
		||||
                      mountpoint = "/home";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/nix" = {
 | 
			
		||||
                      mountpoint = "/nix";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/mnt/data" = {
 | 
			
		||||
                      mountpoint = "/mnt/data";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/swap" = {
 | 
			
		||||
                      mountpoint = "/.swapvol";
 | 
			
		||||
                      swap.swapfile.size = "20M";
 | 
			
		||||
                    };
 | 
			
		||||
                  };
 | 
			
		||||
                };
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								hosts/Puenktchen/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								hosts/Puenktchen/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
    #./disko.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										67
									
								
								hosts/Puenktchen/disko.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								hosts/Puenktchen/disko.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
{
 | 
			
		||||
  disko.devices = {
 | 
			
		||||
    disk = {
 | 
			
		||||
      nvme0n1 = {
 | 
			
		||||
        type = "disk";
 | 
			
		||||
        device = "/dev/nvme0n1";
 | 
			
		||||
        content = {
 | 
			
		||||
          type = "gpt";
 | 
			
		||||
          partitions = {
 | 
			
		||||
            ESP = {
 | 
			
		||||
              size = "512M";
 | 
			
		||||
              type = "EF00";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "filesystem";
 | 
			
		||||
                format = "vfat";
 | 
			
		||||
                mountpoint = "/boot";
 | 
			
		||||
                mountOptions = [
 | 
			
		||||
                  "defaults"
 | 
			
		||||
                ];
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
            luks = {
 | 
			
		||||
              size = "100%";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "luks";
 | 
			
		||||
                name = "crypted";
 | 
			
		||||
                # disable settings.keyFile if you want to use interactive password entry
 | 
			
		||||
                #passwordFile = "/tmp/secret.key"; # Interactive
 | 
			
		||||
                settings = {
 | 
			
		||||
                  allowDiscards = true;
 | 
			
		||||
                  keyFile = "/tmp/secret.key";
 | 
			
		||||
                };
 | 
			
		||||
                additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
 | 
			
		||||
                content = {
 | 
			
		||||
                  type = "btrfs";
 | 
			
		||||
                  extraArgs = [ "-f" ];
 | 
			
		||||
                  subvolumes = {
 | 
			
		||||
                    "/root" = {
 | 
			
		||||
                      mountpoint = "/";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/home" = {
 | 
			
		||||
                      mountpoint = "/home";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/nix" = {
 | 
			
		||||
                      mountpoint = "/nix";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/mnt/data" = {
 | 
			
		||||
                      mountpoint = "/mnt/data";
 | 
			
		||||
                      mountOptions = [ "compress=zstd" "noatime" ];
 | 
			
		||||
                    };
 | 
			
		||||
                    "/swap" = {
 | 
			
		||||
                      mountpoint = "/.swapvol";
 | 
			
		||||
                      swap.swapfile.size = "20M";
 | 
			
		||||
                    };
 | 
			
		||||
                  };
 | 
			
		||||
                };
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
    ./hyprland.nix
 | 
			
		||||
    ./hyprlock.nix
 | 
			
		||||
    ./hyprpaper.nix
 | 
			
		||||
    #./kanshi.nix
 | 
			
		||||
    ./kanshi.nix
 | 
			
		||||
    ./mako.nix
 | 
			
		||||
    ./pipewire.nix
 | 
			
		||||
    ./polkit.nix
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +1,130 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
{ pkgs, home-manager, ... }:
 | 
			
		||||
{
 | 
			
		||||
  home-manager.users.willifan = {
 | 
			
		||||
    services.kanshi = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
 | 
			
		||||
    profile = {
 | 
			
		||||
      default = {
 | 
			
		||||
        outputs = [
 | 
			
		||||
      settings = [
 | 
			
		||||
        {
 | 
			
		||||
          profile.name = "default";
 | 
			
		||||
          profile.outputs = [
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "eDP-1";
 | 
			
		||||
	  	        mode = "2256x1504";
 | 
			
		||||
              position = "0,0";
 | 
			
		||||
	  	        scale = 1.6;
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          profile.exec = "$XDG_CONFIG_HOME/eww/scripts/monitors.sh";
 | 
			
		||||
	      }
 | 
			
		||||
 | 
			
		||||
        {
 | 
			
		||||
          profile.name = "home";
 | 
			
		||||
	        profile.outputs = [
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "eDP-1";
 | 
			
		||||
              mode = "2256x1504";
 | 
			
		||||
              position = "0,384";
 | 
			
		||||
              scale = 1.6;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
            {
 | 
			
		||||
	            criteria = "ViewSonic Corporation VX2705-2KP W6Z205100250";
 | 
			
		||||
	  	        mode = "2560x1440";
 | 
			
		||||
	  	        position = "1410,384";
 | 
			
		||||
	  	        scale = 1.25;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "ViewSonic Corporation VX2705-2KP W6Z210400766";
 | 
			
		||||
              mode = "2560x1440@143.91Hz";
 | 
			
		||||
              position = "3457,384";
 | 
			
		||||
              scale = 1.25;
 | 
			
		||||
	  	        transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "BNQ BenQ BL2283 CAM01567019";
 | 
			
		||||
              mode = "1920x1080";
 | 
			
		||||
              position = "5505,0";
 | 
			
		||||
              scale = 1.0;
 | 
			
		||||
	          	transform = "270";
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          profile.exec = "$XDG_CONFIG_HOME/eww/scripts/monitors.sh";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        {
 | 
			
		||||
          profile.name = "LeoBots";
 | 
			
		||||
	        profile.outputs = [
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "Samsung Electric Company S24F350 H4LR501027";
 | 
			
		||||
	  	        mode = "1920x1080";
 | 
			
		||||
	  	        position = "0,0";
 | 
			
		||||
	  	        scale = 1.0;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
	          }
 | 
			
		||||
            {
 | 
			
		||||
	            criteria = "Samsung Electric Company S24F350 H4LR500406";
 | 
			
		||||
	  	        mode = "1920x1080";
 | 
			
		||||
	  	        position = "1920,0";
 | 
			
		||||
	  	        scale = 1.0;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
	          }
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "eDP-1";
 | 
			
		||||
              mode = "2256x1504";
 | 
			
		||||
              position = "3840,0";
 | 
			
		||||
              scale = 1.6;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          profile.exec = "$XDG_CONFIG_HOME/eww/scripts/monitors.sh";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        {
 | 
			
		||||
          profile.name = "raum116";
 | 
			
		||||
          profile.outputs = [
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "Samsung Electric Company S24F350 H4LR500834";
 | 
			
		||||
              mode = "1920x1080";
 | 
			
		||||
              position = "0,0";
 | 
			
		||||
              scale = 1.0;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "Samsung Electric Company S24F350 H4LR500705";
 | 
			
		||||
              mode = "1920x1080";
 | 
			
		||||
              position = "1920,0";
 | 
			
		||||
              scale = 1.0;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
            {
 | 
			
		||||
              criteria = "eDP-1";
 | 
			
		||||
              mode = "2256x1504";
 | 
			
		||||
              position = "3840,0";
 | 
			
		||||
              scale = 1.0;
 | 
			
		||||
              transform = "normal";
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          profile.exec = "$XDG_CONFIG_HOME/eww/scripts/monitors.sh";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    systemdTarget = "hyprland-session.target";
 | 
			
		||||
 | 
			
		||||
  systemd = {
 | 
			
		||||
    user.services.kanshi-hyprland = {
 | 
			
		||||
      description = "Wayland daemon that automatically configures outputs";
 | 
			
		||||
      wantedBy = [ "graphical-session.target" ];
 | 
			
		||||
      wants = [ "graphical-session.target" ];
 | 
			
		||||
      after = [ "graphical-session.target" ];
 | 
			
		||||
      serviceConfig = {
 | 
			
		||||
        Type = "simple";
 | 
			
		||||
        ExecStart = "${pkgs.kanshi}/bin/kanshi";
 | 
			
		||||
        Restart = "always";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue