From 935257bc4bc2027b4977add179ad2ccc77fb7ece Mon Sep 17 00:00:00 2001 From: "zastian@mrthoddata.com" Date: Mon, 15 Sep 2025 13:04:52 +0100 Subject: [PATCH] gg --- configuration.nix | 5 +- dots/hyprland.nix | 63 +++--- dots/xdg.nix | 94 +++++---- dots/zsh.nix | 98 +++++---- flake.lock | 505 ++++++++++++++++++++++++++++++++++++++++++-- flake.nix | 10 + system/services.nix | 2 +- 7 files changed, 638 insertions(+), 139 deletions(-) diff --git a/configuration.nix b/configuration.nix index c7a4123..cd75f31 100755 --- a/configuration.nix +++ b/configuration.nix @@ -71,7 +71,10 @@ in }; # Hyprland - programs.hyprland.enable = useHypr; + programs.hyprland = { + enable = useHypr; + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + }; # X11 base (kept enabled for keymap + DM if needed) services.xserver = { diff --git a/dots/hyprland.nix b/dots/hyprland.nix index 8dd39e2..f234c80 100755 --- a/dots/hyprland.nix +++ b/dots/hyprland.nix @@ -9,7 +9,9 @@ }: let caelestia-cli = inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli; - + hypr-package = inputs.hyprland.packages.${pkgs.system}.hyprland; + hypr-portal = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; + hypr-split = inputs.hyprland-hyprsplit.packages.${pkgs.system}.split-monitor-workspaces; mod = "Alt"; terminal = "footclient"; fileManager = "dolphin"; @@ -21,9 +23,11 @@ in { wayland.windowManager.hyprland = { enable = window_manager == "hyprland" || window_manager == "all"; + package = hypr-package; + portalPackage = hypr-portal; plugins = [ - pkgs.hyprlandPlugins.hyprsplit - pkgs.hyprlandPlugins.hyprscrolling + #pkgs.hyprlandPlugins.hyprsplit + hypr-split ]; settings = { @@ -105,16 +109,9 @@ in ########################################################################## plugin = { - hyprsplit = { - num_workspaces = 10; - persistent_workspaces = true; - }; - - hyprscrolling = { - fullscreen_on_one_column = false; - column_width = 0.7; - explicit_column_widths = [ 0.333 0.5 0.667 1.0 ]; - focus_fit_method = 0; + split-monitor-workspaces = { + count = 10; + penable_persistent_workspaces = 1; }; }; @@ -308,28 +305,28 @@ in "${mod} SHIFT, J, movewindow, d" # Workspaces (switch) - "${mod}, 1, split:workspace, 1 " - "${mod}, 2, split:workspace, 2 " - "${mod}, 3, split:workspace, 3 " - "${mod}, 4, split:workspace, 4 " - "${mod}, 5, split:workspace, 5 " - "${mod}, 6, split:workspace, 6 " - "${mod}, 7, split:workspace, 7 " - "${mod}, 8, split:workspace, 8 " - "${mod}, 9, split:workspace, 9 " - "${mod}, 0, split:workspace, 10" + "${mod}, 1, split-workspace, 1 " + "${mod}, 2, split-workspace, 2 " + "${mod}, 3, split-workspace, 3 " + "${mod}, 4, split-workspace, 4 " + "${mod}, 5, split-workspace, 5 " + "${mod}, 6, split-workspace, 6 " + "${mod}, 7, split-workspace, 7 " + "${mod}, 8, split-workspace, 8 " + "${mod}, 9, split-workspace, 9 " + "${mod}, 0, split-workspace, 10" # Workspaces (move active window) - "${mod} SHIFT, 1, split:movetoworkspacesilent, 1 " - "${mod} SHIFT, 2, split:movetoworkspacesilent, 2 " - "${mod} SHIFT, 3, split:movetoworkspacesilent, 3 " - "${mod} SHIFT, 4, split:movetoworkspacesilent, 4 " - "${mod} SHIFT, 5, split:movetoworkspacesilent, 5 " - "${mod} SHIFT, 6, split:movetoworkspacesilent, 6 " - "${mod} SHIFT, 7, split:movetoworkspacesilent, 7 " - "${mod} SHIFT, 8, split:movetoworkspacesilent, 8 " - "${mod} SHIFT, 9, split:movetoworkspacesilent, 9 " - "${mod} SHIFT, 0, split:movetoworkspacesilent, 10" + "${mod} SHIFT, 1, split-movetoworkspacesilent, 1 " + "${mod} SHIFT, 2, split-movetoworkspacesilent, 2 " + "${mod} SHIFT, 3, split-movetoworkspacesilent, 3 " + "${mod} SHIFT, 4, split-movetoworkspacesilent, 4 " + "${mod} SHIFT, 5, split-movetoworkspacesilent, 5 " + "${mod} SHIFT, 6, split-movetoworkspacesilent, 6 " + "${mod} SHIFT, 7, split-movetoworkspacesilent, 7 " + "${mod} SHIFT, 8, split-movetoworkspacesilent, 8 " + "${mod} SHIFT, 9, split-movetoworkspacesilent, 9 " + "${mod} SHIFT, 0, split-movetoworkspacesilent, 10" # Special workspace (scratchpad) "${mod}, SLASH, togglespecialworkspace, magic" diff --git a/dots/xdg.nix b/dots/xdg.nix index 371a667..a233c93 100755 --- a/dots/xdg.nix +++ b/dots/xdg.nix @@ -3,81 +3,97 @@ lib, pkgs, window_manager, + inputs, ... }: { xdg = { enable = true; + portal = { enable = true; + config.common.default = [ "hyprland;kde" "river" "kde" "gtk" ]; + xdgOpenUsePortal = true; + extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk - xdg-desktop-portal-hyprland + inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland kdePackages.xdg-desktop-portal-kde ]; }; + mime.enable = true; + mimeApps = { enable = true; + defaultApplications = let - browser = [ "zen-beta.desktop" ]; + browser = [ "zen-beta.desktop" ]; fileManager = [ "pcmanfm.desktop" ]; - editor = [ "emacs.desktop" ]; - player = [ "mpv.desktop" ]; - viewer = [ "imv-dir.desktop" ]; - reader = [ "org.pwmt.zathura.desktop" ]; - in - { - "application/pdf" = reader; + editor = [ "emacs.desktop" ]; + player = [ "mpv.desktop" ]; + viewer = [ "imv-dir.desktop" ]; + reader = [ "org.pwmt.zathura.desktop" ]; + in { + # Documents + "application/pdf" = reader; "application/epub" = reader; - "text/html" = browser; - "text/xml" = browser; - "text/plain" = editor; + # Text / markup + "text/plain" = editor; "application/x-wine-extension-ini" = editor; + "text/html" = browser; + "text/xml" = browser; - "application/json" = browser; - "application/xml" = browser; - "application/xhtml+xml" = browser; - "application/xhtml_xml" = browser; - "application/rdf+xml" = browser; - "application/rss+xml" = browser; - "application/x-extension-htm" = browser; - "application/x-extension-html" = browser; + # Web / XML-ish + "application/json" = browser; + "application/xml" = browser; + "application/xhtml+xml" = browser; + "application/xhtml_xml" = browser; + "application/rdf+xml" = browser; + "application/rss+xml" = browser; + "application/x-extension-htm" = browser; + "application/x-extension-html" = browser; "application/x-extension-shtml" = browser; - "application/x-extension-xht" = browser; + "application/x-extension-xht" = browser; "application/x-extension-xhtml" = browser; + # URL schemes "x-scheme-handler/about" = browser; - "x-scheme-handler/ftp" = browser; - "x-scheme-handler/http" = browser; + "x-scheme-handler/ftp" = browser; + "x-scheme-handler/http" = browser; "x-scheme-handler/https" = browser; + # Files / directories "inode/directory" = fileManager; "application/zip" = fileManager; + # Audio "audio/mpeg" = player; - "audio/aac" = player; + "audio/aac" = player; "audio/flac" = player; - "audio/wav" = player; - "video/mp4" = player; - "video/vnd.mpegurl" = player; - "video/x-matroska" = player; + "audio/wav" = player; + + # Video + "video/mp4" = player; + "video/vnd.mpegurl" = player; + "video/x-matroska" = player; "application/x-mpegURL" = player; - "image/gif" = viewer; + # Images + "image/gif" = viewer; "image/jpeg" = viewer; - "image/png" = viewer; + "image/png" = viewer; "image/webp" = viewer; }; }; @@ -85,13 +101,14 @@ userDirs = { enable = true; createDirectories = true; - download = "${config.home.homeDirectory}/Downloads"; - documents = "${config.home.homeDirectory}/Documents"; - desktop = "${config.home.homeDirectory}/Desktop"; - videos = "${config.home.homeDirectory}/Videos"; - pictures = "${config.home.homeDirectory}/Pictures"; - music = "${config.home.homeDirectory}/Music"; - templates = "${config.home.homeDirectory}/.local/share/templates"; + + download = "${config.home.homeDirectory}/Downloads"; + documents = "${config.home.homeDirectory}/Documents"; + desktop = "${config.home.homeDirectory}/Desktop"; + videos = "${config.home.homeDirectory}/Videos"; + pictures = "${config.home.homeDirectory}/Pictures"; + music = "${config.home.homeDirectory}/Music"; + templates = "${config.home.homeDirectory}/.local/share/templates"; publicShare = "${config.home.homeDirectory}/.local/share/public"; }; @@ -100,7 +117,8 @@ --enable-features=UseOzonePlatform --ozone-platform-hint=wayland ''; - #configFile."hypr/hyprland.conf".onChange = "hyprctl reload"; + # Example: + # configFile."hypr/hyprland.conf".onChange = "hyprctl reload"; }; } diff --git a/dots/zsh.nix b/dots/zsh.nix index d6134ad..9490d6e 100755 --- a/dots/zsh.nix +++ b/dots/zsh.nix @@ -6,69 +6,77 @@ }: { programs.zsh = { - enable = true; - dotDir = ".config/zsh"; + enable = true; + dotDir = ".config/zsh"; + plugins = [ - #pkgs.zsh-autosuggestions - #pkgs.spaceship-prompt + # pkgs.zsh-autosuggestions + # pkgs.spaceship-prompt ]; + autosuggestion = { - enable = true; + enable = true; highlight = "fg=#64677a,bold,underline"; }; + history = { path = "$XDG_DATA_HOME/zsh/history"; }; + sessionVariables = { - LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib"; - HISTSIZE = 3000; - SAVEHIST = 3000; - CARGO_HOME = "$XDG_DATA_HOME/cargo"; - GNUPGHOME = "$XDG_DATA_HOME/gnupg"; - GOPATH = "$XDG_DATA_HOME/go"; - GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle"; - IPYTHONDIR = "$XDG_CONFIG_HOMEipython"; - JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; - LESSHISTFILE = "$XDG_CACHE_HOME/less/history"; - NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages"; - PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc"; - KERAS_HOME = "$XDG_STATE_HOME/keras"; - RUSTUP_HOME = "$XDG_DATA_HOME/rustup"; - XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose"; - SSB_HOME = "$XDG_DATA_HOME/zoom"; - HISTFILE = "$XDG_STATE_HOME/zsh/history"; + LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib"; + HISTSIZE = 3000; + SAVEHIST = 3000; + CARGO_HOME = "$XDG_DATA_HOME/cargo"; + GNUPGHOME = "$XDG_DATA_HOME/gnupg"; + GOPATH = "$XDG_DATA_HOME/go"; + GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle"; + IPYTHONDIR = "$XDG_CONFIG_HOMEipython"; + JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; + LESSHISTFILE = "$XDG_CACHE_HOME/less/history"; + NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages"; + PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc"; + KERAS_HOME = "$XDG_STATE_HOME/keras"; + RUSTUP_HOME = "$XDG_DATA_HOME/rustup"; + XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose"; + SSB_HOME = "$XDG_DATA_HOME/zoom"; + HISTFILE = "$XDG_STATE_HOME/zsh/history"; }; + shellAliases = { - nix-switch = "sudo nixos-rebuild switch"; + nix-switch = "sudo nixos-rebuild switch"; nix-upgrade = "sudo nixos-rebuild switch --upgrade"; - nix-edit = "sudo vim /etc/nixos/configuration.nix"; - ls = "exa -lag --icons"; - upload = "~/.config/script/upload.sh"; - record = "~/.config/script/record.sh"; - speak = "~/.config/script/wisper.sh"; - vim = "nvim"; - cat = "bat"; - anime = "~/repos/ani-cli/ani-cli"; - hentai = "~/repos/and-scripts/fap-cli"; - manga = "manga-cli"; - yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t"; - cd = "z"; - rm = "rip"; - df = "duf"; - time = "hyperfine"; - kami = "~/Documents/Rust/kami/target/release/kami"; - calc = "cpc"; - pdf = "mupdf"; - emacs = "emacs"; - river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river"; - cp = "xcp"; - wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts"; + nix-edit = "sudo vim /etc/nixos/configuration.nix"; + + ls = "exa -lag --icons"; + upload = "~/.config/script/upload.sh"; + record = "~/.config/script/record.sh"; + speak = "~/.config/script/wisper.sh"; + vim = "nvim"; + cat = "bat"; + anime = "~/repos/ani-cli/ani-cli"; + hentai = "~/repos/and-scripts/fap-cli"; + manga = "manga-cli"; + yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t"; + cd = "z"; + rm = "rip"; + df = "duf"; + time = "hyperfine"; + kami = "~/Documents/Rust/kami/target/release/kami"; + calc = "cpc"; + pdf = "mupdf"; + emacs = "emacs"; + river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river"; + cp = "xcp"; + wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts"; }; + initContent = '' eval "$(${lib.getExe pkgs.zoxide} init zsh)" eval "$(${lib.getExe pkgs.atuin} init zsh)" source ${pkgs.spaceship-prompt}/lib/spaceship-prompt/spaceship.zsh ''; + envExtra = '' ${lib.getExe pkgs.macchina} nixdev() { diff --git a/flake.lock b/flake.lock index 1103677..a20c961 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1757042560, - "narHash": "sha256-M+N9yi0ziCVeMGuqMnLRZBoIoZHXCvWNlkLBpyp+4Jo=", + "lastModified": 1757328288, + "narHash": "sha256-sAENodEKjnK3w3aZ/Iv64W5mmONGEJx8ns05gjpnR58=", "owner": "Kirottu", "repo": "anyrun", - "rev": "df2a914b5acdd0f39ed4bf4336afc9e94fb28be8", + "rev": "0a72f4e56cf1428a51aa571344c4220990633cb3", "type": "github" }, "original": { @@ -22,6 +22,39 @@ "type": "github" } }, + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1755946532, + "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -210,6 +243,7 @@ } }, "flake-compat": { + "flake": false, "locked": { "lastModified": 1747046372, "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", @@ -225,6 +259,21 @@ } }, "flake-compat_2": { + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -314,6 +363,28 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "gnome-shell": { "flake": false, "locked": { @@ -351,21 +422,301 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1756891319, + "narHash": "sha256-/e6OXxzbAj/o97Z1dZgHre4bNaVjapDGscAujSCQSbI=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "621e2e00f1736aa18c68f7dfbf2b9cff94b8cc4d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_2", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1757322502, + "narHash": "sha256-DZTe3kDshcT2TOoWCJ2Nc/7k+PLqkaW2KkYJqt5wz7k=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "b619f39555b96c70330f4a933dedde7e897e0d81", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-hyprsplit": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nix-filter": "nix-filter" + }, + "locked": { + "lastModified": 1756589646, + "narHash": "sha256-ppER/Y2M0tUSLR3/msph+Kt8TF7/h9Q2qxjEaqVTKnw=", + "owner": "Duckonaut", + "repo": "split-monitor-workspaces", + "rev": "6af9cdf7d739e667c638b1ac10fec0ba7ba6b86c", + "type": "github" + }, + "original": { + "owner": "Duckonaut", + "repo": "split-monitor-workspaces", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1756810301, + "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1756117388, + "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1757246205, - "narHash": "sha256-x+cTvOZL5Fwa/YVmfMEnXg1+bjj4e8wYGoe1pt6c/oM=", + "lastModified": 1757324011, + "narHash": "sha256-iGAWGz2uG8GsGw9114FZnTcaAn0uiLXDPmYzzuM69w8=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "4f38421373b783cfbe395973fda7a1b39af60200", + "rev": "a0ec3abc11e90afa47150dd2d3607920a63c056c", "type": "github" }, "original": { @@ -409,7 +760,7 @@ }, "nix-alien": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "nix-index-database": "nix-index-database", "nixpkgs": [ "nixpkgs" @@ -448,6 +799,21 @@ "type": "github" } }, + "nix-filter": { + "locked": { + "lastModified": 1731533336, + "narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "f7653272fd234696ae94229839a99b73c9ab7de0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -471,9 +837,9 @@ }, "nixcord": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1757207094, @@ -537,11 +903,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1757020766, - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", + "lastModified": 1757244434, + "narHash": "sha256-AeqTqY0Y95K1Fgs6wuT1LafBNcmKxcOkWnm4alD9pqM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "rev": "092c565d333be1e17b4779ac22104338941d913f", "type": "github" }, "original": { @@ -584,6 +950,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1757068644, + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1754028485, "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=", @@ -599,7 +981,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1757068644, "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", @@ -615,7 +997,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1756819007, "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", @@ -656,6 +1038,29 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1757239681, + "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "qs-qml": { "inputs": { "nixpkgs": [ @@ -745,11 +1150,13 @@ "caelestia": "caelestia", "caelestia-cli": "caelestia-cli_2", "home-manager": "home-manager", + "hyprland": "hyprland", + "hyprland-hyprsplit": "hyprland-hyprsplit", "niri": "niri", "nix-alien": "nix-alien", "nix-colors": "nix-colors", "nixcord": "nixcord", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "qs-qml": "qs-qml", "quickshell": "quickshell_3", "stylix": "stylix", @@ -765,9 +1172,9 @@ "firefox-gnome-theme": "firefox-gnome-theme", "flake-parts": "flake-parts_3", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nur": "nur", - "systems": "systems_2", + "systems": "systems_3", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -804,6 +1211,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -899,6 +1321,47 @@ "type": "github" } }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1755354946, + "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { @@ -942,11 +1405,11 @@ ] }, "locked": { - "lastModified": 1757218898, - "narHash": "sha256-mB3z1ssPry/wHgLd8gFOaltwQ9kIRTqrzikkcnxG720=", + "lastModified": 1757308755, + "narHash": "sha256-daEx9piqNWMVsfJx91O2lKtSTPUXnanS755M1oo5zLU=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "2255b29eece0757827b9911ef685c963996542b6", + "rev": "36f0082103e6a4f3ec51e5c48a4c79426c8c6853", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8d1b2ba..f41586f 100755 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,15 @@ url = "github:thiagokokada/nix-alien"; inputs.nixpkgs.follows = "nixpkgs"; }; + hyprland = { + url = "github:hyprwm/Hyprland"; + #inputs.nixpkgs.follows = "nixpkgs"; + }; + hyprland-hyprsplit = { + url = "github:Duckonaut/split-monitor-workspaces"; + inputs.hyprland.follows = "hyprland"; + }; + }; outputs = @@ -48,6 +57,7 @@ }@inputs: let system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; #Avalable options are ["niri" "river" "hyprland" "all"] window_manager = "hyprland"; in diff --git a/system/services.nix b/system/services.nix index a7eaa43..5564e07 100755 --- a/system/services.nix +++ b/system/services.nix @@ -107,7 +107,7 @@ package = pkgs.emacs-pgtk; }; - services.flatpak.enable = true; + #services.flatpak.enable = true; # Sunshine (only on PC) services.sunshine = lib.mkIf (systemName == "pc") {