dotfiles

My PC Dotfiles & Website
commit 6e58cb47a891ec06dea46bd1c9d3870dc7eac24c
parent b9fb53228c62578ff3177824441d4c3e32838907
Author: maydayv7 <maydayv7@gmail.com>
Date:   Thu, 16 May 2024 19:38:25 +0530

feat: Hyprland Dock

Use modified version of `nwg-dock-hyprland`

Diffstat:

Mdevices/vortex.nix | 2+-
Mfiles/flake.nix | 17+++++++++++------
Mfiles/hyprland/binds.pango | 8++++----
Afiles/hyprland/nwg/dock.css | 32++++++++++++++++++++++++++++++++
Afiles/hyprland/nwg/dropdown.svg | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Mfiles/hyprland/pypr.toml | 1+
Mfiles/hyprland/waybar.css | 6+-----
Mflake.lock | 12++++++------
Mmodules/apps/office.nix | 1+
Mmodules/gui/desktop/hyprland/apps/bar.nix | 50++------------------------------------------------
Mmodules/gui/desktop/hyprland/apps/default.nix | 20++++++++++++++------
Mmodules/gui/desktop/hyprland/settings/keybindings.nix | 24++++++++++++------------
Mmodules/hardware/virtualisation/android.nix | 3+--
Apackages/nwg-dock/default.nix | 32++++++++++++++++++++++++++++++++
Apackages/nwg-dock/minimize.patch | 19+++++++++++++++++++
Mscripts/hyprutils.nix | 13+++++++++++++
16 files changed, 200 insertions(+), 90 deletions(-)

diff --git a/devices/vortex.nix b/devices/vortex.nix @@ -16,7 +16,7 @@ filesystem = "advanced"; support = ["laptop" "mobile" "printer" "virtualisation"]; modules = ["dell-inspiron-5509"]; - vm.android.enable = false; + vm.android.enable = true; cpu = { cores = 8; mode = "performance"; diff --git a/files/flake.nix b/files/flake.nix @@ -86,6 +86,17 @@ # Greeter Configuration greeter = readFile ./hyprland/greeter.conf; + # NWG Shell + nwg = + map.files { + directory = ./hyprland/nwg; + apply = readFile; + extension = ".css"; + } + // { + image = ./hyprland/nwg/dropdown.svg; + }; + # Pyprland pypr = readFile ./hyprland/pypr.toml; @@ -94,12 +105,6 @@ # WLogout wlogout = readFile ./hyprland/wlogout.css; - - # NWG Shell - nwg = { - drawer = readFile ./hyprland/nwg/drawer.css; - wrapper = ./hyprland/nwg/wrapper.css; - }; }; # Pictures diff --git a/files/hyprland/binds.pango b/files/hyprland/binds.pango @@ -15,11 +15,11 @@ <tt>$mod `</tt> Show workspace expose view <b>Resize</b> <tt>$mod R</tt> <tt>$mod [SHIFT] Tab</tt> Show workspace overview [for all monitors] <i>ARROW</i> Resize window in specified direction -<tt>ALT [SHIFT] Tab</tt> Show application overview [for all workspaces] +<tt>ALT [SHIFT] Tab</tt> Show application overview [for all workspaces] <tt>L'/R'</tt> Resize / Move window <tt>ALT <i>ARROW</i></tt> Switch to window in desired direction (in overview) -<tt>ALT [SHIFT] Tab</tt> Cycle [backwards] through open applications -<tt>ALT [SHIFT] `</tt> Cycle [backwards] through grouped applications - +<tt>ALT [SHIFT] Tab</tt> Cycle [backwards] through open applications <b>Minimize</b> <tt>ALT SHIFT Q</tt> +<tt>ALT [SHIFT] `</tt> Cycle [backwards] through grouped applications <tt>Return<i> or </i>L'</tt> Unminimize selected window + <tt>F4</tt> Quit focused application <tt>$mod <i>NUM</i></tt> Create workspace '<i>NUM</i>' {1 to 9} <tt>$mod SHIFT <i>NUM</i></tt> Move window to workspace '<i>NUM</i>' {1 to 9} <tt>$mod ,<i> or </i>.</tt> Move to previous/next non-empty workspace diff --git a/files/hyprland/nwg/dock.css b/files/hyprland/nwg/dock.css @@ -0,0 +1,32 @@ +/* nwg-dock Styling */ + +* { + border-radius: 10px; +} + +window { + background-color: transparent; +} + +#box { + padding: 0px; +} + +#active { + border-bottom: solid 1px; + border-color: rgba(255, 255, 255, 0.3); +} + +button, +image { + background: none; + border: none; +} + +button:hover { + background-color: rgba (255, 255, 255, 0.1); +} + +button:focus { + box-shadow: none; +} diff --git a/files/hyprland/nwg/dropdown.svg b/files/hyprland/nwg/dropdown.svg @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + id="svg1" + width="100" + height="100" + viewBox="0 0 500 500" + sodipodi:docname="grid.svg" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + inkscape:export-filename="grid.svg" + inkscape:export-xdpi="48" + inkscape:export-ydpi="48" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs1" /> + <sodipodi:namedview + id="namedview1" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + showgrid="false" + inkscape:zoom="1.616" + inkscape:cx="249.69059" + inkscape:cy="250" + inkscape:window-width="1906" + inkscape:window-height="1015" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g1" /> + <g + inkscape:groupmode="layer" + inkscape:label="Image" + id="g1"> + <image + width="500" + height="500" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ&#10;bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp&#10;bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6&#10;eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz&#10;NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo&#10;dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw&#10;dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv&#10;IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS&#10;ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD&#10;cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl&#10;SUQ9InhtcC5paWQ6OUZDMkJDOUUzODA3MTFFM0JGMERFNkYyRDkwQTcyN0QiIHhtcE1NOkRvY3Vt&#10;ZW50SUQ9InhtcC5kaWQ6OUZDMkJDOUYzODA3MTFFM0JGMERFNkYyRDkwQTcyN0QiPiA8eG1wTU06&#10;RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzE5N0I4RDM4MDYxMUUzQkYw&#10;REU2RjJEOTBBNzI3RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzE5N0I4RTM4MDYxMUUz&#10;QkYwREU2RjJEOTBBNzI3RCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w&#10;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&#10;" + id="image1" /> + </g> +</svg> diff --git a/files/hyprland/pypr.toml b/files/hyprland/pypr.toml @@ -8,6 +8,7 @@ plugins = [ animation = "fromTop" command = "kitty --class kitty-dropterm" class = "kitty-dropterm" +lazy = true size = "75% 60%" [scratchpads.clip] diff --git a/files/hyprland/waybar.css b/files/hyprland/waybar.css @@ -35,6 +35,7 @@ window#waybar { .modules-left #workspaces button.active { border: 2px solid @base03; + color: @base05; } .modules-left #workspaces button.empty { @@ -42,10 +43,6 @@ window#waybar { background-color: transparent; } -#custom-minimized { - color: @base0E; -} - #taskbar button.active { background: @base03; } @@ -125,7 +122,6 @@ window#waybar { #custom-dropdown, #custom-dunst, #custom-logo, -#custom-minimized, #custom-power, #custom-weather, #keyboard-state, diff --git a/flake.lock b/flake.lock @@ -739,11 +739,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1712791164, - "narHash": "sha256-3sbWO1mbpWsLepZGbWaMovSO7ndZeFqDSdX0hZ9nVyw=", + "lastModified": 1712963716, + "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1042fd8b148a9105f3c0aca3a6177fd1d9360ba5", + "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", "type": "github" }, "original": { @@ -1052,11 +1052,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1713019360, - "narHash": "sha256-5ngbcZjAB42kpjnmFNHJfXlCrujtzDsqynG1afKnqXc=", + "lastModified": 1715401925, + "narHash": "sha256-EGZGHCv4OFqzFc9oP82LCKMWfMGsmadOOZ0DZHYSdns=", "owner": "catppuccin", "repo": "vscode", - "rev": "eead26917ad2f00c32145975cb04340c8bc5e91e", + "rev": "f0a6271f62ebb868f32c7ad4ecb31104c26f987a", "type": "github" }, "original": { diff --git a/modules/apps/office.nix b/modules/apps/office.nix @@ -27,6 +27,7 @@ in { libreoffice obs-studio pitivi + xournalpp # Internet google-chrome diff --git a/modules/gui/desktop/hyprland/apps/bar.nix b/modules/gui/desktop/hyprland/apps/bar.nix @@ -4,9 +4,7 @@ pkgs, files, ... -}: let - theme = import ../theme.nix pkgs; -in rec { +}: rec { ## Bar Configuration stylix.targets.waybar = { enable = true; @@ -52,8 +50,7 @@ in rec { margin-bottom = 5; margin-left = 5; - modules-left = ["custom/logo" "group/users" "hyprland/workspaces" "group/window"]; - modules-center = ["wlr/taskbar"]; + modules-left = ["custom/logo" "group/users" "hyprland/workspaces" "hyprland/window"]; modules-right = [ "group/menu" "bluetooth" @@ -116,12 +113,6 @@ in rec { }; }; - "group/window" = { - orientation = "horizontal"; - modules = ["hyprland/window" "custom/minimized"]; - drawer.transition-left-to-right = true; - }; - "hyprland/window" = { format = "{initialTitle}"; max-length = 40; @@ -138,43 +129,6 @@ in rec { }; }; - "custom/minimized" = { - format = ""; - tooltip = "false"; - on-click = with pkgs; "${writeShellApplication { - name = "minimize"; - runtimeInputs = [hyprworld.hyprland]; - text = '' - if hyprctl workspaces | grep "special:minimized" - then - hyprctl --batch "\ - dispatch submap reset;\ - dispatch workspace special:minimized;\ - dispatch submap minimized" - exit - else - hyprctl notify 3 2000 0 "No minimized windows present" - fi - ''; - }}/bin/minimize"; - }; - - "wlr/taskbar" = { - format = "{icon}"; - icon-size = 16; - all-outputs = false; - icon-theme = theme.icons.name; - tooltip-format = "{title}"; - on-click = "activate"; - on-click-middle = "fullscreen"; - on-click-right = "close"; - ignore-list = [ - "kitty-dropterm" - "clipse" - "ulauncher" - ]; - }; - "group/menu" = { orientation = "horizontal"; modules = ["custom/dropdown" "keyboard-state" "tray"]; diff --git a/modules/gui/desktop/hyprland/apps/default.nix b/modules/gui/desktop/hyprland/apps/default.nix @@ -35,15 +35,16 @@ in { celluloid unstable.clipse custom.desktop-icons + evince font-manager geany gnome.file-roller gnome.gnome-disk-utility hyprpicker lollypop - mate.atril mission-center unstable.nwg-displays + custom.nwg-dock unstable.nwg-drawer nwg-wrapper unstable.overskride @@ -91,7 +92,7 @@ in { image = ["org.gnome.Shotwell-Viewer.desktop"]; magnet = ["transmission-gtk.desktop"]; markdown = ["geany.desktop"]; - pdf = ["atril.desktop"]; + pdf = ["org.gnome.Evince.desktop"]; text = ["geany.desktop"]; video = ["io.github.celluloid_player.Celluloid.desktop"]; }; @@ -133,17 +134,20 @@ in { wayland.windowManager.hyprland.settings.exec-once = [ "dbus-update-activation-environment --systemd --all" + # Clipboard + "clipse -listen" + # Application Drawer "nwg-drawer -r" # Desktop Icons "dicons" - # Clipboard - "clipse -listen" - # Binds List - (with files.hyprland; "nwg-wrapper -t ${binds} -c ${nwg.wrapper} -il 3 -sv 1") + (with files.hyprland; "nwg-wrapper -t ${binds} -c ${builtins.toFile "css" nwg.wrapper} -il 3 -sv 1") + + # Application Dock + "nwg-dock-hyprland -l 'overlay' -p 'top' -i 34 -w 9 -c 'hyprutils toggle minimized'" ]; # Utilities @@ -279,6 +283,10 @@ in { # Application Drawer ".config/nwg-drawer/drawer.css".text = hyprland.nwg.drawer; + # Application Dock + ".config/nwg-dock-hyprland/style.css".text = hyprland.nwg.dock; + ".local/share/nwg-dock-hyprland/images/grid.svg".source = hyprland.nwg.image; + # Browser ".mozilla/firefox/default/chrome/userChrome.css".text = '' #TabsToolbar { diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -121,18 +121,6 @@ ## Submaps extraConfig = '' - # Window Minimization - bind = ALT SHIFT, Q, submap, minimized - submap = minimized - bind = , F4, killactive - bind = , Return, movetoworkspace, +0 - bind = , Return, submap, reset - bind = , mouse:272, movetoworkspace, +0 - bind = , mouse:272, submap, reset - bind = , escape, togglespecialworkspace, minimized - bind = , escape, submap, reset - submap = reset - # Window Resize bind = $mod, R, submap, resize submap = resize @@ -144,6 +132,18 @@ bindm = , mouse:273, movewindow bind = , escape, submap, reset submap = reset + + # Window Minimization + bind = ALT SHIFT, Q, submap, minimized + submap = minimized + bind = , F4, killactive + bind = , Return, movetoworkspace, +0 + bind = , Return, submap, reset + bind = , mouse:272, movetoworkspace, +0 + bind = , mouse:272, submap, reset + bind = , escape, togglespecialworkspace, minimized + bind = , escape, submap, reset + submap = reset ''; }; } diff --git a/modules/hardware/virtualisation/android.nix b/modules/hardware/virtualisation/android.nix @@ -6,12 +6,11 @@ ... }: let inherit (lib) mkEnableOption mkIf optional; - inherit (config.hardware.vm.android) enable; in { options.hardware.vm.android.enable = mkEnableOption "Enable Android Virtualisation"; ## Android Virtualisation ## - config = mkIf enable { + config = mkIf config.hardware.vm.android.enable { assertions = [ { assertion = config.gui.wayland.enable; diff --git a/packages/nwg-dock/default.nix b/packages/nwg-dock/default.nix @@ -0,0 +1,32 @@ +{ + lib, + pkgs, + ... +}: +with pkgs; + unstable.buildGoModule rec { + pname = "nwg-dock-hyprland"; + version = "v" + src.rev; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = pname; + rev = "f81fcd6c1564583d31aede2bf63b018d94cc562e"; + sha256 = "sha256-Af6ug7XdveJdX4wvN1KCWVJTZtOfhWYWdo+OPn2Ypvk="; + }; + + patches = [./minimize.patch]; + vendorHash = "sha256-bK3SpydIO943e7zti6yWQ+JqmdF4NkAAtelNBt4Q/+s="; + + ldflags = ["-s" "-w"]; + buildInputs = [gtk-layer-shell]; + nativeBuildInputs = [pkg-config wrapGAppsHook]; + + meta = with lib; { + description = "Modified 'nwg-dock' for Hyprland"; + homepage = "https://github.com/nwg-piotr/nwg-dock-hyprland"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = ["maydayv7"]; + }; + } diff --git a/packages/nwg-dock/minimize.patch b/packages/nwg-dock/minimize.patch @@ -0,0 +1,19 @@ +diff --git a/tools.go b/tools.go +index 6aae64c..9bd7612 100644 +--- a/tools.go ++++ b/tools.go +@@ -277,6 +277,14 @@ func clientMenuContext(class string, instances []client) gtk.Menu { + log.Debugf("%s -> %s", cmd, reply) + }) + ++ subitem, _ = gtk.MenuItemNewWithLabel("minimize") ++ submenu.Append(subitem) ++ subitem.Connect("activate", func() { ++ cmd := fmt.Sprintf("dispatch movetoworkspacesilent special:minimized,address:%s", a) ++ reply, _ := hyprctl(cmd) ++ log.Debugf("%s -> %s", cmd, reply) ++ }) ++ + subitem, _ = gtk.MenuItemNewWithLabel("fullscreen") + submenu.Append(subitem) + subitem.Connect("activate", func() { diff --git a/scripts/hyprutils.nix b/scripts/hyprutils.nix @@ -21,6 +21,7 @@ float - Toggle window floating in current workspace idle - Toggle Idle Daemon service media - Persist and toggle audio playing state + minimized - Show Minimized windows monitor - Toggle specified Monitor shader - Toggle Compositor Shader ''; @@ -253,6 +254,18 @@ in playerctl pause -a fi ;; + "minimized") + if hyprctl workspaces | grep "special:minimized" + then + hyprctl --batch "\ + dispatch submap reset;\ + dispatch workspace special:minimized;\ + dispatch submap minimized" + exit + else + hyprctl notify 1 2000 0 "No minimized windows present" + fi + ;; "monitor") if hyprctl monitors | grep "$3" then