pyprland and scratchpads

This commit is contained in:
Sam 2024-06-06 18:13:16 +01:00
parent 861f58946b
commit 20b64f5707
6 changed files with 165 additions and 88 deletions

33
] Normal file
View File

@ -0,0 +1,33 @@
{ ... }:
{
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = [
"scratchpads"
]
[scratchpads.termy]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-y --title 'Scratchpad(y)'"
class = "$TERMINAL-dropterm-y"
size = "70% 70%"
[scratchpads.termu]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-u --title 'Scratchpad(u)'"
class = "$TERMINAL-dropterm-u"
size = "80% 80%"
[scratchpads.termi]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-i --title 'Scratchpad(i)'"
class = "$TERMINAL-dropterm-i"
size = "50% 50%"
[scratchpads.volume]
animation = "fromTop"
command = "pavucontrol --class floating"
class = "org.pulseaudio.pavucontrol"
size = "75% 60%"
'';
}

175
flake.nix
View File

@ -48,92 +48,97 @@
}; };
}; };
outputs = { outputs =
self, { self
nixpkgs, , nixpkgs
home-manager, , home-manager
... , ...
} @ inputs: } @ inputs:
let let
inherit (self) outputs; inherit (self) outputs;
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
]; ];
forAllSystems = nixpkgs.lib.genAttrs systems; forAllSystems = nixpkgs.lib.genAttrs systems;
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
in { in
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); {
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
overlays = import ./overlays {inherit inputs;}; formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
nixosModules = import ./modules/nixos; overlays = import ./overlays { inherit inputs; };
homeManagerModules = import ./modules/home-manager; nixosModules = import ./modules/nixos;
homeManagerModules = import ./modules/home-manager;
# System level configs # System level configs
nixosConfigurations = { nixosConfigurations = {
nixdev = nixpkgs.lib.nixosSystem { nixdev = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
modules = [ modules = [
./hosts/nixdev ./hosts/nixdev
home-manager.nixosModules.home-manager{ home-manager.nixosModules.home-manager
home-manager.extraSpecialArgs = specialArgs; {
} home-manager.extraSpecialArgs = specialArgs;
]; }
}; ];
fileserver = nixpkgs.lib.nixosSystem { };
inherit specialArgs; fileserver = nixpkgs.lib.nixosSystem {
modules = [ inherit specialArgs;
./hosts/fileserver modules = [
home-manager.nixosModules.home-manager{ ./hosts/fileserver
home-manager.extraSpecialArgs = specialArgs; home-manager.nixosModules.home-manager
} {
]; home-manager.extraSpecialArgs = specialArgs;
}; }
bootstrap = nixpkgs.lib.nixosSystem { ];
inherit specialArgs; };
modules = [ bootstrap = nixpkgs.lib.nixosSystem {
./hosts/bootstrap inherit specialArgs;
]; modules = [
}; ./hosts/bootstrap
sparky = nixpkgs.lib.nixosSystem { ];
inherit specialArgs; };
modules = [ sparky = nixpkgs.lib.nixosSystem {
./hosts/sparky inherit specialArgs;
home-manager.nixosModules.home-manager{ modules = [
home-manager.extraSpecialArgs = specialArgs; ./hosts/sparky
} home-manager.nixosModules.home-manager
]; {
}; home-manager.extraSpecialArgs = specialArgs;
semita = nixpkgs.lib.nixosSystem { }
inherit specialArgs; ];
modules = [ };
./hosts/semita semita = nixpkgs.lib.nixosSystem {
home-manager.nixosModules.home-manager{ inherit specialArgs;
home-manager.extraSpecialArgs = specialArgs; modules = [
} ./hosts/semita
]; home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = specialArgs;
}
];
};
}; };
# # Standalone home-manager configuration entrypoint
# # Available through 'home-manager --flake .#your-username@your-hostname'
# homeConfigurations = {
# # FIXME replace with your username@hostname
# "sam@nixdev" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs outputs ;};
# modules = [
# # > Our main home-manager configuration file <
# ./home/nixdev.nix
# ];
# };
# "admin@fileserver" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs outputs ;};
# modules = [
# # > Our main home-manager configuration file <
# ./home/nixdev.nix
# ];
# };
# };
}; };
# # Standalone home-manager configuration entrypoint
# # Available through 'home-manager --flake .#your-username@your-hostname'
# homeConfigurations = {
# # FIXME replace with your username@hostname
# "sam@nixdev" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs outputs ;};
# modules = [
# # > Our main home-manager configuration file <
# ./home/nixdev.nix
# ];
# };
# "admin@fileserver" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs outputs ;};
# modules = [
# # > Our main home-manager configuration file <
# ./home/nixdev.nix
# ];
# };
# };
};
} }

View File

@ -7,6 +7,7 @@
imports = [ imports = [
../common ../common
../wayland ../wayland
./pyprland.nix
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
@ -108,7 +109,7 @@
sensitivity = -0.5 sensitivity = -0.5
} }
windowrulev2 = float, class:floating
$mainMod = SUPER $mainMod = SUPER
@ -119,6 +120,10 @@
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu bind = $mainMod, R, exec, $menu
bind = $mainMod, y, exec, pypr toggle termy
bind = $mainMod, u, exec, pypr toggle termu
bind = $mainMod, i, exec, pypr toggle termi
bind = $mainMod, h, movefocus, l bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u bind = $mainMod, k, movefocus, u
@ -155,7 +160,7 @@
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
exec-once=swww-wallpaper-changer exec-once=swww-wallpaper-changer & pypr
''; '';
}; };
} }

View File

@ -0,0 +1,33 @@
{ ... }:
{
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = [
"scratchpads"
]
[scratchpads.termy]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-y --title 'Scratchpad(y)'"
class = "$TERMINAL-dropterm-y"
size = "80% 80%"
[scratchpads.termu]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-u --title 'Scratchpad(u)'"
class = "$TERMINAL-dropterm-u"
size = "80% 80%"
[scratchpads.termi]
animation = "fromTop"
command = "$TERMINAL --class $TERMINAL-dropterm-i --title 'Scratchpad(i)'"
class = "$TERMINAL-dropterm-i"
size = "80% 80%"
[scratchpads.volume]
animation = "fromTop"
command = "pavucontrol --class floating"
class = "org.pulseaudio.pavucontrol"
size = "75% 60%"
'';
}

View File

@ -9,5 +9,6 @@
home.packages = [ home.packages = [
pkgs.wofi pkgs.wofi
pkgs.wl-clipboard pkgs.wl-clipboard
pkgs.pyprland
]; ];
} }

View File

@ -130,7 +130,7 @@
"portable" = ""; "portable" = "";
"default" = [ "" "" "" ]; "default" = [ "" "" "" ];
}; };
"on-click" = "pavucontrol"; "on-click" = "pypr toggle volume";
}; };
}; };