diff --git a/flake.lock b/flake.lock index ae5044b..f7753ef 100644 --- a/flake.lock +++ b/flake.lock @@ -174,21 +174,6 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_3": { - "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-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -334,32 +319,6 @@ "type": "github" } }, - "git-hooks": { - "inputs": { - "flake-compat": [ - "stylix", - "flake-compat" - ], - "gitignore": "gitignore_2", - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "git-hooks-nix": { "inputs": { "flake-compat": "flake-compat", @@ -403,41 +362,19 @@ "type": "github" } }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "stylix", - "git-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": { - "lastModified": 1744584021, - "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "type": "github" }, "original": { "owner": "GNOME", - "ref": "48.1", + "ref": "48.2", "repo": "gnome-shell", "type": "github" } @@ -504,27 +441,6 @@ "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1748737919, - "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "5675a9686851d9626560052a032c4e14e533c1fa", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "mnw": { "locked": { "lastModified": 1748710831, @@ -898,11 +814,8 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_4", - "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", - "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_7", "nur": "nur", "systems": "systems_6", @@ -913,15 +826,15 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1751145558, - "narHash": "sha256-OPlbpH64jzIspYqvJB96tnN9V9HBlAxROS5ijQwtN70=", - "owner": "danth", + "lastModified": 1752163883, + "narHash": "sha256-muhhvzHyRIi8JC36ldWLZqli1yUutVQJc+F+lxb8E70=", + "owner": "nix-community", "repo": "stylix", - "rev": "3a09d3f5cb940fa4142a2f3415b508a8be92b721", + "rev": "46d4a5d694b125cd8c05372275b47ff10f2930aa", "type": "github" }, "original": { - "owner": "danth", + "owner": "nix-community", "repo": "stylix", "type": "github" } diff --git a/flake.nix b/flake.nix index c694a22..e246a86 100644 --- a/flake.nix +++ b/flake.nix @@ -59,7 +59,7 @@ }; # Ricing - stylix.url = "github:danth/stylix"; + stylix.url = "github:nix-community/stylix"; nvf = { url = "github:notashelf/nvf"; diff --git a/home/programs/default.nix b/home/programs/default.nix index b0b0cec..05c0b31 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -1,11 +1,13 @@ { imports = [ ./firefox.nix + ./foot.nix ./games.nix + ./kodi.nix ./mpv.nix ./neovim.nix ./nixcord.nix - ./kodi.nix ./other.nix + ./xdg.nix ]; } diff --git a/home/programs/foot.nix b/home/programs/foot.nix new file mode 100644 index 0000000..740578b --- /dev/null +++ b/home/programs/foot.nix @@ -0,0 +1,14 @@ +{ + programs.foot = { + enable = true; + settings = {}; + }; + + xdg.desktopEntries = builtins.listToAttrs (map (x: { + name = "${x}"; + value = { + name = ""; + noDisplay = true; + }; + }) ["footclient" "foot-server"]); +} diff --git a/home/programs/xdg.nix b/home/programs/xdg.nix new file mode 100644 index 0000000..9b981e8 --- /dev/null +++ b/home/programs/xdg.nix @@ -0,0 +1,61 @@ +{ + xdg.mimeApps = let + browser = "firefox.desktop"; + fileManager = "yazi.desktop"; + mailer = "thunderbird.desktop"; + photoedit = "gimp.desktop"; + vectoredit = "org.inkscape.Inkscape.desktop"; + modeledit = "BambuStudio.desktop"; + textedit = "nvim.desktop"; + mediaviewer = "mpv.desktop"; + + associations = { + "text/html" = browser; + "x-scheme-handler/http" = browser; + "x-scheme-handler/https" = browser; + "x-scheme-handler/ftp" = browser; + "x-scheme-handler/about" = browser; + "x-scheme-handler/unknown" = browser; + "application/xhtml+xml" = browser; + "application/x-extension-htm" = browser; + "application/x-extension-html" = browser; + "application/x-extension-shtml" = browser; + "application/x-extension-xhtml" = browser; + "application/x-extension-xht" = browser; + "application/json" = browser; + "application/pdf" = browser; + + "model/3mf" = modeledit; + "model/stl" = modeledit; + "inode/directory" = fileManager; + "text/*" = textedit; + # "application/x-xz-compressed-tar" = ["org.kde.ark.desktop"]; + + "audio/*" = mediaviewer; + "video/*" = mediaviewer; + "image/*" = mediaviewer; + "image/vnd.adobe.photoshop" = photoedit; + "image/vnd.microsoft.icon" = photoedit; + "image/vnd.zbrush.pcx" = photoedit; + "image/x-gimp-gbr" = photoedit; + "image/x-gimp-gih" = photoedit; + "image/x-gimp-pat" = photoedit; + "application/illustrator" = vectoredit; + "application/vnd.corel-draw" = vectoredit; + "application/vnd.visio" = vectoredit; + + "x-scheme-handler/mailto" = mailer; + "text/calendar" = mailer; + "text/vcard" = mailer; + + "x-scheme-handler/discord" = ["vesktop.desktop"]; + "x-scheme-handler/sgnl" = ["signal.desktop"]; + "x-scheme-handler/signalcaptcha" = ["signal.desktop"]; + "x-scheme-handler/spotify" = ["spotify.desktop"]; + }; + in { + enable = true; + associations.added = associations; + defaultApplications = associations; + }; +} diff --git a/home/wayland/default.nix b/home/wayland/default.nix index 8734c89..a67589a 100644 --- a/home/wayland/default.nix +++ b/home/wayland/default.nix @@ -12,6 +12,7 @@ in { ./hyprland ./hyprlock.nix ./mako.nix + ./tofi.nix ]; home.packages = mkIf cfg [ diff --git a/home/wayland/fuzzel.nix b/home/wayland/fuzzel.nix index 33eb17c..1dce312 100644 --- a/home/wayland/fuzzel.nix +++ b/home/wayland/fuzzel.nix @@ -3,11 +3,15 @@ pkgs, lib, ... -}: { +}: let + inherit (lib) getExe; +in { programs.fuzzel = { - inherit (osConfig.programs.hyprland) enable; + enable = false; #NOTE: Fuzzel is disabled. + # inherit (osConfig.programs.hyprland) enable; settings.main = { launch-prefix = "${lib.getExe pkgs.uwsm} app --"; + terminal = "${getExe pkgs.foot}"; }; }; } diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index 405c4ec..203049e 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -25,7 +25,8 @@ termappE = termappE: termapp (getExe termappE); foot = appE config.programs.foot.package; - fuzzel = appE config.programs.fuzzel.package; + # fuzzel = appE config.programs.fuzzel.package; #NOTE: Fuzzel is disabled + tofi = "sh -c '${uwsm} app -- $(${config.programs.tofi.package}/bin/tofi-drun)'"; firefox = appE config.programs.firefox.package; playerctl = appE pkgs.playerctl; brightnessctl = appE pkgs.brightnessctl; @@ -82,7 +83,8 @@ in { "$m, O, pseudo," "$m ALT, ,resizeactive," - "$m, D, exec, ${fuzzel}" + # "$m, D, exec, ${fuzzel}" #NOTE: Fuzzel is disabled + "$m, D, exec, ${tofi}" "$m, Return, exec, ${foot}" "$m Shift, Return, exec, ${firefox}" "$m, Escape, exec, ${hyprlock}" diff --git a/home/wayland/tofi.nix b/home/wayland/tofi.nix new file mode 100644 index 0000000..ae09956 --- /dev/null +++ b/home/wayland/tofi.nix @@ -0,0 +1,41 @@ +{ + osConfig, + pkgs, + lib, + ... +}: let + inherit (lib) getExe; +in { + programs.tofi = { + inherit (osConfig.programs.hyprland) enable; + settings = { + terminal = "${getExe pkgs.foot}"; + + "horizontal" = true; + "anchor" = "top"; + "width" = "100%"; + "height" = 34; + "outline-width" = 0; + "border-width" = 0; + "min-input-width" = 120; + "result-spacing" = 30; + "padding-top" = 7; + "padding-bottom" = 7; + "padding-left" = 20; + "padding-right" = 0; + "margin-top" = 0; + "margin-bottom" = 0; + "margin-left" = 15; + "margin-right" = 0; + "prompt-text" = " "; + "prompt-padding" = 30; + "prompt-background-padding" = "4, 10"; + "prompt-background-corner-radius" = 12; + "input-background-padding" = "4, 10"; + "input-background-corner-radius" = 12; + "selection-background-padding" = "4, 10"; + "selection-background-corner-radius" = 12; + "clip-to-padding" = false; + }; + }; +} diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 806751d..83f2c75 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -12,6 +12,7 @@ neovim = true; desktop = { games = true; + apps = true; enable = true; hyprland = true; #TODO: flip both, just trying if it works. kde = true; @@ -24,16 +25,16 @@ "HDMI-A-1,1920x1080,2560x540,1" ]; workspace = [ - "workspace = 1, monitor:DP-3" - "workspace = 2, monitor:DP-3" - "workspace = 3, monitor:DP-3" - "workspace = 4, monitor:HDMI-A-1" - "workspace = 5, monitor:HDMI-A-1" - "workspace = 6, monitor:DP-3" - "workspace = 7, monitor:DP-3" - "workspace = 8, monitor:DP-3" - "workspace = 9, monitor:DP-3" - "workspace = 0, monitor:HDMI-A-1" + "1, monitor:DP-3" + "2, monitor:DP-3" + "3, monitor:DP-3" + "4, monitor:HDMI-A-1" + "5, monitor:HDMI-A-1" + "6, monitor:DP-3" + "7, monitor:DP-3" + "8, monitor:DP-3" + "9, monitor:DP-3" + "0, monitor:HDMI-A-1" ]; }; } diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index f1b3255..6732e7f 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -29,6 +29,7 @@ neovim = true; desktop = { games = true; + apps = true; enable = true; hyprland = true; kde = true; diff --git a/system/hardware/power.nix b/system/hardware/power.nix index 114c9dc..5da484d 100644 --- a/system/hardware/power.nix +++ b/system/hardware/power.nix @@ -7,8 +7,8 @@ inherit (config) niksos; cfg = niksos.hardware.portable; in { - config = { - services = lib.mkIf cfg.enable { + config = lib.mkIf cfg.enable { + services = { logind = { powerKey = "suspend-then-hibernate"; powerKeyLongPress = "poweroff";