diff options
Diffstat (limited to 'home-manager')
| -rwxr-xr-x | home-manager/features/gui/desktops/niri/default.nix | 106 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/niri/default.nix | 110 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/niri/keybinds.nix (renamed from home-manager/features/gui/desktops/niri/keybinds.nix) | 2 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/.envrc | 1 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/default.nix | 15 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/design.md | 20 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/flake.lock | 64 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/flake.nix | 29 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/qml/Bar.qml | 48 | ||||
| -rw-r--r-- | home-manager/features/gui/desktops/niri/parts/quickshell/qml/shell.qml | 5 |
10 files changed, 202 insertions, 198 deletions
diff --git a/home-manager/features/gui/desktops/niri/default.nix b/home-manager/features/gui/desktops/niri/default.nix index 38e0cfd..270be51 100755 --- a/home-manager/features/gui/desktops/niri/default.nix +++ b/home-manager/features/gui/desktops/niri/default.nix @@ -1,121 +1,21 @@ { config, - pkgs, lib, - inputs, ... }: let cfg = config.features.gui.desktops.niri; - aes = config.aesthetics; in { - imports = [ - inputs.niri.homeModules.niri - ./keybinds.nix - ]; options.features.gui.desktops.niri.enable = lib.mkEnableOption "niri"; config = lib.mkIf cfg.enable { features.gui.desktops.niri.parts = { + niri.enable = true; waybar.enable = true; fuzzel.enable = true; selectors.enable = true; swww.enable = true; mako.enable = true; - hyprlock.enable = true; - }; - programs.niri = { - enable = true; - package = inputs.niri.packages.${pkgs.system}.niri-unstable; - settings = { - outputs = { - "Samsung Electric Company SAMSUNG 0x00000001" = { - enable = true; - scale = 1.5; - }; - }; - spawn-at-startup = [ - # Status Bar - {command = ["waybar"];} - - # Wallpaper Daemon - {command = ["swww-daemon"];} - - # Allows x apps to be used in wayland. - {command = ["${lib.getExe pkgs.xwayland-satellite}"];} - - # Logs the clipboard for use in utilities. - {command = ["${pkgs.wl-clipboard}/bin/wl-paste" "--watch" "${pkgs.cliphist}/bin/cliphist" "store"];} - ]; - environment = { - DISPLAY = ":0"; # Important for Xwayland. - }; - window-rules = [ - { - geometry-corner-radius = let - radius = 4.0; - in { - top-left = radius; - top-right = radius; - bottom-left = radius; - bottom-right = radius; - }; - clip-to-geometry = true; - default-column-width.proportion = 1. / 3.; - } - { - # Prevent Tor from being screen captured. - matches = [{app-id = "Tor Browser";}]; - block-out-from = "screen-capture"; - } - ]; - switch-events = { - lid-close.action.spawn = ["hyprlock"]; - }; - prefer-no-csd = true; - overview = { - backdrop-color = "#${aes.scheme.base01}"; - }; - layout = { - gaps = 14; - insert-hint.enable = false; - shadow = { - enable = true; - softness = 10; - spread = 5; - offset = { - x = 0; - y = 0; - }; - }; - focus-ring = { - enable = true; - width = 3; - active.color = "#${aes.scheme.base09}"; - }; - border = { - enable = false; - width = 3; - inactive.color = "#${aes.scheme.base03}"; - active.color = "#${aes.scheme.base08}"; - }; - struts = { - # left = -1; - # right = -1; - - left = 20; - right = 20; - top = 20; - bottom = 20; - }; - always-center-single-column = false; - empty-workspace-above-first = true; - }; - hotkey-overlay.skip-at-startup = true; - input = { - touchpad = { - click-method = "clickfinger"; - }; - }; - }; + hyprlock.enable = false; + quickshell.enable = true; }; }; } diff --git a/home-manager/features/gui/desktops/niri/parts/niri/default.nix b/home-manager/features/gui/desktops/niri/parts/niri/default.nix new file mode 100644 index 0000000..e850b53 --- /dev/null +++ b/home-manager/features/gui/desktops/niri/parts/niri/default.nix @@ -0,0 +1,110 @@ +{ + config, + pkgs, + lib, + inputs, + ... +}: let + cfg = config.features.gui.desktops.niri.parts.niri; + aes = config.aesthetics; +in { + imports = [ inputs.niri.homeModules.niri ]; + options.features.gui.desktops.niri.parts.niri.enable = lib.mkEnableOption "niri"; + config = lib.mkIf cfg.enable { + programs.niri = { + enable = true; + package = inputs.niri.packages.${pkgs.system}.niri-unstable; + settings = { + outputs = { + "Samsung Electric Company SAMSUNG 0x00000001" = { + enable = true; + scale = 1.5; + }; + }; + spawn-at-startup = [ + # Status Bar + {command = ["waybar"];} + + # Wallpaper Daemon + {command = ["swww-daemon"];} + + # Allows x apps to be used in wayland. + {command = ["${lib.getExe pkgs.xwayland-satellite}"];} + + # Logs the clipboard for use in utilities. + {command = ["${pkgs.wl-clipboard}/bin/wl-paste" "--watch" "${pkgs.cliphist}/bin/cliphist" "store"];} + ]; + environment = { + DISPLAY = ":0"; # Important for Xwayland. + }; + window-rules = [ + { + geometry-corner-radius = let + radius = 4.0; + in { + top-left = radius; + top-right = radius; + bottom-left = radius; + bottom-right = radius; + }; + clip-to-geometry = true; + default-column-width.proportion = 1. / 3.; + } + { + # Prevent Tor from being screen captured. + matches = [{app-id = "Tor Browser";}]; + block-out-from = "screen-capture"; + } + ]; + switch-events = { + lid-close.action.spawn = ["hyprlock"]; + }; + prefer-no-csd = true; + overview = { + backdrop-color = "#${aes.scheme.base01}"; + }; + layout = { + gaps = 14; + insert-hint.enable = false; + shadow = { + enable = true; + softness = 10; + spread = 5; + offset = { + x = 0; + y = 0; + }; + }; + focus-ring = { + enable = true; + width = 3; + active.color = "#${aes.scheme.base09}"; + }; + border = { + enable = false; + width = 3; + inactive.color = "#${aes.scheme.base03}"; + active.color = "#${aes.scheme.base08}"; + }; + struts = { + # left = -1; + # right = -1; + + left = 20; + right = 20; + top = 20; + bottom = 20; + }; + always-center-single-column = false; + empty-workspace-above-first = true; + }; + hotkey-overlay.skip-at-startup = true; + input = { + touchpad = { + click-method = "clickfinger"; + }; + }; + }; + }; + }; +} diff --git a/home-manager/features/gui/desktops/niri/keybinds.nix b/home-manager/features/gui/desktops/niri/parts/niri/keybinds.nix index e823977..28cb4c2 100644 --- a/home-manager/features/gui/desktops/niri/keybinds.nix +++ b/home-manager/features/gui/desktops/niri/parts/niri/keybinds.nix @@ -4,7 +4,7 @@ lib, ... }: { - config = lib.mkIf config.features.gui.desktops.niri.enable { + config = lib.mkIf config.features.gui.desktops.niri.parts.niri.enable { programs.niri.settings.binds = let left = "h"; down = "j"; diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/.envrc b/home-manager/features/gui/desktops/niri/parts/quickshell/.envrc deleted file mode 100644 index 3550a30..0000000 --- a/home-manager/features/gui/desktops/niri/parts/quickshell/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/default.nix b/home-manager/features/gui/desktops/niri/parts/quickshell/default.nix new file mode 100644 index 0000000..0fd94d9 --- /dev/null +++ b/home-manager/features/gui/desktops/niri/parts/quickshell/default.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.features.gui.desktops.niri.parts.quickshell; +in { + options.features.gui.desktops.niri.parts.quickshell.enable = lib.mkEnableOption "quickshell"; + config = lib.mkIf cfg.enable { + programs.quickshell = { + enable = true; + }; + }; +} diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/design.md b/home-manager/features/gui/desktops/niri/parts/quickshell/design.md new file mode 100644 index 0000000..79f8ee8 --- /dev/null +++ b/home-manager/features/gui/desktops/niri/parts/quickshell/design.md @@ -0,0 +1,20 @@ +# Quickshell Design + +## Bar + +Left Components: + +- Battery Percentage +- Bluetooth Battery Percentage +- Volume +- Brightness + +Center Components: + +- Workspaces + +Right Components: + +- Date +- Time + diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/flake.lock b/home-manager/features/gui/desktops/niri/parts/quickshell/flake.lock deleted file mode 100644 index 29f5851..0000000 --- a/home-manager/features/gui/desktops/niri/parts/quickshell/flake.lock +++ /dev/null @@ -1,64 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": [ - "systems" - ] - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1751498133, - "narHash": "sha256-QWJ+NQbMU+NcU2xiyo7SNox1fAuwksGlQhpzBl76g1I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d55716bb59b91ae9d1ced4b1ccdea7a442ecbfdb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "systems": "systems" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/flake.nix b/home-manager/features/gui/desktops/niri/parts/quickshell/flake.nix deleted file mode 100644 index 2122f1f..0000000 --- a/home-manager/features/gui/desktops/niri/parts/quickshell/flake.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - description = "Project flake"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; - systems.url = "github:nix-systems/default"; - flake-utils = { - url = "github:numtide/flake-utils"; - inputs.systems.follows = "systems"; - }; - }; - - outputs = { - nixpkgs, - flake-utils, - ... - }: - flake-utils.lib.eachDefaultSystem ( - system: let - pkgs = nixpkgs.legacyPackages.${system}; - in { - devShells.default = pkgs.mkShell { - packages = with pkgs; [ - quickshell - ]; - }; - } - ); -} diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/qml/Bar.qml b/home-manager/features/gui/desktops/niri/parts/quickshell/qml/Bar.qml new file mode 100644 index 0000000..8254890 --- /dev/null +++ b/home-manager/features/gui/desktops/niri/parts/quickshell/qml/Bar.qml @@ -0,0 +1,48 @@ +import Quickshell // for PanelWindow +import Quickshell.Io // for Process +import QtQuick // for Text + +Scope { + id: root + property string time + + Variants { + model: Quickshell.screens + + PanelWindow { + required property var modelData + + screen: modelData + + anchors { + bottom: true + left: true + right: true + } + + implicitHeight: 30 + + Text { + anchors.centerIn: parent + text: root.time + } + } + } + + Process { + id: dateProc + command: ["date"] + running: true + + stdout: StdioCollector { + onStreamFinished: root.time = this.text + } + } + + Timer { + interval: 1000 + running: true + repeat: true + onTriggered: dateProc.running = true + } +} diff --git a/home-manager/features/gui/desktops/niri/parts/quickshell/qml/shell.qml b/home-manager/features/gui/desktops/niri/parts/quickshell/qml/shell.qml new file mode 100644 index 0000000..9d093ad --- /dev/null +++ b/home-manager/features/gui/desktops/niri/parts/quickshell/qml/shell.qml @@ -0,0 +1,5 @@ +import Quickshell + +Scope { + Bar {} +} |
