diff --git a/configs/hypr-desktop/hyprland.conf b/configs/hypr-desktop/hyprland.conf index c1d929e..698d19e 100644 --- a/configs/hypr-desktop/hyprland.conf +++ b/configs/hypr-desktop/hyprland.conf @@ -1,7 +1,6 @@ # Startup exec-once= bash -c "wl-paste --watch cliphist store &" exec-once= fcitx5 -d -exec-once= wl-paste -p --watch wl-copy -p '' exec-once= dms run # DankShell # Monitors @@ -43,12 +42,12 @@ $shadow=rgba(1a1a1aee) animations { bezier=myBezier, 0.05, 0.9, 0.1, 1.05 - animation=windows, 1, 7, myBezier - animation=windowsOut, 1, 7, default, popin 80% - animation=border, 1, 10, default - animation=borderangle, 1, 8, default - animation=fade, 1, 7, default - animation=workspaces, 1, 6, default + animation=windows, 1, 6, myBezier + animation=windowsOut, 1, 6, default, popin 80% + animation=border, 1, 8, default + animation=borderangle, 1, 6, default + animation=fade, 1, 6, default + animation=workspaces, 1, 3, default enabled=true } @@ -131,59 +130,55 @@ misc { # Plugin Config -plugin { - hyprexpo { - columns = 3 - gap_size = 3 - bg_col = $expo_bg - workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 - - enable_gesture = true # laptop touchpad - gesture_fingers = 3 # 3 or 4 - gesture_distance = 300 # how far is the "max" - gesture_positive = false # true = swipe down, false = swipe up. - } -} +# plugin { +# hyprexpo { +# columns = 3 +# gap_size = 3 +# bg_col = $expo_bg +# workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 +# +# enable_gesture = true # laptop touchpad +# gesture_fingers = 3 # 3 or 4 +# gesture_distance = 300 # how far is the "max" +# gesture_positive = false # true = swipe down, false = swipe up. +# } +# } # Window Rules -windowrule=idleinhibit fullscreen, class:firefox -windowrule=idleinhibit fullscreen, class:floorp -windowrule=idleinhibit fullscreen, class:ghostty -windowrule=idleinhibit focus, class:firefox -windowrule=idleinhibit focus, class:floorp -windowrule=idleinhibit focus, class:mpv -windowrule=idleinhibit focus, class:^(emacs)$ -windowrule=idleinhibit focus, class:^(Emacs)$ -windowrule=idleinhibit focus, class:^(discord)$ -windowrule=idleinhibit focus, class:^(spotify)$ -windowrule=idleinhibit focus, class:^(Discord|discord)$ - -windowrule=opacity 0.98 0.9, class:^(Discord|discord)$ - -windowrule=float, class:polkit-kde-authentication-agent-1 -windowrule=float, class:^(praat)$ -windowrule=float, class:^(steam)$, title:^(Friends List)$ -windowrule=float, class:^(network)$ -windowrule=float, class:^(nm-)$ -windowrule=float, class:^(Network)$ -windowrule=float, class:Rofi -windowrule=float, class:Gimp -windowrule=float, class:Nautilus -windowrule=float, class:notification -windowrule=float, class:^(launcher)$ -windowrule=tile, class:Spotify -windowrule=tile, title:Minecraft - -windowrule=workspace name:game, class:^(steam)$ -windowrule=workspace name:shell, class:^(KeePassXC)$ -windowrule=workspace name:browser, class:^(firefox)$ -windowrule=workspace name:browser, class:^(floorp)$ -windowrule=workspace name:browser, class:^(Brave.*)$ -windowrule=workspace name:music, class:^(Spotify)$ -windowrule=workspace name:chat, class:^(discord)$ -windowrule=workspace name:chat, class:^(Signal)$ -windowrule=workspace name:game, title:Minecraft +windowrule = idleinhibit fullscreen, class:firefox +windowrule = idleinhibit fullscreen, class:floorp +windowrule = idleinhibit fullscreen, class:ghostty +windowrule = idleinhibit focus, class:firefox +windowrule = idleinhibit focus, class:floorp +windowrule = idleinhibit focus, class:mpv +windowrule = idleinhibit focus, class:^(emacs)$ +windowrule = idleinhibit focus, class:^(Emacs)$ +windowrule = idleinhibit focus, class:^(discord)$ +windowrule = idleinhibit focus, class:^(spotify)$ +windowrule = idleinhibit focus, class:^(Discord|discord)$ +windowrule = opacity 0.98 0.9, class:^(Discord|discord)$ +windowrule = float, class:polkit-kde-authentication-agent-1 +windowrule = float, class:^(praat)$ +windowrule = float, class:^(network)$ +windowrule = float, class:^(nm-)$ +windowrule = float, class:^(Network)$ +windowrule = float, class:Rofi +windowrule = float, class:Gimp +windowrule = float, class:Nautilus +windowrule = float, title:^(LmDev-.*)$ +windowrule = float, class:notification +windowrule = float, class:^(Genymotion Player)$ +windowrule = float, class:^(launcher)$ +windowrule = tile, class:Spotify +windowrule = tile, title:Minecraft +windowrule = workspace 2, class:KeePassXC +windowrule = workspace 3, class:firefox +windowrule = workspace 3, class:floorp +windowrule = workspace 4, class:Spotify +windowrule = workspace 6, class:discord +windowrule = workspace 6, class:Signal +windowrule = workspace 10, title:Minecraft # Workspace Rules workspace=name:game, monitor:DP-1 @@ -194,7 +189,8 @@ workspace=name:program, monitor:DP-1, default:true workspace=name:extra, monitor:DP-1 # Commands -$lock=hyprlock +# $lock=hyprlock +$lock=dms ipc call lock lock $screenshotarea=hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default' $discord=discord --enable-blink-features=MiddleClickAutoscroll $emacs=emacsclient -c -a 'emacs' @@ -210,24 +206,34 @@ $mainMod=SUPER # Binds :: Programs $none= -# :Meta-Bind: :Key: :Command: :Args: -bind=$altMod, Return, exec, ghostty -bind=$altMod SHIFT, Return, exec, alacritty -bind=$mainMod SHIFT, D, exec, $discord -bind=$mainMod SHIFT, E, exec, $emacs -bind=$mainMod SHIFT, F, exec, focus-linux -bind=$mainMod, SPACE, exec, pkill wofi || wofi -bind=$mainMod, E, exec, nautilus -bind=$mainMod, S, exec, spotify -bind=$mainMod, P, exec, $colorpick -bind=$none, Print, exec, $screenshotarea -bind=SHIFT, Print, exec, $screenshot -bind=$mainMod CTRL, Q, exec, $lock -bind=$mainMod SHIFT, P, pseudo -bind=$mainMod, C, killactive -bind=$mainMod, V, togglefloating -bind=$mainMod SHIFT, S, togglesplit -bind=$mainMod, F4, exit +# :Meta-Bind: :Key: :Command: :Args: + +bind=$altMod, Return, exec, ghostty +bind=$altMod SHIFT, Return, exec, foot +bind=$mainMod SHIFT, D, exec, discord --enable-blink-features=MiddleClickAutoscroll +bind=$mainMod SHIFT, E, exec, emacsclient -c -a 'emacs' +bind=$mainMode SHIFT, F, exec, focus-linux +bind=$mainMod, Space, exec, dms ipc call spotlight toggle +bind=$mainMod, E, exec, thunar +bind=$mainMod, S, exec, spotify +bind=$mainMod, P, exec, hyprpicker -a -f hex +bind=$none, Print, exec, $screenshotarea +bind=SHIFT, Print, exec, grimblast --cursor copy output +bind=$mainMod, X, exec, dms ipc call powermenu toggle +bind=$mainMod SHIFT, P, pseudo, +bind=$mainMod, C, killactive, +bind=$mainMod SHIFT, F, togglefloating, +bind=$mainMod SHIFT, S, togglesplit, +bind=$mainMod CTRL, Q, exec, $lock +bind=$mainMod, F4, exit, +bind=$mainMod, M, exec, dms ipc call processlist toggle +bind=$mainMod, I, exec, dms ipc call settings toggle +bind=$mainMod CTRL, P, exec, dms ipc call notepad toggle +bind=$mainMod CTRL, C, exec, dms ipc call control-center toggle + +# Night mode toggle +bind=$mainMod, N, exec, dms ipc call notifications toggle +bind=$mainMod SHIFT, N, exec, dms ipc call night toggle # bind = SUPER, grave, hyprexpo:expo, toggle # Commented out cos "version mismatch (bs)" @@ -297,18 +303,17 @@ bindm=$mainMod, mouse:273, resizewindow # Binds :: MultiMedia -$brightness=$NIX_CONFIG_DIR/scripts/progress-notify.sh brightness -$volume=$NIX_CONFIG_DIR/scripts/progress-notify.sh audio -$mute=$NIX_CONFIG_DIR/scripts/progress-notify.sh mute +bindl=$none, XF86AudioPlay, exec, playerctl play-pause +bindl=$none, XF86AudioNext, exec, playerctl next +bindl=$none, XF86AudioPrev, exec, playerctl previous -binde=$none, XF86MonBrightnessDown, exec, brightnessctl set 10%- && $brightness -binde=$none, XF86MonBrightnessUp, exec, brightnessctl set 10%+ && $brightness -bindel=, XF86AudioRaiseVolume, exec, pamixer -i 5 && $volume -bindel=, XF86AudioLowerVolume, exec, pamixer -d 5 && $volume -bindel=, XF86AudioMute, exec, pamixer -t && $mute -bindl=$none, XF86AudioPlay, exec, playerctl play-pause -bindl=$none, XF86AudioNext, exec, playerctl next -bindl=$none, XF86AudioPrev, exec, playerctl previous +bindl=$none, XF86AudioMute, exec, dms ipc call audio mute +bindl=$none, XF86AudioMicMute, exec, dms ipc call audio micmute +bindle=$none, XF86AudioRaiseVolume, exec, dms ipc call audio increment 3 +bindle=$none, XF86AudioLowerVolume, exec, dms ipc call audio decrement 3 + +bindle=$none, XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 "" +bindle=$none, XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 "" # Binds :: Submaps diff --git a/flake.lock b/flake.lock index f0cf0d4..93b7802 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1755946532, - "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", + "lastModified": 1759499898, + "narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", + "rev": "655e067f96fd44b3f5685e17f566b0e4d535d798", "type": "github" }, "original": { @@ -43,11 +43,11 @@ "quickshell": "quickshell" }, "locked": { - "lastModified": 1759457446, - "narHash": "sha256-dxcxe8g1SeH4djECYJ7zjyi03JmHkhJBNO8268Vwtfs=", + "lastModified": 1759603110, + "narHash": "sha256-N9vbCzCx7tv3McHjOLZ5HMcYAP7k0aDMgrnpYJ1pJeI=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "b4ab9d96503d120304e63246d71488b2eb467f75", + "rev": "df2469468bc7d5e59de865d0791c1cee71e748e5", "type": "github" }, "original": { @@ -143,11 +143,11 @@ ] }, "locked": { - "lastModified": 1759337100, - "narHash": "sha256-CcT3QvZ74NGfM+lSOILcCEeU+SnqXRvl1XCRHenZ0Us=", + "lastModified": 1759573136, + "narHash": "sha256-ILSPD0Dm8p0w0fCVzOx98ZH8yFDrR75GmwmH3fS2VnE=", "owner": "nix-community", "repo": "home-manager", - "rev": "004753ae6b04c4b18aa07192c1106800aaacf6c3", + "rev": "5f06ceafc6c9b773a776b9195c3f47bbe1defa43", "type": "github" }, "original": { @@ -201,11 +201,11 @@ ] }, "locked": { - "lastModified": 1758192433, - "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=", + "lastModified": 1759490292, + "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7", + "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", "type": "github" }, "original": { @@ -230,11 +230,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1759399554, - "narHash": "sha256-FsFugHj7He5siEcmoRUdMKHB8uMzyneK/fynPS57W4E=", + "lastModified": 1759530922, + "narHash": "sha256-9NgZKpibALekGTPDc2O8lP8vFealQSZkXe+L+S7MMZU=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "3bcfa94ee4189faaa4daf661949e88cf28c00d94", + "rev": "76d998743ac10e712238c1016db4d8e8d16f1049", "type": "github" }, "original": { @@ -353,11 +353,11 @@ ] }, "locked": { - "lastModified": 1757694755, - "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=", + "lastModified": 1759080228, + "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c", + "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", "type": "github" }, "original": { @@ -382,11 +382,11 @@ ] }, "locked": { - "lastModified": 1756810301, - "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { @@ -407,11 +407,11 @@ ] }, "locked": { - "lastModified": 1756117388, - "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", + "lastModified": 1759490926, + "narHash": "sha256-7IbZGJ5qAAfZsGhBHIsP8MBsfuFYS0hsxYHVkkeDG5Q=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", + "rev": "94cce794344538c4d865e38682684ec2bbdb2ef3", "type": "github" }, "original": { @@ -447,11 +447,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1758198701, - "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", + "lastModified": 1759381078, + "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", + "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "type": "github" }, "original": { @@ -528,11 +528,11 @@ ] }, "locked": { - "lastModified": 1759303785, - "narHash": "sha256-EUXrK7pUIzOQWR1dquZh26A6W8lsY2oiHEEZzQnsarM=", + "lastModified": 1759608035, + "narHash": "sha256-nIzIXswHeACRIgziuA0Soz66CXRY6pExijOyqX0+6aU=", "owner": "quickshell-mirror", "repo": "quickshell", - "rev": "9662234759eb57f2a1057f2a1c667da1bf128c1c", + "rev": "9bb2c043ae303acc281b9d8b08e5b756563ed0ac", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index bbf5566..91f8862 100644 --- a/flake.nix +++ b/flake.nix @@ -4,10 +4,6 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; hyprland.url = "github:hyprwm/Hyprland"; - caelestia-shell = { - url = "github:caelestia-dots/shell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; home-manager = { url = "github:nix-community/home-manager"; diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 579f354..2dfab28 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -2,9 +2,9 @@ { imports = [ - ./hardware-configuration.nix - inputs.home-manager.nixosModules.default - ]; + ./hardware-configuration.nix + inputs.home-manager.nixosModules.default + ]; boot = { loader.systemd-boot.enable = true; @@ -76,7 +76,7 @@ restart = true; settings = { default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --cmd river"; + command = "${pkgs.tuigreet}/bin/tuigreet --cmd Hyprland"; }; }; }; @@ -85,6 +85,7 @@ packages = [ pkgs.android-udev-rules ]; }; + upower.enable = true; libinput.enable = true; blueman.enable = true; gvfs.enable = true; @@ -179,7 +180,7 @@ plugins = [ ]; }; - river = { + river-classic = { enable = true; xwayland.enable = true; }; @@ -214,7 +215,6 @@ ghostty glib gnome-keyring - inputs.caelestia-shell.packages.${system}."with-cli" libdrm libnotify mesa diff --git a/hosts/desktop/file.nix b/hosts/desktop/file.nix index 94ee978..5913608 100644 --- a/hosts/desktop/file.nix +++ b/hosts/desktop/file.nix @@ -14,10 +14,10 @@ in # Symlink dotfiles home.file = mkSymlinkAttrs { # Fonts - ".local/share/fonts/KelmscottMono.otf" = { - source = ../../fonts/KelmscottMono.otf; + ".local/share/fonts" = { + source = ../../fonts; outOfStoreSymlink = true; - recursive = false; + recursive = true; }; # Configs @@ -26,6 +26,11 @@ in outOfStoreSymlink = true; recursive = true; }; + ".config/DankMaterialShell" = { + source = ../../configs/DankMaterialShell; + outOfStoreSymlink = true; + recursive = true; + }; ".config/river" = { source = ../../configs/river; outOfStoreSymlink = true; diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 1b061cb..39fc24c 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -1,4 +1,4 @@ -{ +{ cfg, config, pkgs, @@ -19,6 +19,8 @@ # general modules ../../modules/home-manager/tmux.nix + + inputs.dankMaterialShell.homeModules.dankMaterialShell.default ]; # You should not change this value, even if you update Home Manager. If you do diff --git a/hosts/desktop/pkgs.nix b/hosts/desktop/pkgs.nix index 74ff3f8..6d72091 100644 --- a/hosts/desktop/pkgs.nix +++ b/hosts/desktop/pkgs.nix @@ -16,8 +16,9 @@ emacsPackages.pdf-tools exfatprogs fastfetch + ffmpeg filezilla - floorp + floorp-bin fuzzel fzf genymotion @@ -32,6 +33,8 @@ kdePackages.kdenlive keepassxc kdePackages.polkit-kde-agent-1 + keepassxc + libreoffice localsend mpv mupdf @@ -44,7 +47,7 @@ pamixer pavucontrol powertop - # prismlauncher + prismlauncher protonvpn-cli pywal qbittorrent @@ -52,6 +55,7 @@ slurp swaynotificationcenter swww + teams-for-linux texliveFull xfce.thunar xfce.thunar-volman @@ -102,26 +106,9 @@ ".." = "cd .."; }; }; - # caelestia = { - # enable = true; - # systemd = { - # enable = false; - # target = "graphical-session.target"; - # environment = [ ]; - # }; - # settings = { - # bar.status = { - # showBattery = false; - # }; - # paths.wallpaperDir = "~/pictures/.wallpapers"; - # }; - # cli = { - # enable = true; - # settings = { - # theme.enableGtk = false; - # }; - # }; - # }; + dankMaterialShell = { + enable = true; + }; emacs = { enable = true; package = pkgs.emacs-gtk;