diff --git a/.forgejo/workflows/check.yml b/.forgejo/workflows/check.yml index 186d680..adddf31 100644 --- a/.forgejo/workflows/check.yml +++ b/.forgejo/workflows/check.yml @@ -13,12 +13,20 @@ jobs: - nvimNoTSGrammars - treefmt steps: - - uses: "https://git.salame.cl/actions/checkout@v4" + - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 - name: Run checks run: | nix --version # shellcheck disable=SC2016 nix build --print-build-logs '.#checks.x86_64-linux.${{ matrix.check }}' + check-renovaterc: + runs-on: nixos + steps: + - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 + - name: Validate renovaterc.json + run: | + nix --version + nix shell nixpkgs#renovate --command renovate-config-validator build: runs-on: nixos needs: check @@ -31,7 +39,7 @@ jobs: - nixosConfigurations.vm.config.system.build.toplevel - nvim steps: - - uses: "https://git.salame.cl/actions/checkout@v4" + - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 - name: Build target run: | nix --version @@ -41,10 +49,10 @@ jobs: runs-on: nixos needs: build steps: - - uses: "https://git.salame.cl/actions/checkout@v4" + - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 - run: nix --version - name: Create Size Report - uses: https://git.salame.cl/jalil/nix-flake-outputs-size@main + uses: "https://git.salame.cl/jalil/nix-flake-outputs-size@5c40a31e3e2ed0ea28f8ba68deca41d05fdf2e71" # main with: # Create a comment on the associated PR comment-on-pr: ${{ github.ref_name != 'main' }} diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 499a8c3..dd7df12 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -11,12 +11,12 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: DeterminateSystems/nix-installer-action@v13 with: source-url: "https://install.lix.systems/lix/lix-installer-x86_64-linux" diagnostic-endpoint: "" - - uses: DeterminateSystems/magic-nix-cache-action@v9 + - uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9 - name: Run `nix flake check` run: | nix flake check --verbose --keep-going @@ -24,8 +24,8 @@ jobs: build-docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: DeterminateSystems/magic-nix-cache-action@v9 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9 - uses: DeterminateSystems/nix-installer-action@v13 with: source-url: "https://install.lix.systems/lix/lix-installer-x86_64-linux" @@ -33,7 +33,7 @@ jobs: - name: Build documentation run: nix build .#docs --print-build-logs - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 with: path: ./result deploy-docs: @@ -49,4 +49,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/.renovaterc.json b/.renovaterc.json index d02aeba..feb16d3 100644 --- a/.renovaterc.json +++ b/.renovaterc.json @@ -10,7 +10,7 @@ "dependencyDashboard": true, "prCreation": "immediate", "extends": [ - "config:recommended" + "config:best-practices" ], "nix": { "fileMatch": [ @@ -23,14 +23,14 @@ "lockFileMaintenance": { "enabled": true, "recreateWhen": "always", - "rebaseStalePrs": true, + "rebaseWhen": "behind-base-branch", "branchTopic": "lock-file-maintenance", "commitMessageAction": "Lock file maintenance", "schedule": [ - "* 0-1 * * *" + "* 0 * * *" ] }, "automergeSchedule": [ - "* 1-2 * * *" + "* 1 * * *" ] } diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index 1422669..70fb0fb 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -16,6 +16,7 @@ nixosModule = { imports = [ (import ../system { inherit (inputs) stylix; }) + inputs.niri.nixosModules.niri inputs.home-manager.nixosModules.home-manager ] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default; home-manager = { diff --git a/flake-modules/nvim.nix b/flake-modules/nvim.nix index 75fd4e8..89832f3 100644 --- a/flake-modules/nvim.nix +++ b/flake-modules/nvim.nix @@ -17,7 +17,10 @@ }; }; moduleDev = nvimModule { }; - moduleHeadless = nvimModule { jhome.nvim.dev.enable = false; }; + moduleHeadless = nvimModule { + jhome.nvim.dev.enable = false; + jhome.nvim.reduceSize = true; + }; moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; }; moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; }; moduleNoBundledBins = nvimModule { diff --git a/flake.lock b/flake.lock index cb698c9..d65aded 100644 --- a/flake.lock +++ b/flake.lock @@ -37,11 +37,11 @@ "base16-helix": { "flake": false, "locked": { - "lastModified": 1725860795, - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "lastModified": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "type": "github" }, "original": { @@ -53,27 +53,28 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1731949548, - "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", "owner": "tinted-theming", "repo": "base16-vim", - "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" } }, "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1734969791, - "narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=", + "lastModified": 1739223196, + "narHash": "sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz+e/655w=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe", + "rev": "a89108e6272426f4eddd93ba17d0ea101c34fb21", "type": "github" }, "original": { @@ -89,11 +90,11 @@ ] }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -163,19 +164,14 @@ "nixpkgs": [ "stylix", "nixpkgs" - ], - "nixpkgs-stable": [ - "stylix", - "git-hooks", - "nixpkgs" ] }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { @@ -230,11 +226,11 @@ ] }, "locked": { - "lastModified": 1736373539, - "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", + "lastModified": 1739757849, + "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", + "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", "type": "github" }, "original": { @@ -279,13 +275,57 @@ "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": [], + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixpkgs" + ], + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": [] + }, + "locked": { + "lastModified": 1739042449, + "narHash": "sha256-9zLFUpEebwhjCgtznsI61gTzefI3+fuXATHUOFzJi5w=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "98e3666a9dc4143cbf93d957a15d749b5acef046", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1736614405, + "narHash": "sha256-AJ1rlgNOPb3/+DbS5hkhm21t6Oz8IgqLllwmZt0lyzk=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "e05bc269e678ecf828b96ae79c991c13b00b38a5", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.01", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1739357830, - "narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=", + "lastModified": 1741445498, + "narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a", + "rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634", "type": "github" }, "original": { @@ -313,28 +353,18 @@ }, "nixvim": { "inputs": { - "devshell": [], - "flake-compat": [], "flake-parts": [ "flake-parts" ], - "git-hooks": [], - "home-manager": [ - "home-manager" - ], - "nix-darwin": [], "nixpkgs": "nixpkgs_2", - "nuschtosSearch": [], - "treefmt-nix": [ - "treefmt-nix" - ] + "nuschtosSearch": [] }, "locked": { - "lastModified": 1739469954, - "narHash": "sha256-faUXxkM3yYm++fpEw02tbAgPJprVB0xOtrU87BEQkuI=", + "lastModified": 1741098523, + "narHash": "sha256-gXDSXDr6tAb+JgxGMvcEjKC9YO8tVOd8hMMZHJLyQ6Q=", "owner": "nix-community", "repo": "nixvim", - "rev": "7f29e4b2ae34c1ba5fe650d74c8f28b0d1fa21ee", + "rev": "03065fd4708bfdf47dd541d655392a60daa25ded", "type": "github" }, "original": { @@ -348,6 +378,7 @@ "flake-parts": "flake-parts", "home-manager": "home-manager", "lix-module": "lix-module", + "niri": "niri", "nixpkgs": "nixpkgs", "nixvim": "nixvim", "stylix": "stylix", @@ -387,11 +418,11 @@ "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1739392863, - "narHash": "sha256-mU+aYnob+7Ycu/tU9oFoweIJwdjLj0uxcp+I1czH4DM=", + "lastModified": 1740520580, + "narHash": "sha256-QRlcA8rtfNdyKpBE+ptjiB9717Tzum4/sKBSbsyqL6k=", "owner": "danth", "repo": "stylix", - "rev": "dfa4128b453d424c9fe3ef919776e722c0b766cb", + "rev": "aaa2eb8956770c096f9c46fb163bb26602e20e56", "type": "github" }, "original": { @@ -453,11 +484,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1729501581, - "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", + "lastModified": 1740272597, + "narHash": "sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", + "rev": "b6c7f46c8718cc484f2db8b485b06e2a98304cd0", "type": "github" }, "original": { @@ -473,11 +504,11 @@ ] }, "locked": { - "lastModified": 1738953846, - "narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "4f09b473c936d41582dd744e19f34ec27592c5fd", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { @@ -485,6 +516,23 @@ "repo": "treefmt-nix", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1730166465, + "narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 2e99a7b..1ad8772 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,15 @@ url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + niri = { + url = "github:sodiboo/niri-flake"; + inputs = { + nixpkgs.follows = "nixpkgs"; + nixpkgs-stable.follows = "nixpkgs"; + niri-unstable.follows = ""; + xwayland-satellite-unstable.follows = ""; + }; + }; stylix = { url = "github:danth/stylix/release-24.11"; inputs = { @@ -38,15 +47,9 @@ nixvim = { url = "github:nix-community/nixvim"; inputs = { - home-manager.follows = "home-manager"; flake-parts.follows = "flake-parts"; - treefmt-nix.follows = "treefmt-nix"; # disable optional inputs - flake-compat.follows = ""; - nix-darwin.follows = ""; nuschtosSearch.follows = ""; - devshell.follows = ""; - git-hooks.follows = ""; }; }; flake-parts = { diff --git a/home/default.nix b/home/default.nix index 851e89c..2a8e6a5 100644 --- a/home/default.nix +++ b/home/default.nix @@ -37,6 +37,9 @@ in }; }) (lib.mkIf cfg.enable { + # Add gopass if pass is enabled + home.packages = lib.optional config.programs.password-store.enable pkgs.gopass; + nix.settings.use-xdg-base-directories = fromOs [ "nix" "settings" @@ -69,12 +72,10 @@ in homedir = "${config.xdg.dataHome}/gnupg"; }; # Mail client - himalaya.enable = true; - # Another shell - nushell.enable = true; + himalaya.enable = lib.mkDefault true; # Password manager password-store = { - enable = true; + enable = lib.mkDefault true; package = pkgs.pass-nodmenu; settings.PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass"; }; @@ -115,11 +116,6 @@ in home = { stateVersion = "22.11"; # Extra packages - packages = [ - pkgs.gopass - pkgs.sshfs - pkgs.unstable.gitoxide - ]; # Extra variables sessionVariables = { CARGO_HOME = "${config.xdg.dataHome}/cargo"; diff --git a/home/gui/default.nix b/home/gui/default.nix index bd81732..6e525ec 100644 --- a/home/gui/default.nix +++ b/home/gui/default.nix @@ -28,7 +28,7 @@ in ferdium xournalpp signal-desktop - lxqt.pcmanfm-qt + pcmanfm wl-clipboard # Extra fonts noto-fonts-cjk-sans # Chinese, Japanese and Korean characters @@ -71,6 +71,8 @@ in enable = true; scripts = builtins.attrValues { inherit (pkgs.mpvScripts) uosc thumbfast; }; }; + # Text editor + nixvim.clipboard.providers.wl-copy.enable = lib.mkDefault true; # Status bar waybar = { enable = true; @@ -106,7 +108,17 @@ in return config ''; }; - alacritty.enable = cfg.terminal == "alacritty"; + alacritty = { + enable = cfg.terminal == "alacritty"; + settings = { + # hide mouse when typing, this ensures I don't have to move the mouse when it hides text + mouse.hide_when_typing = true; + # Start zellij when it is enabled + terminal.shell = lib.mkIf (config.jhome.dev.enable && config.programs.zellij.enable) { + program = "${lib.getExe config.programs.zellij.package}"; + }; + }; + }; zellij.enable = cfg.terminal == "alacritty"; # alacritty has no terminal multiplexer built-in # PDF reader zathura.enable = true; @@ -146,13 +158,55 @@ in }; # Window Manager - wayland.windowManager.sway = { - inherit (cfg.sway) enable; - package = swayPkg; # no sway package if it comes from the OS - config = import ./sway-config.nix { inherit config pkgs; }; - systemd = { - enable = true; - xdgAutostart = true; + programs.niri = { + package = pkgs.niri; # use nixpkgs' package instead of the flake's + settings = { + binds = + let + # Modifier key + mod = "Mod"; + # Available workspaces (1..=9) + workspaces = lib.range 1 9; + # Run function for each workspace + perWorkspace = f: lib.mergeAttrsList (builtins.map f workspaces); + in + with config.lib.niri.actions; + { + # Open Terminal + "${mod}+Return".action.spawn = config.jhome.gui.terminalCommand; + # Open menu + "${mod}+D".action = + spawn "${lib.getExe pkgs.fuzzel}" "--terminal" + "${builtins.concatStringSep " " terminalCommand}"; + # Close Window + "${mod}+Q".action = close-window; + # Fullscreen + "${mod}+F".action = fullscreen-window; + # Hotkey help menu + "${mod}+Shift+/".action = show-hotkey-overlay; + # Media Keys + "XF86AudioRaiseVolume" = { + action = spawn "${pkgs.avizo}/bin/volumectl" "up"; + allow-when-locked = true; + }; + "XF86AudioLowerVolume" = { + action = spawn "${pkgs.avizo}/bin/volumectl" "down"; + allow-when-locked = true; + }; + "XF86AudioMute" = { + action = spawn "${pkgs.avizo}/bin/volumectl" "toggle-mute"; + allow-when-locked = true; + }; + # Lock screen + "XF86ScreenSaver".action = spawn "swaylock" "--image" "${cfg.background}"; + # Screen brightness + "XF86MonBrightnessUp".action = spawn "${pkgs.avizo}/bin/lightctl" "up"; + "XF86MonBrightnessDown".action = spawn "${pkgs.avizo}/bin/lightctl" "down"; + } + // perWorkspace (workspace: { + # Focus workspace N + "${mod}+${builtins.toString workspace}".action = focus-workspace workspace; + }); }; }; diff --git a/home/gui/sway-config.nix b/home/gui/sway-config.nix index 993ae6c..f499f71 100644 --- a/home/gui/sway-config.nix +++ b/home/gui/sway-config.nix @@ -2,14 +2,7 @@ let cfg = config.jhome.gui.sway; modifier = "Mod4"; - inherit (config.jhome.gui) terminal; - termCmd = - if terminal == "wezterm" then - "wezterm start" - else if terminal == "alacritty" then - "alacritty -e" - else - builtins.abort "no command configured for ${terminal}"; + termCmd = builtins.concatStringsSep " " config.jhome.gui.terminalCommand; menu = "${pkgs.fuzzel}/bin/fuzzel --terminal '${termCmd}'"; # currently, there is some friction between sway and gtk: # https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland @@ -23,7 +16,8 @@ let datadir = "${schema}/share/gsettings-schemas/${schema.name}"; in pkgs.writers.writeDashBin "configure-gtk" '' - export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS + export XDG_DATA_DIRS="${datadir}:$XDG_DATA_DIRS" + gnome_schema=org.gnome.desktop.interface config="${config.xdg.configHome}/gtk-3.0/settings.ini" if [ ! -f "$config" ]; then exit 1; fi @@ -45,7 +39,8 @@ let }; in { - inherit modifier terminal menu; + inherit (config.jhome.gui) terminal; + inherit modifier menu; keybindings = import ./keybindings.nix { inherit config pkgs; }; # Appearance bars = [ ]; # Waybar is started as a systemd service @@ -56,22 +51,25 @@ in }; output."*".bg = "${cfg.background} fill"; # Window Appearance - window.border = 2; - # Make certain windows floating - window.commands = [ - { - command = "floating enable"; - criteria.title = "zoom"; - } - { - command = "floating enable"; - criteria.class = "floating"; - } - { - command = "floating enable"; - criteria.app_id = "floating"; - } - ]; + window = { + border = 2; + titlebar = false; + # Make certain windows floating + commands = [ + { + command = "floating enable"; + criteria.title = "zoom"; + } + { + command = "floating enable"; + criteria.class = "floating"; + } + { + command = "floating enable"; + criteria.app_id = "floating"; + } + ]; + }; # Startup scripts startup = [ diff --git a/home/options.nix b/home/options.nix index 4334c16..17c61df 100644 --- a/home/options.nix +++ b/home/options.nix @@ -136,33 +136,58 @@ let }; }; - gui.options = { - enable = lib.mkEnableOption "GUI applications" // { - default = fromConfig [ - "gui" - "enable" - ] false; + gui.options = + let + cfg = attrs.config.jhome.gui; + in + { + enable = lib.mkEnableOption "GUI applications" // { + default = fromConfig [ + "gui" + "enable" + ] false; + }; + tempInfo = lib.mkOption { + description = "Temperature info to display in the statusbar."; + default = null; + type = types.nullOr (types.submodule tempInfo); + }; + sway = lib.mkOption { + description = "Sway window manager configuration."; + default = { }; + type = types.submodule sway; + }; + terminal = lib.mkOption { + description = "The terminal emulator to use."; + default = "alacritty"; + example = "wezterm"; + type = types.enum [ + "wezterm" + "alacritty" + ]; + }; + terminalCommand = lib.mkOption { + description = "The command to run in order to start the terminal."; + default = + if cfg.terminal == "wezterm" then + [ + "wezterm" + "start" + ] + else if cfg.terminal == "alacritty" then + [ + "alacritty" + "-e" + ] + else + builtins.abort "no command configured for ${cfg.terminal}"; + example = [ + "wezterm" + "start" + ]; + type = types.listOf types.str; + }; }; - tempInfo = lib.mkOption { - description = "Temperature info to display in the statusbar."; - default = null; - type = types.nullOr (types.submodule tempInfo); - }; - sway = lib.mkOption { - description = "Sway window manager configuration."; - default = { }; - type = types.submodule sway; - }; - terminal = lib.mkOption { - description = "The terminal emulator to use."; - default = "alacritty"; - example = "wezterm"; - type = types.enum [ - "wezterm" - "alacritty" - ]; - }; - }; in { options.jhome = lib.mkOption { @@ -199,6 +224,7 @@ in [ "typos" ] # low false positive rate typo checker [ "gcc" ] # GNU Compiler Collection [ "git-absorb" ] # fixup! but automatic + [ "gitoxide" ] # git but RiiR [ "man-pages" ] # gimme the man pages [ "man-pages-posix" ] # I said gimme the man pages!!! ]; diff --git a/nvim/mappings.nix b/nvim/mappings.nix index a7d5c36..4571332 100644 --- a/nvim/mappings.nix +++ b/nvim/mappings.nix @@ -7,7 +7,6 @@ let inherit (helpers) mkRaw; cfg = config.jhome.nvim; - dev = cfg.dev.enable; in { config.keymaps = @@ -202,21 +201,21 @@ in ''; options.desc = "Find Quickfix"; } - # Nvim Silicon - { - mode = "v"; - key = "sc"; - action = - mkRaw - # lua - '' - require('nvim-silicon').clip - - ''; - options.desc = "Snap Code (to clipboard)"; - } ] - ++ lib.optional dev { + # Nvim Silicon + ++ lib.optional (!cfg.reduceSize) { + mode = "v"; + key = "sc"; + action = + mkRaw + # lua + '' + require('nvim-silicon').clip + + ''; + options.desc = "Snap Code (to clipboard)"; + } + ++ lib.optional cfg.dev.enable { mode = "n"; key = "w"; action = diff --git a/nvim/options.nix b/nvim/options.nix index 1e54e30..292a80e 100644 --- a/nvim/options.nix +++ b/nvim/options.nix @@ -12,6 +12,7 @@ in { options.jhome.nvim = { enable = mkDisableOption "jalil's Neovim configuration"; + reduceSize = mkEnableOption "reduce size by disabling big modules"; dev = mkOption { type = types.submodule { options = { diff --git a/nvim/standalone.nix b/nvim/standalone.nix index 8e25d9e..cec3117 100644 --- a/nvim/standalone.nix +++ b/nvim/standalone.nix @@ -1,4 +1,14 @@ -{ pkgs, ... }: +{ + lib, + pkgs, + config, + ... +}: +let + cfg = config.jhome.nvim; + plugins = pkgs.vimPlugins; + extraPlugins = import ./extraPlugins { inherit pkgs; }; +in { imports = [ ./options.nix @@ -8,91 +18,87 @@ ./augroups.nix ]; - config = { - withRuby = false; - globals.mapleader = " "; - # Appearance - colorschemes.gruvbox = { - enable = true; - settings = { - bold = true; - transparent_mode = true; - terminal_colors = true; + config = lib.mkMerge [ + { + withRuby = false; + globals.mapleader = " "; + # Appearance + colorschemes.gruvbox = { + enable = true; + settings = { + bold = true; + transparent_mode = true; + terminal_colors = true; + }; }; - }; - clipboard.providers.wl-copy.enable = true; - opts = { - number = true; - relativenumber = true; - colorcolumn = "+1"; - cursorline = true; - wrap = false; - splitright = true; - # Tabs & indentation - smarttab = true; - autoindent = true; - smartindent = true; - # Search path - path = ".,/usr/include,**"; - wildmenu = true; - hlsearch = true; - incsearch = true; - ignorecase = true; # Search ignores cases - smartcase = true; # Unless it has a capital letter - # Enable local configuration :h 'exrc' - exrc = true; # safe since nvim 0.9 - }; - extraPlugins = - let - plugins = pkgs.vimPlugins; - extraPlugins = import ./extraPlugins { inherit pkgs; }; - in - [ + opts = { + number = true; + relativenumber = true; + colorcolumn = "+1"; + cursorline = true; + wrap = false; + splitright = true; + # Tabs & indentation + smarttab = true; + autoindent = true; + smartindent = true; + # Search path + path = ".,/usr/include,**"; + wildmenu = true; + hlsearch = true; + incsearch = true; + ignorecase = true; # Search ignores cases + smartcase = true; # Unless it has a capital letter + # Enable local configuration :h 'exrc' + exrc = true; # safe since nvim 0.9 + }; + extraPlugins = [ plugins.nui-nvim plugins.nvim-web-devicons - plugins.vim-jjdescription - extraPlugins.nvim-silicon + plugins.vim-jjdescription # FIXME: included since neovim nightly ]; - # Formatting & linters - extraPackages = [ - pkgs.luajitPackages.jsregexp - pkgs.silicon - ]; - extraConfigLuaPre = - # lua - '' - -- Lua Pre Config - if vim.fn.has 'termguicolors' then - -- Enable RGB colors - vim.g.termguicolors = true - end + extraPackages = [ pkgs.luajitPackages.jsregexp ]; + extraConfigLuaPre = + # lua + '' + -- Lua Pre Config + if vim.fn.has 'termguicolors' then + -- Enable RGB colors + vim.g.termguicolors = true + end - -- Useful function - local has_words_before = function() - -- unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 - and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil - end - -- END: Lua Pre Config - ''; - extraConfigLua = - # lua - '' - -- Lua Config - require("nvim-silicon").setup { - theme = "gruvbox-dark", - pad_horiz = 16, - pad_vert = 16, - -- Current buffer name - window_title = function() - return vim.fn.fnamemodify( - vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), - ":t" - ) - end, - } - -- END: Lua Config - ''; - }; + -- Useful function + local has_words_before = function() + -- unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 + and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil + end + -- END: Lua Pre Config + ''; + } + # Big packages that are kinda unnecessary + (lib.mkIf (!cfg.reduceSize) { + extraPlugins = [ extraPlugins.nvim-silicon ]; + extraPackages = [ pkgs.silicon ]; + extraConfigLua = + # lua + '' + -- Lua Config + require("nvim-silicon").setup { + theme = "gruvbox-dark", + pad_horiz = 16, + pad_vert = 16, + -- Current buffer name + window_title = function() + return vim.fn.fnamemodify( + vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), + ":t" + ) + end, + } + -- END: Lua Config + ''; + }) + ]; } diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index f61f44a..4840d58 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -104,9 +104,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "cfg-if" @@ -116,9 +116,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.29" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acebd8ad879283633b343856142139f2da2317c96b05b4dd6181c61e2480184" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.29" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ba32cbda51c7e1dfd49acc1457ba1a7dec5b64fe360e828acb13ca8dc9c2f9" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -138,9 +138,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck", "proc-macro2", @@ -208,21 +208,21 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "memchr" @@ -247,7 +247,7 @@ dependencies = [ "terminal_size", "textwrap", "thiserror", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -263,9 +263,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" [[package]] name = "os_pipe" @@ -297,24 +297,24 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -327,9 +327,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.44" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags", "errno", @@ -340,24 +340,24 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -366,9 +366,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -415,9 +415,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ "rustix", "windows-sys", @@ -436,12 +436,12 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" dependencies = [ "unicode-linebreak", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -466,9 +466,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-linebreak" @@ -482,6 +482,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "utf8parse" version = "0.2.2" diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index d95652c..9e29ec2 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -102,9 +102,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bstr" @@ -124,9 +124,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.29" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acebd8ad879283633b343856142139f2da2317c96b05b4dd6181c61e2480184" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.29" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ba32cbda51c7e1dfd49acc1457ba1a7dec5b64fe360e828acb13ca8dc9c2f9" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -146,9 +146,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck", "proc-macro2", @@ -217,14 +217,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" dependencies = [ "anstream", "anstyle", "env_filter", - "humantime", + "jiff", "log", ] @@ -246,9 +246,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "globset" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ "aho-corasick", "bstr", @@ -263,12 +263,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "ignore" version = "0.4.23" @@ -297,6 +291,30 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "jiff" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "jpassmenu" version = "0.1.0" @@ -311,21 +329,21 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "memchr" @@ -350,7 +368,7 @@ dependencies = [ "terminal_size", "textwrap", "thiserror", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -366,9 +384,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] @@ -384,9 +402,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" [[package]] name = "os_pipe" @@ -400,24 +418,39 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -459,9 +492,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.44" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags", "errno", @@ -481,18 +514,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -538,9 +571,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -549,9 +582,9 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ "rustix", "windows-sys", @@ -559,12 +592,12 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" dependencies = [ "unicode-linebreak", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -589,9 +622,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-linebreak" @@ -605,6 +638,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "utf8parse" version = "0.2.2" diff --git a/system/gui/default.nix b/system/gui/default.nix index b1ae6b1..6be652f 100644 --- a/system/gui/default.nix +++ b/system/gui/default.nix @@ -45,14 +45,9 @@ in fonts.fontDir.enable = true; programs = { dconf.enable = true; - sway = { - enable = cfg.sway; - # No extra packages (by default it adds foot, dmenu, and other stuff) - extraPackages = [ ]; - wrapperFeatures = { - base = true; - gtk = true; - }; + niri = { + enable = cfg.windowManager; + package = pkgs.niri; # use nixpkgs' package instead of the flake's }; }; security = { @@ -73,6 +68,8 @@ in }; # Dbus dbus.enable = true; + # Virtual Filesystem (for PCManFM) + gvfs.enable = true; }; xdg.portal = { # XDG portals diff --git a/system/options.nix b/system/options.nix index 9e76f1c..01903f4 100644 --- a/system/options.nix +++ b/system/options.nix @@ -37,7 +37,7 @@ let options.autoStart = mkDisableOption "autostarting ydotool at login"; }; }; - sway = mkDisableOption "sway"; + windowManager = mkDisableOption "window manager"; }; styling.options = {