summaryrefslogtreecommitdiff
path: root/home-manager/features/gui/desktops/niri
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/features/gui/desktops/niri')
-rwxr-xr-xhome-manager/features/gui/desktops/niri/default.nix106
-rw-r--r--home-manager/features/gui/desktops/niri/parts/niri/default.nix110
-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/.envrc1
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/default.nix15
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/design.md20
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/flake.lock64
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/flake.nix29
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/qml/Bar.qml48
-rw-r--r--home-manager/features/gui/desktops/niri/parts/quickshell/qml/shell.qml5
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 {}
+}