aboutsummaryrefslogtreecommitdiff
path: root/share/home
diff options
context:
space:
mode:
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;
-}