aboutsummaryrefslogtreecommitdiff
path: root/share/home
diff options
context:
space:
mode:
authorMiran Bastaja <miran.bastaja04@gmail.com>2023-11-18 00:02:29 +0100
committerMiran Bastaja <miran.bastaja04@gmail.com>2023-11-18 00:11:06 +0100
commit55e80e6c60a60f74a47ec219eb9f883e57b1ff40 (patch)
tree8b6751c3e9b6f3b7a0d88f3515a2ef587536971e /share/home
parenta92f92f98f4602813555140c773be31e17a55426 (diff)
Merge hyprland and hyprdesktop modules
The hyprland module will necessarily have to contain program-specific configuration in the form of window rules. Therefore it's better to keep the list of installed programs close to where the rules for them are defined.
Diffstat (limited to 'share/home')
-rw-r--r--share/home/hyprdesktop.nix84
-rw-r--r--share/home/hyprland.nix81
2 files changed, 83 insertions, 82 deletions
diff --git a/share/home/hyprdesktop.nix b/share/home/hyprdesktop.nix
index fbf406b..d095bb5 100644
--- a/share/home/hyprdesktop.nix
+++ b/share/home/hyprdesktop.nix
@@ -1,15 +1,90 @@
# Module containing a bunch of things that make up a `desktop environment` built
# off of hyprland. I install this on all my desktop/laptop machines.
+# IMPORTANT: this module requires the system to already have `programs.hyprland`
+# enabled. You can enable it by importing `share/system/hyprland.nix`
{ pkgs, config, inputs, ... }: {
imports = [
+ # Custom home manager modules
+ ../hm-modules/wpaperd.nix
+
+ # Config
./minimal.nix
- ./hyprland.nix
+ ./wpaperd.nix
+ ./eww
./git.nix
./mpv.nix
./kitty.nix
./firefox
];
+ wayland.windowManager.hyprland = {
+ enable = true;
+ extraConfig = ''
+ $mod = SUPER
+
+ bind = $mod SHIFT, Return, exec, kitty
+
+ general {
+ layout = master
+ }
+
+ master {
+ mfact = 0.5
+ new_is_master = false
+ }
+
+ # workspaces
+ # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
+ ${builtins.concatStringsSep "\n" (builtins.genList (x:
+ let ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
+ in ''
+ bind = $mod, ${ws}, workspace, ${toString (x + 1)}
+ bind = $mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}
+ '') 10)}
+
+ bind = $mod SHIFT, C, killactive
+ bind = $mod SHIFT, F, togglefloating
+ bind = $mod SHIFT, Q, exit
+ bind = $mod, P, exec, rofi -show drun
+ bind = $mod SHIFT, P, exec, rofi -show run
+
+ bind = $mod, H, cyclenext, prev
+ bind = $mod, L, cyclenext
+ bind = $mod SHIFT, H, swapnext, prev
+ bind = $mod SHIFT, L, swapnext
+
+ # audio control
+ binde =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%+
+ binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%-
+ bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+
+ # monitor brightness control
+ binde =, XF86MonBrightnessUp, exec, brightnessctl set +5%
+ binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%-
+
+ # Screenshotting
+ # My stupid laptop outputs these three key codes when the PrtSc key is
+ # pressed instead of using just one code like any sane device would
+ bind = SUPER SHIFT, S, exec, grim -g "$(slurp)" -t png - | wl-copy --type image/png
+
+ input {
+ # focus change on cursor move
+ follow_mouse = 1
+ accel_profile = flat
+ }
+ monitor=,preferred,auto,1
+
+ # set opacity to 0.9 active and 0.5 inactive for kitty
+ windowrule = opacity 0.9 override 0.5 override,^(kitty)$
+
+ # move qbittorrent to workspace 6
+ # TODO: make popup windows stay on the workspace where they were created
+ # windowrulev2 = workspace 6,class:(org.qbittorrent.qBittorrent),floating:0
+
+ exec-once = eww --config ${config.programs.eww.configDir} open bar
+ '';
+ };
+
home.packages = with pkgs; [
xh # Nice to use HTTP client
bc # CLI calculator
@@ -22,6 +97,10 @@
winetricks
inputs.scripts.packages.${pkgs.system}.image-move
qemu_kvm
+ wireplumber # session & policy manager for pipewire
+ grim # screenshot utility for wayland
+ slurp # region selection UI for wayland
+ wl-clipboard # clipboard utility
# TUI/GUI programs
cmus # music player
@@ -42,6 +121,9 @@
superTuxKart
];
+ services.dunst.enable = true;
+ programs.rofi.enable = true;
+
programs.direnv = {
enable = true;
nix-direnv.enable = true;
diff --git a/share/home/hyprland.nix b/share/home/hyprland.nix
deleted file mode 100644
index 767f3cd..0000000
--- a/share/home/hyprland.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-# IMPORTANT: this module requires the system to already have `programs.hyprland`
-# enabled. You can enable it by importing `share/system/hyprland.nix`
-{ pkgs, config, ... }: {
- imports = [
- # Custom home manager modules
- ../hm-modules/wpaperd.nix
-
- # Config
- ./kitty.nix
- ./wpaperd.nix
- ./eww
- ];
-
- wayland.windowManager.hyprland = {
- enable = true;
- extraConfig = ''
- $mod = SUPER
-
- bind = $mod SHIFT, Return, exec, kitty
-
- general {
- layout = master
- }
-
- master {
- mfact = 0.5
- new_is_master = false
- }
-
- # workspaces
- # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
- ${builtins.concatStringsSep "\n" (builtins.genList (x:
- let ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
- in ''
- bind = $mod, ${ws}, workspace, ${toString (x + 1)}
- bind = $mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}
- '') 10)}
-
- bind = $mod SHIFT, C, killactive
- bind = $mod SHIFT, F, togglefloating
- bind = $mod SHIFT, Q, exit
- bind = $mod, P, exec, rofi -show drun
- bind = $mod SHIFT, P, exec, rofi -show run
-
- bind = $mod, H, cyclenext, prev
- bind = $mod, L, cyclenext
- bind = $mod SHIFT, H, swapnext, prev
- bind = $mod SHIFT, L, swapnext
-
- # audio control
- binde =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%+
- binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%-
- bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
-
- # monitor brightness control
- binde =, XF86MonBrightnessUp, exec, brightnessctl set +5%
- binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%-
-
- # Screenshotting
- # My stupid laptop outputs these three key codes when the PrtSc key is
- # pressed instead of using just one code like any sane device would
- bind = SUPER SHIFT, S, exec, grim -g "$(slurp)" -t png - | wl-copy --type image/png
-
- input {
- # focus change on cursor move
- follow_mouse = 1
- accel_profile = flat
- }
- monitor=,preferred,auto,1
-
- # set opacity to 0.9 active and 0.5 inactive for kitty
- windowrule = opacity 0.9 override 0.5 override,^(kitty)$
-
- exec-once = eww --config ${config.programs.eww.configDir} open bar
- '';
- };
-
- home.packages = with pkgs; [ brightnessctl wireplumber grim slurp wl-clipboard ];
- services.dunst.enable = true;
- programs.rofi.enable = true;
-}