dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 4d2de24c31728fb87b4481529c45f58e962d8a6f parent 10cdea28602f8fa305f7cb57b30e1f67a62cd9b7 Author: maydayv7 <maydayv7@gmail.com> Date: Sun, 25 Feb 2024 10:46:09 +0530 feat(Hyprland): Pyprland Plugin
Diffstat:
19 files changed, 211 insertions(+), 123 deletions(-)
diff --git a/files/README.md b/files/README.md @@ -2,7 +2,8 @@ The `files` directory is used to store all my plain-text program configuration files _(or as we all love to call it, the `dotfiles`)_ -- [`archive`](./archive) - Old, Archived Files +- [`repl.nix`](./repl.nix): Interactive Nix Shell to explore syntax and configuration + - [`ascii`](./ascii) - Personal Collection of beautiful Ascii Art - [`colors`](./colors) - Base16 Color Schemes - [`geany`](./geany) - Configuration for Geany Text Editor @@ -10,21 +11,20 @@ The `files` directory is used to store all my plain-text program configuration f - [`gnome`](./gnome) - Configuration Files for GNOME Desktop - [`gpg`](./gpg) - Encrypted GPG Keys - [`gtk`](./gtk) - GTK+ Theming and Styles +- [`hyprland`](./hyprland) - Hyprland WM Configuration - [`images`](./images) - Personal Wallpapers and Profile Pictures - [`nano`](./nano) - `nano` Text Editor Global Configuration - [`neofetch`](./neofetch) - `neofetch` CLI Theming -- [`nwg`](./nwg) - [NWG Shell](https://nwg-piotr.github.io/nwg-shell/) Configuration - [`pantheon`](./pantheon) - Configuration Files for Pantheon Desktop -- [`plank`](./plank) - `plank` Dock Theming - [`proprietary`](https://github.com/maydayv7/proprietary) - Custom Proprietary Files -- [`repl.nix`](./repl.nix): Interactive Nix Shell to explore syntax and configuration - [`templates`](./templates) - Document Templates - [`touchegg`](./touchegg) - Touchegg X11 Touchpad Gestures - [`ulauncher`](./ulauncher) - ULauncher Application Launcher Settings & Plugins - [`vscode`](./vscode) - Visual Studio Code Editor Configuration -- [`waybar`](./waybar) - Waybar Configuration - [`wine`](./wine) - Configuration and Theming for `wine` applications - [`xdg`](./xdg) - XDG Desktop Utilities Configuration - [`xfce`](./xfce) - Configuration Files for XFCE Desktop - [`xorg`](./xorg) - X11 Display Server Configuration - [`zsh`](./zsh) - Z Shell Configuration and Prompt Theming + +- [`archive`](./archive) - Old, Archived Files diff --git a/files/flake.nix b/files/flake.nix @@ -71,17 +71,31 @@ # GTK+ Settings gtk.bookmarks = readFile ./gtk/bookmarks; + # Hyprland WM + hyprland = { + # Pyprland + pypr = readFile ./hyprland/pypr.toml; + + # NWG Shell + nwg.drawer = readFile ./hyprland/nwg/drawer.css; + + # Waybar + waybar.style = readFile ./hyprland/waybar/style.css; + }; + # Pictures images.profile = ./images/Profile.png; # Pantheon Desktop - pantheon.dconf = ./pantheon/dconf.nix; - - # Plank Dock - plank = { - autostart = readFile ./plank/dock.desktop; - launchers = ./plank/launchers; - theme = readFile ./plank/dock.theme; + pantheon = { + dconf = ./pantheon/dconf.nix; + + # Plank Dock + plank = { + autostart = readFile ./pantheon/plank/dock.desktop; + launchers = ./pantheon/plank/launchers; + theme = readFile ./pantheon/plank/dock.theme; + }; }; # Custom Proprietary Files @@ -91,9 +105,6 @@ # Nano Text Editor nano = readFile ./nano/nanorc; - # NWG Shell - nwg.drawer = readFile ./nwg/drawer.css; - # Interactive Nix Shell repl = ./repl.nix; @@ -129,9 +140,6 @@ extension = ".json"; }; - # Waybar - waybar.style = readFile ./waybar/style.css; - # XDG Settings xdg.mime = import ./xdg/mime.nix; diff --git a/files/nwg/drawer.css b/files/hyprland/nwg/drawer.css diff --git a/files/hyprland/pypr.toml b/files/hyprland/pypr.toml @@ -0,0 +1,59 @@ +[pyprland] +plugins = [ + "scratchpads", + "magnify", + "toggle_special" +] + +[scratchpads.term] +animation = "fromTop" +command = "kitty --class kitty-dropterm" +class = "kitty-dropterm" +size = "75% 60%" + +[scratchpads.clip] +animation = "fromBottom" +command = "nwg-clipman -nw" +class = "nwg-clipman" +size = "75% 65%" +margin = 30 + +[scratchpads.bluetooth] +animation = "fromRight" +command = "overskride" +class = "overskride" +lazy = true +size = "50% 90%" +margin = 30 +unfocus = "hide" +excludes = ["displays", "network", "volume"] + +[scratchpads.displays] +animation = "fromRight" +command = "nwg-displays" +class = "nwg-displays" +lazy = true +size = "50% 90%" +margin = 30 +unfocus = "hide" +excludes = ["bluetooth", "network", "volume"] + +[scratchpads.network] +animation = "fromRight" +command = "kitty nmtui" +class = "kitty" +lazy = true +size = "50% 90%" +margin = 30 +unfocus = "hide" +excludes = ["bluetooth", "displays", "volume"] + +[scratchpads.volume] +animation = "fromRight" +command = "pavucontrol" +class = "pavucontrol" +lazy = true +size = "50% 90%" +margin = 30 +unfocus = "hide" +excludes = ["bluetooth", "displays", "network"] diff --git a/files/waybar/style.css b/files/hyprland/waybar/style.css diff --git a/files/plank/dock.desktop b/files/pantheon/plank/dock.desktop diff --git a/files/plank/dock.theme b/files/pantheon/plank/dock.theme diff --git a/files/plank/launchers/io.elementary.code.dockitem b/files/pantheon/plank/launchers/io.elementary.code.dockitem diff --git a/files/plank/launchers/io.elementary.files.dockitem b/files/pantheon/plank/launchers/io.elementary.files.dockitem diff --git a/files/plank/launchers/io.elementary.mail.dockitem b/files/pantheon/plank/launchers/io.elementary.mail.dockitem diff --git a/files/plank/launchers/io.elementary.switchboard.dockitem b/files/pantheon/plank/launchers/io.elementary.switchboard.dockitem diff --git a/files/plank/launchers/io.elementary.terminal.dockitem b/files/pantheon/plank/launchers/io.elementary.terminal.dockitem diff --git a/modules/gui/desktop/hyprland/README.md b/modules/gui/desktop/hyprland/README.md @@ -1,82 +1,84 @@ ## Shortcuts -| Keybind | Dispatcher | Command | Comments | -| -------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | -| <kbd>$mod Q</kbd> | killactive | | Quit application | -| <kbd>$mod P</kbd> | pin | | Pin window on all Workspaces | -| <kbd>$mod M</kbd> | fullscreen | 1 | Maximize window | -| <kbd>$mod SHIFT M</kbd> | fullscreen | | Fullscreen window | -| <kbd>$mod U</kbd> | focusurgentorlast | | Activate urgent/last window | -| <kbd>$mod U</kbd> | bringactivetotop | | | -| <kbd>ALT Q</kbd> | hych:minimize | | Minimize window | -| <kbd>ALT SHIFT Q</kbd> | hych:toggle_restore_window | | Show minimized windows | -| <kbd>$mod left</kbd> | movefocus | l | Switch focus to left window | -| <kbd>$mod right</kbd> | movefocus | r | Switch focus to right window | -| <kbd>$mod up</kbd> | movefocus | u | Switch focus to up window | -| <kbd>$mod down</kbd> | movefocus | d | Switch focus to down window | -| <kbd>$mod SHIFT left</kbd> | swapwindow | l | Swap current window with left window | -| <kbd>$mod SHIFT right</kbd> | swapwindow | r | Swap current window with right window | -| <kbd>$mod SHIFT up</kbd> | swapwindow | u | Swap current window with up window | -| <kbd>$mod SHIFT down</kbd> | swapwindow | d | Swap current window with down window | -| <kbd>$mod Space</kbd> | togglesplit | | Change window split direction | -| <kbd>$mod SHIFT Space</kbd> | togglegroup | | Toggle application grouping | -| <kbd>$mod Tab</kbd> | changegroupactive | f | Cycle through grouped applications | -| <kbd>$mod SHIFT Tab</kbd> | changegroupactive | b | Cycle through grouped applications backwards | -| <kbd>$mod semicolon</kbd> | togglefloating | | Toggle floating window | -| <kbd>$mod apostrophe</kbd> | workspaceopt | allfloat | Toggle floating all windows | -| <kbd>$mod C</kbd> | centerwindow | | Center window | -| <kbd>ALT Tab</kbd> | cyclenext | | Cycle through open applications | -| <kbd>ALT Tab</kbd> | bringactivetotop | | | -| <kbd>ALT CTRL Tab</kbd> | cyclenext | prev | Cycle through grouped applications backward | -| <kbd>ALT CTRL Tab</kbd> | bringactivetotop | | | -| <kbd>ALT grave</kbd> | hycov:toggleoverview | | Show overview | -| <kbd>ALT SHIFT grave</kbd> | hycov:toggleoverview | forceall | Show overview including every open application | -| <kbd>ALT left</kbd> | hycov:movefocus | l | Switch to left window in overview | -| <kbd>ALT right</kbd> | hycov:movefocus | r | Switch to right window in overview | -| <kbd>ALT up</kbd> | hycov:movefocus | u | Switch to up window in overview | -| <kbd>ALT down</kbd> | hycov:movefocus | d | Switch to down window in overview | -| <kbd>$mod SHIFT slash</kbd> | exec | xdg-open ./README.md | Show this page | -| <kbd>$mod comma</kbd> | workspace | m-1 | Move to previous workspace | -| <kbd>$mod period</kbd> | workspace | m+1 | Move to next workspace | -| <kbd>$mod SHIFT grave</kbd> | movetoworkspace | special | Move window to special workspace | -| <kbd>$mod grave</kbd> | togglespecialworkspace | config.gui.display | Toggle special workspace on default display | -| <kbd>$mod SHIFT comma</kbd> | movetoworkspace | m-1 | Move window to previous workspace | -| <kbd>$mod SHIFT period</kbd> | movetoworkspace | m+1 | Move window to next workspace | -| <kbd>$mod ALT comma</kbd> | focusmonitor | l | Move focus to left monitor | -| <kbd>$mod ALT period</kbd> | focusmonitor | r | Move focus to right monitor | -| <kbd>$mod SHIFT ALT comma</kbd> | movecurrentworkspacetomonitor | l | Move workspace to left monitor | -| <kbd>$mod SHIFT ALT period</kbd> | movecurrentworkspacetomonitor | r | Move workspace to right monitor | -| <kbd>$mod L</kbd> | exec | loginctl lock-session | Lock screen | -| <kbd>Print</kbd> | exec | grimblast --notify copysave area | Take Screenshot of area | -| <kbd>CTRL Print</kbd> | exec | grimblast --notify --cursor copysave output | Take Screenshot of window | -| <kbd>SHIFT Print</kbd> | exec | grimblast --notify --cursor copysave screen | Take Screenshot of screen | -| <kbd>$mod equal</kbd> | exec | hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor \| grep float \| awk '{print $2 + 1}')" | Zoom in | -| <kbd>$mod minus</kbd> | exec | hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor \| grep float \| awk '{print $2 - 1}')" | Zoom out | -| <kbd>$mod 1</kbd> | workspace | num | Create workspace 'num' | -| <kbd>$mod SHIFT 1</kbd> | movetoworkspace | num | Move window to workspace 'num' | -| <kbd>$mod A</kbd> | exec | nwg-drawer | Application Drawer | -| <kbd>$mod C</kbd> | exec | hyprpicker -arf hex | Color Picker | -| <kbd>$mod D</kbd> | exec | nwg-displays | Monitor Configuration | -| <kbd>$mod F</kbd> | exec | thunar | File Manager | -| <kbd>$mod T</kbd> | exec | kitty | Terminal | -| <kbd>$mod W</kbd> | exec | firefox | Web Browser | -| <kbd>$mod Return</kbd> | exec | missioncenter | Task Manager | -| <kbd>$mod N</kbd> | exec | dunstctl history-pop | Show received notifications in order | -| <kbd>$mod slash</kbd> | exec | ulauncher-toggle | Application Launcher | -| <kbd>XF86Calculator</kbd> | exec | qalculate-gtk | Calculator | -| <kbd>$mod Escape</kbd> | exec | wlogout -p layer-shell | System Logoff | -| <kbd>XF86AudioPlay</kbd> | exec | playerctl play-pause | Play/Pause Media | -| <kbd>XF86AudioPrev</kbd> | exec | playerctl previous | Previous Media | -| <kbd>XF86AudioNext</kbd> | exec | playerctl next | Next Media | -| <kbd>XF86AudioMute</kbd> | exec | wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle | Mute Speakers | -| <kbd>XF86AudioMicMute</kbd> | exec | wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle | Mute Microphone | -| <kbd>XF86AudioRaiseVolume</kbd> | exec | wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%+ | Increase Volume | -| <kbd>XF86AudioLowerVolume</kbd> | exec | wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%- | Decrease Volume | -| <kbd>XF86MonBrightnessUp</kbd> | exec | brillo -u 300000 -A 5 | Increase Brightness | -| <kbd>XF86MonBrightnessDown</kbd> | exec | brillo -u 300000 -U 5 | Decrease Brightness | -| <kbd>$mod mouse:272</kbd> | movewindow | | Move window | -| <kbd>$mod mouse:273</kbd> | resizewindow | | Window resize | -| <kbd>$mod CTRL mouse:272</kbd> | resizewindow | | Window resize | -| <kbd>$mod SHIFT mouse:272</kbd> | moveintogroup | | Move window into application group | +| Keybind | Dispatcher | Command | Comments | +| -------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------- | +| <kbd>$mod Q</kbd> | killactive | | Quit application | +| <kbd>$mod P</kbd> | pin | | Pin window on all Workspaces | +| <kbd>$mod M</kbd> | fullscreen | 1 | Maximize window | +| <kbd>$mod SHIFT M</kbd> | fullscreen | | Fullscreen window | +| <kbd>$mod U</kbd> | focusurgentorlast | | Activate urgent/last window | +| <kbd>$mod U</kbd> | bringactivetotop | | | +| <kbd>ALT Q</kbd> | hych:minimize | | Minimize window | +| <kbd>ALT SHIFT Q</kbd> | hych:toggle_restore_window | | Show minimized windows | +| <kbd>$mod left</kbd> | movefocus | l | Switch focus to left window | +| <kbd>$mod right</kbd> | movefocus | r | Switch focus to right window | +| <kbd>$mod up</kbd> | movefocus | u | Switch focus to up window | +| <kbd>$mod down</kbd> | movefocus | d | Switch focus to down window | +| <kbd>$mod SHIFT left</kbd> | swapwindow | l | Swap current window with left window | +| <kbd>$mod SHIFT right</kbd> | swapwindow | r | Swap current window with right window | +| <kbd>$mod SHIFT up</kbd> | swapwindow | u | Swap current window with up window | +| <kbd>$mod SHIFT down</kbd> | swapwindow | d | Swap current window with down window | +| <kbd>$mod Space</kbd> | togglesplit | | Change window split direction | +| <kbd>$mod SHIFT Space</kbd> | togglegroup | | Toggle application grouping | +| <kbd>$mod Tab</kbd> | changegroupactive | f | Cycle through grouped applications | +| <kbd>$mod SHIFT Tab</kbd> | changegroupactive | b | Cycle through grouped applications backwards | +| <kbd>$mod semicolon</kbd> | togglefloating | | Toggle floating window | +| <kbd>$mod apostrophe</kbd> | workspaceopt | allfloat | Toggle floating all windows | +| <kbd>$mod C</kbd> | centerwindow | | Center window | +| <kbd>ALT Tab</kbd> | cyclenext | | Cycle through open applications | +| <kbd>ALT Tab</kbd> | bringactivetotop | | | +| <kbd>ALT CTRL Tab</kbd> | cyclenext | prev | Cycle through grouped applications backward | +| <kbd>ALT CTRL Tab</kbd> | bringactivetotop | | | +| <kbd>ALT grave</kbd> | hycov:toggleoverview | | Show overview | +| <kbd>ALT SHIFT grave</kbd> | hycov:toggleoverview | forceall | Show overview with every open application | +| <kbd>ALT left</kbd> | hycov:movefocus | l | Switch to left window in overview | +| <kbd>ALT right</kbd> | hycov:movefocus | r | Switch to right window in overview | +| <kbd>ALT up</kbd> | hycov:movefocus | u | Switch to up window in overview | +| <kbd>ALT down</kbd> | hycov:movefocus | d | Switch to down window in overview | +| <kbd>$mod SHIFT slash</kbd> | exec | xdg-open ./README.md | Show this page | +| <kbd>$mod comma</kbd> | workspace | m-1 | Move to previous workspace | +| <kbd>$mod period</kbd> | workspace | m+1 | Move to next workspace | +| <kbd>$mod SHIFT grave</kbd> | exec | pypr toggle_special stash | Move window to/from special workspace stash | +| <kbd>$mod grave</kbd> | togglespecialworkspace | stash | Toggle special workspace to stash windows | +| <kbd>$mod SHIFT comma</kbd> | movetoworkspace | m-1 | Move window to previous workspace | +| <kbd>$mod SHIFT period</kbd> | movetoworkspace | m+1 | Move window to next workspace | +| <kbd>$mod ALT comma</kbd> | focusmonitor | l | Move focus to left monitor | +| <kbd>$mod ALT period</kbd> | focusmonitor | r | Move focus to right monitor | +| <kbd>$mod SHIFT ALT comma</kbd> | movecurrentworkspacetomonitor | l | Move workspace to left monitor | +| <kbd>$mod SHIFT ALT period</kbd> | movecurrentworkspacetomonitor | r | Move workspace to right monitor | +| <kbd>$mod L</kbd> | exec | loginctl lock-session | Lock screen | +| <kbd>Print</kbd> | exec | grimblast --notify copysave area | Take Screenshot of area | +| <kbd>CTRL Print</kbd> | exec | grimblast --notify --cursor copysave output | Take Screenshot of window | +| <kbd>SHIFT Print</kbd> | exec | grimblast --notify --cursor copysave screen | Take Screenshot of screen | +| <kbd>$mod equal</kbd> | exec | pypr zoom "$(hyprctl getoption misc:cursor_zoom_factor \| grep float \| awk '{print $2 + 1}')" | Zoom in | +| <kbd>$mod minus</kbd> | exec | pypr zoom "$(hyprctl getoption misc:cursor_zoom_factor \| grep float \| awk '{print $2 - 1}')" | Zoom out | +| <kbd>$mod 1</kbd> | workspace | num | Create workspace 'num' | +| <kbd>$mod SHIFT 1</kbd> | movetoworkspace | num | Move window to workspace 'num' | +| <kbd>$mod A</kbd> | exec | nwg-drawer | Application Drawer | +| <kbd>$mod C</kbd> | exec | hyprpicker -arf hex | Color Picker | +| <kbd>$mod D</kbd> | exec | pypr toggle displays | Monitor Configuration | +| <kbd>$mod F</kbd> | exec | thunar | File Manager | +| <kbd>$mod T</kbd> | exec | kitty | Terminal | +| <kbd>$mod Shift T</kbd> | exec | pypr toggle term | Toggle Terminal in Quake mode | +| <kbd>$mod V</kbd> | exec | pypr toggle clip | Toggle Clipboard | +| <kbd>$mod W</kbd> | exec | firefox | Web Browser | +| <kbd>$mod Return</kbd> | exec | missioncenter | Task Manager | +| <kbd>$mod N</kbd> | exec | dunstctl history-pop | Show received notifications in order | +| <kbd>$mod slash</kbd> | exec | ulauncher-toggle | Application Launcher | +| <kbd>XF86Calculator</kbd> | exec | qalculate-gtk | Calculator | +| <kbd>$mod Escape</kbd> | exec | wlogout -p layer-shell | System Logoff | +| <kbd>XF86AudioPlay</kbd> | exec | playerctl play-pause | Play/Pause Media | +| <kbd>XF86AudioPrev</kbd> | exec | playerctl previous | Previous Media | +| <kbd>XF86AudioNext</kbd> | exec | playerctl next | Next Media | +| <kbd>XF86AudioMute</kbd> | exec | wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle | Mute Speakers | +| <kbd>XF86AudioMicMute</kbd> | exec | wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle | Mute Microphone | +| <kbd>XF86AudioRaiseVolume</kbd> | exec | wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%+ | Increase Volume | +| <kbd>XF86AudioLowerVolume</kbd> | exec | wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%- | Decrease Volume | +| <kbd>XF86MonBrightnessUp</kbd> | exec | brillo -u 300000 -A 5 | Increase Brightness | +| <kbd>XF86MonBrightnessDown</kbd> | exec | brillo -u 300000 -U 5 | Decrease Brightness | +| <kbd>$mod mouse:272</kbd> | movewindow | | Move window | +| <kbd>$mod mouse:273</kbd> | resizewindow | | Window resize | +| <kbd>$mod CTRL mouse:272</kbd> | resizewindow | | Window resize | +| <kbd>$mod SHIFT mouse:272</kbd> | moveintogroup | | Move window into application group | Created using [`hyprkeys`](https://github.com/hyprland-community/Hyprkeys) diff --git a/modules/gui/desktop/hyprland/apps/bar.nix b/modules/gui/desktop/hyprland/apps/bar.nix @@ -37,7 +37,7 @@ in rec { enable = true; systemd.enable = true; package = pkgs.wayworld.waybar; - inherit (files.waybar) style; + inherit (files.hyprland.waybar) style; # Panel settings = [ @@ -133,7 +133,11 @@ in rec { on-click = "activate"; on-click-middle = "fullscreen"; on-click-right = "close"; - ignore-list = ["ulauncher"]; + ignore-list = [ + "kitty-dropterm" + "nwg-clipman" + "ulauncher" + ]; }; tray = { @@ -148,7 +152,7 @@ in rec { tooltip-format = " {status}"; tooltip-format-connected = "{device_enumerate}"; tooltip-format-enumerate-connected = " {device_alias} {device_battery_percentage}%"; - on-click = "overskride"; + on-click = "pypr show bluetooth"; }; network = { @@ -160,7 +164,7 @@ in rec { format-linked = " {ifname}"; tooltip-format = "Network: <big><b>{essid}</b></big>\nStrength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>"; tooltip-format-disconnected = " Disconnected"; - on-click = "kitty nmtui"; + on-click = "pypr show network"; }; keyboard-state = { @@ -192,7 +196,7 @@ in rec { tooltip-format = "Volume: {volume}%\nDevice: {node_name}"; format-muted = " Mute"; format-icons = ["" "" "" ""]; - on-click = "pavucontrol"; + on-click = "pypr show volume"; }; backlight = { @@ -201,7 +205,7 @@ in rec { format-icons = ["" "" "" "" "" "" "" "" ""]; on-scroll-down = "brillo -u 300000 -A 5"; on-scroll-up = "brillo -u 300000 -U 5"; - on-click = "nwg-displays"; + on-click = "pypr show displays"; }; battery = { diff --git a/modules/gui/desktop/hyprland/apps/default.nix b/modules/gui/desktop/hyprland/apps/default.nix @@ -98,11 +98,12 @@ in { wayland.windowManager.hyprland.settings.bind = [ "$mod, A, exec, nwg-drawer" "$mod, C, exec, hyprpicker -arf hex" - "$mod, D, exec, nwg-displays" + "$mod, D, exec, pypr toggle displays" "$mod, F, exec, thunar" "$mod, N, exec, dunstctl history-pop" "$mod, T, exec, kitty" - "$mod, V, exec, nwg-clipman -nw" + "$mod SHIFT, T, exec, pypr toggle term" + "$mod, V, exec, pypr toggle clip" "$mod, W, exec, firefox" "$mod, slash, exec, ulauncher-toggle" "$mod, Return, exec, missioncenter" @@ -252,7 +253,7 @@ in { home.file = { # Application Drawer - ".config/nwg-drawer/drawer.css".text = nwg.drawer; + ".config/nwg-drawer/drawer.css".text = hyprland.nwg.drawer; # Wallpaper ".config/hypr/hyprpaper.conf".text = '' diff --git a/modules/gui/desktop/hyprland/apps/security.nix b/modules/gui/desktop/hyprland/apps/security.nix @@ -29,6 +29,7 @@ in { # Screen Idle services.swayidle = { enable = true; + systemdTarget = "hyprland-session.target"; events = [ { event = "before-sleep"; diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -61,8 +61,8 @@ in { "$mod, period, workspace, m+1" # Special Workspace - "$mod SHIFT, grave, movetoworkspace, special" - "$mod, grave, togglespecialworkspace, ${sys.gui.display}" + "$mod, grave, togglespecialworkspace, stash" + "$mod SHIFT, grave, exec, pypr toggle_special stash" # Move Window to Workspace "$mod SHIFT, comma, movetoworkspace, m-1" @@ -85,8 +85,8 @@ in { "SHIFT, Print, exec, grimblast --notify --cursor copysave screen" # Magnifier - ''$mod, equal, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | grep float | awk '{print $2 + 1}')"'' - ''$mod, minus, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | grep float | awk '{print $2 - 1}')"'' + ''$mod, equal, exec, pypr zoom "$(hyprctl getoption misc:cursor_zoom_factor | grep float | awk '{print $2 + 1}')"'' + ''$mod, minus, exec, pypr zoom "$(hyprctl getoption misc:cursor_zoom_factor | grep float | awk '{print $2 - 1}')"'' ] ++ # Workspaces diff --git a/modules/gui/desktop/hyprland/settings/plugins.nix b/modules/gui/desktop/hyprland/settings/plugins.nix @@ -1,5 +1,15 @@ -{pkgs, ...}: { +{ + pkgs, + files, + ... +}: { ## Plugin Settings + # Pyprland + home = { + packages = [pkgs.unstable.pyprland]; + file.".config/hypr/pyprland.toml".text = files.hyprland.pypr; + }; + wayland.windowManager.hyprland = { plugins = with pkgs.wayworld; [hych hycov]; extraConfig = '' @@ -26,18 +36,21 @@ } ''; - settings.bind = [ - # Window Minimize - "ALT, Q, hych:minimize" - "ALT SHIFT, Q, hych:toggle_restore_window" + settings = { + exec-once = ["pypr"]; + bind = [ + # Window Minimize + "ALT, Q, hych:minimize" + "ALT SHIFT, Q, hych:toggle_restore_window" - # Overview - "ALT, grave, hycov:toggleoverview" - "ALT SHIFT, grave, hycov:toggleoverview, forceall" - "ALT, left, hycov:movefocus, l" - "ALT, right, hycov:movefocus, r" - "ALT, up, hycov:movefocus, u" - "ALT, down, hycov:movefocus, d" - ]; + # Overview + "ALT, grave, hycov:toggleoverview" + "ALT SHIFT, grave, hycov:toggleoverview, forceall" + "ALT, left, hycov:movefocus, l" + "ALT, right, hycov:movefocus, r" + "ALT, up, hycov:movefocus, u" + "ALT, down, hycov:movefocus, d" + ]; + }; }; } diff --git a/modules/gui/desktop/pantheon.nix b/modules/gui/desktop/pantheon.nix @@ -118,7 +118,7 @@ in { }; home = { - file = { + file = with pantheon; { # Plank Dock ".config/autostart/Dock.desktop".text = plank.autostart; ".local/share/plank/themes/default/dock.theme".text = plank.theme;