diff --git a/flake.lock b/flake.lock index 546de95..3ff47dd 100644 --- a/flake.lock +++ b/flake.lock @@ -150,11 +150,11 @@ "blocklist-hosts": { "flake": false, "locked": { - "lastModified": 1711027794, - "narHash": "sha256-aT+e3dh4rRL0uKGY95tqwIHV31OM7Mv8kctpNpDaI88=", + "lastModified": 1712150903, + "narHash": "sha256-mXtiXj+4Sm8nfHYI/cNItG/tOLeP1Rs9LEEgxYxY8rc=", "owner": "StevenBlack", "repo": "hosts", - "rev": "cf3c7f5740192c9ebaa7270e5e487c6fa0f47859", + "rev": "4d96abf2bc07773124ebc348a347254ba0601179", "type": "github" }, "original": { @@ -247,16 +247,16 @@ }, "emacs-pin-nixpkgs": { "locked": { - "lastModified": 1707268954, - "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", + "lastModified": 1711731143, + "narHash": "sha256-P3rID/C2N9+emVlCr4ta0X591usRvFxqk1wON/2j+Dg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "rev": "f72123158996b8d4449de481897d855bc47c7bf6", "type": "github" }, "original": { "id": "nixpkgs", - "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "rev": "f72123158996b8d4449de481897d855bc47c7bf6", "type": "indirect" } }, @@ -481,11 +481,11 @@ ] }, "locked": { - "lastModified": 1711122977, - "narHash": "sha256-EnHux7wf7/7r+YMv8d/Ym1OTllp4sqqq0Bws1a4s2Zo=", + "lastModified": 1712093955, + "narHash": "sha256-94I0sXz6fiVBvUAk2tg6t3UpM5rOImj4JTSTNFbg64s=", "owner": "nix-community", "repo": "home-manager", - "rev": "19b87b9ae6ecfd81104a2a36ef8364f1de1b54b1", + "rev": "80546b220e95a575c66c213af1b09fe255299438", "type": "github" }, "original": { @@ -519,11 +519,11 @@ "hyprland-plugins": { "flake": false, "locked": { - "lastModified": 1711047490, - "narHash": "sha256-uyUenHmRzOdXajeYWA70C2+uzDeiqkiMcaBr3uKs28s=", + "lastModified": 1712142571, + "narHash": "sha256-cwe70xoqlBqTNiZltjMMx3CLahiAnaPBkysUmSCpkdk=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "adec334acfb453014cdff1e5f070bb7c1c4e4a9b", + "rev": "4334510363a8420f17d88505d13405d5126eabf0", "type": "github" }, "original": { @@ -581,7 +581,7 @@ "nix-straight" ], "nixpkgs": [ - "nixpkgs" + "emacs-pin-nixpkgs" ], "nose": "nose", "ob-racket": "ob-racket", @@ -628,11 +628,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1711001935, - "narHash": "sha256-URtGpHue7HHZK0mrHnSf8wJ6OmMKYSsoLmJybrOLFSQ=", + "lastModified": 1712122226, + "narHash": "sha256-pmgwKs8Thu1WETMqCrWUm0CkN1nmCKX3b51+EXsAZyY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "20f77aa09916374aa3141cbc605c955626762c9a", + "rev": "08b9151ed40350725eb40b1fe96b0b86304a654b", "type": "github" }, "original": { @@ -643,11 +643,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1710951922, - "narHash": "sha256-FOOBJ3DQenLpTNdxMHR2CpGZmYuctb92gF0lpiirZ30=", + "lastModified": 1711668574, + "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f091af045dff8347d66d186a62d42aceff159456", + "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", "type": "github" }, "original": { @@ -656,21 +656,6 @@ "type": "indirect" } }, - "nixpkgs-staging-next": { - "locked": { - "lastModified": 1711995917, - "narHash": "sha256-KffQxoGwUTz4gaKp1woRXgunuJ+pjRd7KYjjJZuAb7c=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4cad0502dbb4e9ca487b7b59d8f936d5ad64b7f8", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "staging-next", - "type": "indirect" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1706487304, @@ -767,6 +752,22 @@ "type": "github" } }, + "org-krita": { + "flake": false, + "locked": { + "lastModified": 1619935377, + "narHash": "sha256-+HI8P0/LI8gdiCD7OiPKTAtLKrPt0REnQ+6oblHSHzU=", + "owner": "lepisma", + "repo": "org-krita", + "rev": "7e334951b8de8f2f1c8cbe5068e7dfe6b9e9808f", + "type": "github" + }, + "original": { + "owner": "lepisma", + "repo": "org-krita", + "type": "github" + } + }, "org-nursery": { "flake": false, "locked": { @@ -818,11 +819,11 @@ "org-yaap": { "flake": false, "locked": { - "lastModified": 1698161278, - "narHash": "sha256-as0mZLRoArfo1vMeqm/l1r4Cqy9ABi7gcjEupzXJyaw=", + "lastModified": 1711640914, + "narHash": "sha256-eWoRaE10QPOPeE0TnHBn3o+Hz6fX0yDZnfrqVlj1De8=", "owner": "tygrdev", "repo": "org-yaap", - "rev": "b3fa87454b1d96d1a2477ca9aae8976a2bbc5dc4", + "rev": "fcf675382d914f369591052ddb8440cfc714ce74", "type": "gitlab" }, "original": { @@ -909,7 +910,7 @@ "nix-straight": "nix-straight", "nixpkgs": "nixpkgs", "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-staging-next": "nixpkgs-staging-next", + "org-krita": "org-krita", "org-nursery": "org-nursery", "org-side-tree": "org-side-tree", "org-timeblock": "org-timeblock", @@ -941,11 +942,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1711073443, - "narHash": "sha256-PpNb4xq7U5Q/DdX40qe7CijUsqhVVM3VZrhN0+c6Lcw=", + "lastModified": 1712110341, + "narHash": "sha256-8LU2IM4ctHz043hlzoFUwQS1QIdhiMGEH/oIfPCxoWU=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "eec55ba9fcde6be4c63942827247e42afef7fafe", + "rev": "74deb67494783168f5b6d2071d73177e6bccab65", "type": "github" }, "original": { @@ -987,11 +988,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1711106191, - "narHash": "sha256-WX1Tyb94jB3ksSQ5UtlTY/1UBsO7FlFNPjG3BXt9/0Q=", + "lastModified": 1712154372, + "narHash": "sha256-2HFQm/gpmxtMokn6pInHlTlU7mBONLb3Y1aN8SlY0tc=", "owner": "danth", "repo": "stylix", - "rev": "4da2d793e586f3f45a54fb9755ee9bf39d3cd52e", + "rev": "f9b9bc7c8e69942cd2583a3309f86fc5260f1275", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7779111..f56a62e 100644 --- a/flake.nix +++ b/flake.nix @@ -1,10 +1,10 @@ { description = "Flake of LibrePhoenix"; - outputs = inputs@{ self, nixpkgs, nixpkgs-staging-next, nixpkgs-stable, emacs-pin-nixpkgs, + outputs = inputs@{ self, nixpkgs, nixpkgs-stable, emacs-pin-nixpkgs, kdenlive-pin-nixpkgs, home-manager, nix-doom-emacs, nix-straight, stylix, blocklist-hosts, hyprland-plugins, rust-overlay, org-nursery, org-yaap, - org-side-tree, org-timeblock, phscroll, mini-frame, ... }: + org-side-tree, org-timeblock, org-krita, phscroll, mini-frame, ... }: let # ---- SYSTEM SETTINGS ---- # systemSettings = { @@ -67,10 +67,6 @@ overlays = [ rust-overlay.overlays.default ]; }; - pkgs-staging-next = import nixpkgs-staging-next { - system = systemSettings.system; - }; - pkgs-stable = import nixpkgs-stable { system = systemSettings.system; config = { @@ -112,7 +108,6 @@ extraSpecialArgs = { # pass config variables from above inherit pkgs-stable; - inherit pkgs-staging-next; inherit pkgs-emacs; inherit pkgs-kdenlive; inherit systemSettings; @@ -122,6 +117,7 @@ inherit (inputs) org-yaap; inherit (inputs) org-side-tree; inherit (inputs) org-timeblock; + inherit (inputs) org-krita; inherit (inputs) phscroll; inherit (inputs) mini-frame; #inherit (inputs) nix-flatpak; @@ -140,7 +136,6 @@ specialArgs = { # pass config variables from above inherit pkgs-stable; - inherit pkgs-staging-next; inherit systemSettings; inherit userSettings; inherit (inputs) stylix; @@ -174,15 +169,14 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs-stable.url = "nixpkgs/nixos-23.11"; - nixpkgs-staging-next.url = "nixpkgs/staging-next"; - emacs-pin-nixpkgs.url = "nixpkgs/f8e2ebd66d097614d51a56a755450d4ae1632df1"; + emacs-pin-nixpkgs.url = "nixpkgs/f72123158996b8d4449de481897d855bc47c7bf6"; kdenlive-pin-nixpkgs.url = "nixpkgs/cfec6d9203a461d9d698d8a60ef003cac6d0da94"; home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; - nix-doom-emacs.inputs.nixpkgs.follows = "nixpkgs"; + nix-doom-emacs.inputs.nixpkgs.follows = "emacs-pin-nixpkgs"; nix-straight.url = "github:librephoenix/nix-straight.el/pgtk-patch"; nix-straight.flake = false; @@ -212,6 +206,10 @@ url = "github:ichernyshovvv/org-timeblock"; flake = false; }; + org-krita = { + url = "github:lepisma/org-krita"; + flake = false; + }; phscroll = { url = "github:misohena/phscroll"; flake = false; diff --git a/profiles/homelab/base.nix b/profiles/homelab/base.nix index a62cbdc..a66ac09 100644 --- a/profiles/homelab/base.nix +++ b/profiles/homelab/base.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, pkgs-staging-next, systemSettings, userSettings, ... }: +{ lib, pkgs, systemSettings, userSettings, ... }: { imports = @@ -9,14 +9,6 @@ ( import ../../system/app/docker.nix {storageDriver = null; inherit pkgs userSettings lib;} ) ]; - # xz trojan https://github.com/NixOS/nixpkgs/issues/300055 - system.replaceRuntimeDependencies = [ - { - original = pkgs.xz; - replacement = pkgs-staging-next.xz; - } - ]; - # Fix nix path nix.nixPath = [ "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos" "nixos-config=$HOME/dotfiles/system/configuration.nix" diff --git a/profiles/work/configuration.nix b/profiles/work/configuration.nix index 4993aa1..e1104f0 100644 --- a/profiles/work/configuration.nix +++ b/profiles/work/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ pkgs, pkgs-staging-next, lib, systemSettings, userSettings, ... }: +{ pkgs, lib, systemSettings, userSettings, ... }: { imports = [ ../../system/hardware-configuration.nix @@ -27,14 +27,6 @@ ../../system/style/stylix.nix ]; - # xz trojan https://github.com/NixOS/nixpkgs/issues/300055 - system.replaceRuntimeDependencies = [ - { - original = pkgs.xz; - replacement = pkgs-staging-next.xz; - } - ]; - # Fix nix path nix.nixPath = [ "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos" "nixos-config=$HOME/dotfiles/system/configuration.nix" @@ -64,6 +56,7 @@ # Networking networking.hostName = systemSettings.hostname; # Define your hostname. networking.networkmanager.enable = true; # Use networkmanager + networking.networkmanager.wifi.backend = "iwd"; # wpa_supplicant broken :( # Timezone and locale time.timeZone = systemSettings.timezone; # time zone @@ -97,6 +90,7 @@ git cryptsetup home-manager + wpa_supplicant ]; # I use zsh btw diff --git a/profiles/wsl/configuration.nix b/profiles/wsl/configuration.nix index cc9532e..9d83988 100644 --- a/profiles/wsl/configuration.nix +++ b/profiles/wsl/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ lib, pkgs, pkgs-staging-next, systemSettings, userSettings, ... }: +{ lib, pkgs, systemSettings, userSettings, ... }: with lib; let @@ -39,14 +39,6 @@ in }; - # xz trojan https://github.com/NixOS/nixpkgs/issues/300055 - system.replaceRuntimeDependencies = [ - { - original = pkgs.xz; - replacement = pkgs-staging-next.xz; - } - ]; - # Fix nix path nix.nixPath = [ "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos" "nixos-config=$HOME/dotfiles/system/configuration.nix" diff --git a/system/wm/wayland.nix b/system/wm/wayland.nix index d8d4156..35e8b7c 100644 --- a/system/wm/wayland.nix +++ b/system/wm/wayland.nix @@ -33,6 +33,7 @@ wayland.enable = true; enableHidpi = true; theme = "chili"; + package = pkgs.sddm; }; }; } diff --git a/user/app/doom-emacs/config.el b/user/app/doom-emacs/config.el index 8bbc078..d3834b0 100644 --- a/user/app/doom-emacs/config.el +++ b/user/app/doom-emacs/config.el @@ -434,6 +434,30 @@ same directory as the org-buffer and insert a link to this file." )) (openwith-mode 1))) +(add-load-path! "~/.emacs.d/org-krita") +(require 'org-krita) +(add-hook 'org-mode-hook 'org-krita-mode) + +(defun org-krita-show-link (link) + (org-krita-hide-link link) + (let* ((start (org-element-property :begin link)) + (end (org-element-property :end link)) + (overlay (make-overlay (+ start 0) (+ end 0))) + (kra-path (org-element-property :path link))) + (overlay-put overlay 'display (create-image (org-krita-extract-png kra-path) 'png t :scale 0.5)) + (push (cons kra-path overlay) org-krita-overlays))) + +(defun org-krita-edit (path &optional full-mode) + "Edit given PATH in krita canvasonly mode. + +If FULL-MODE is not null, run full krita." + (let ((kra-path (expand-file-name path))) + (when (f-exists-p kra-path) + (if full-mode + (call-process org-krita-executable nil 0 nil kra-path) + (call-process org-krita-executable nil 0 nil kra-path)) + (org-krita-add-watcher kra-path)))) + (defun org-copy-link-to-clipboard-at-point () "Copy current link at point into clipboard (useful for images and links)" ;; Remember to press C-g to kill this foreground process if it hangs! @@ -956,6 +980,8 @@ same directory as the org-buffer and insert a link to this file." '(org-agenda-date-weekend :ineherit outline-2 :height 1.15) '(org-agenda-date-weekend-today :inherit outline-4 :height 1.15) '(org-super-agenda-header :inherit custom-button :weight bold :height 1.05) + '(link :foreground unspecified :underline nil :background "#46354a") + '(org-link :foreground unspecified) ) ;; Toggle completed entries function @@ -1276,7 +1302,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)." "q" 'helpful-kill-buffers) ;;;------ helpful configuration ------;;; -(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8") +(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.2") (require 'mu4e) (require 'mu4e-contrib) (require 'mu4e-actions) diff --git a/user/app/doom-emacs/doom.nix b/user/app/doom-emacs/doom.nix index 2376924..1df0023 100644 --- a/user/app/doom-emacs/doom.nix +++ b/user/app/doom-emacs/doom.nix @@ -1,5 +1,5 @@ { config, lib, pkgs-emacs, pkgs-stable, userSettings, systemSettings, - org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, mini-frame, ... }: + org-nursery, org-yaap, org-side-tree, org-timeblock, org-krita, phscroll, mini-frame, ... }: let themePolarity = lib.removeSuffix "\n" (builtins.readFile (./. + "../../../../themes"+("/"+userSettings.theme)+"/polarity.txt")); dashboardLogo = ./. + "/nix-" + themePolarity + ".png"; @@ -97,6 +97,10 @@ in source = "${org-nursery}"; }; + home.file.".emacs.d/org-krita" = { + source = "${org-krita}"; + }; + home.file.".emacs.d/dashboard-logo.png".source = dashboardLogo; home.file.".emacs.d/scripts/copy-link-or-file/copy-link-or-file-to-clipboard.sh" = { source = ./scripts/copy-link-or-file/copy-link-or-file-to-clipboard.sh; diff --git a/user/app/doom-emacs/doom.org b/user/app/doom-emacs/doom.org index 116aa9b..0c2b6a1 100644 --- a/user/app/doom-emacs/doom.org +++ b/user/app/doom-emacs/doom.org @@ -511,6 +511,30 @@ same directory as the org-buffer and insert a link to this file." )) (openwith-mode 1))) +(add-load-path! "~/.emacs.d/org-krita") +(require 'org-krita) +(add-hook 'org-mode-hook 'org-krita-mode) + +(defun org-krita-show-link (link) + (org-krita-hide-link link) + (let* ((start (org-element-property :begin link)) + (end (org-element-property :end link)) + (overlay (make-overlay (+ start 0) (+ end 0))) + (kra-path (org-element-property :path link))) + (overlay-put overlay 'display (create-image (org-krita-extract-png kra-path) 'png t :scale 0.5)) + (push (cons kra-path overlay) org-krita-overlays))) + +(defun org-krita-edit (path &optional full-mode) + "Edit given PATH in krita canvasonly mode. + +If FULL-MODE is not null, run full krita." + (let ((kra-path (expand-file-name path))) + (when (f-exists-p kra-path) + (if full-mode + (call-process org-krita-executable nil 0 nil kra-path) + (call-process org-krita-executable nil 0 nil kra-path)) + (org-krita-add-watcher kra-path)))) + #+END_SRC *** Copy Links/Files into Clipboard #+BEGIN_SRC emacs-lisp :tangle config.el @@ -1113,6 +1137,8 @@ On Wayland, EAF doesn't work. '(org-agenda-date-weekend :ineherit outline-2 :height 1.15) '(org-agenda-date-weekend-today :inherit outline-4 :height 1.15) '(org-super-agenda-header :inherit custom-button :weight bold :height 1.05) + '(link :foreground unspecified :underline nil :background "#46354a") + '(org-link :foreground unspecified) ) ;; Toggle completed entries function @@ -1153,6 +1179,18 @@ On Wayland, EAF doesn't work. )) #+END_SRC + +#+RESULTS: +| Teaching.p | () | nil | nil | :ascent | center | +| Family.s | () | nil | nil | :ascent | center | +| Producer.p | () | nil | nil | :ascent | center | +| Bard.p | () | nil | nil | :ascent | center | +| Stories.s | () | nil | nil | :ascent | center | +| Author.p | () | nil | nil | :ascent | center | +| Gamedev.s | () | nil | nil | :ascent | center | +| Knowledge.p | () | nil | nil | :ascent | center | +| Personal.p | () | nil | nil | :ascent | center | + *** Org Agenda Convenience Functions #+BEGIN_SRC emacs-lisp :tangle config.el (defun org-categorize-by-roam-db-on-save () @@ -1499,7 +1537,7 @@ I don't have this active right now since it's kinda weird with pgtk... ** mu4e Configuration #+BEGIN_SRC emacs-lisp :tangle config.el ;;;------ helpful configuration ------;;; -(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8") +(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.2") (require 'mu4e) (require 'mu4e-contrib) (require 'mu4e-actions) @@ -1931,6 +1969,7 @@ Any git package can be configured for a particular commit or branch: (package! embark :pin "0908eea") (package! dashboard) (package! direnv) +(package! org :pin "5bdfc02c6fa1b9ad4f075ac1ad1e4086ead310db") (package! org-modern) (package! org-super-agenda) (package! emacsql :pin "c1a4407") @@ -1965,7 +2004,7 @@ Any git package can be configured for a particular commit or branch: In order to have Nix load my Doom Emacs configuration [[./doom.nix][doom.nix]], which I source in the =imports= block of my [[../../../profiles/work/home.nix][home.nix]]. #+BEGIN_SRC nix :tangle doom.nix { config, lib, pkgs-emacs, pkgs-stable, userSettings, systemSettings, - org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, mini-frame, ... }: + org-nursery, org-yaap, org-side-tree, org-timeblock, org-krita, phscroll, mini-frame, ... }: let themePolarity = lib.removeSuffix "\n" (builtins.readFile (./. + "../../../../themes"+("/"+userSettings.theme)+"/polarity.txt")); dashboardLogo = ./. + "/nix-" + themePolarity + ".png"; @@ -2063,6 +2102,10 @@ in source = "${org-nursery}"; }; + home.file.".emacs.d/org-krita" = { + source = "${org-krita}"; + }; + home.file.".emacs.d/dashboard-logo.png".source = dashboardLogo; home.file.".emacs.d/scripts/copy-link-or-file/copy-link-or-file-to-clipboard.sh" = { source = ./scripts/copy-link-or-file/copy-link-or-file-to-clipboard.sh; diff --git a/user/app/doom-emacs/packages.el b/user/app/doom-emacs/packages.el index c590dfb..2d797b7 100644 --- a/user/app/doom-emacs/packages.el +++ b/user/app/doom-emacs/packages.el @@ -1,6 +1,7 @@ (package! embark :pin "0908eea") (package! dashboard) (package! direnv) +(package! org :pin "5bdfc02c6fa1b9ad4f075ac1ad1e4086ead310db") (package! org-modern) (package! org-super-agenda) (package! emacsql :pin "c1a4407") diff --git a/user/wm/hyprland/hyprland.nix b/user/wm/hyprland/hyprland.nix index 91095f2..0b80863 100644 --- a/user/wm/hyprland/hyprland.nix +++ b/user/wm/hyprland/hyprland.nix @@ -41,7 +41,7 @@ exec-once = waybar exec-once = emacs --daemon - exec-once = swayidle -w timeout 90 '${config.programs.swaylock.package}/bin/swaylock -f' timeout 210 'suspend-unless-render' resume '${pkgs.hyprland}/bin/hyprctl dispatch dpms on' before-sleep "${config.programs.swaylock.package}/bin/swaylock -f" + exec-once = hypridle exec-once = obs-notification-mute-daemon exec = ~/.swaybg-stylix @@ -136,8 +136,8 @@ bind=,code:255,exec,airplane-mode bind=SUPER,C,exec,wl-copy $(hyprpicker) - bind=SUPERSHIFT,S,exec,swaylock --grace 0 & sleep 1 && systemctl suspend - bind=SUPERCTRL,L,exec,swaylock --grace 0 + bind=SUPERSHIFT,S,exec,hyprlock & sleep 1 && systemctl suspend + bind=SUPERCTRL,L,exec,hyprlock bind=SUPER,H,movefocus,l bind=SUPER,J,movefocus,d @@ -159,6 +159,11 @@ bind=SUPER,8,exec,hyprworkspace 8 bind=SUPER,9,exec,hyprworkspace 9 + bind=SUPERCTRL,right,exec,hyprnome + bind=SUPERCTRL,left,exec,hyprnome --previous + bind=SUPERSHIFT,right,exec,hyprnome --move + bind=SUPERSHIFT,left,exec,hyprnome --previous --move + bind=SUPERSHIFT,1,movetoworkspace,1 bind=SUPERSHIFT,2,movetoworkspace,2 bind=SUPERSHIFT,3,movetoworkspace,3 @@ -173,7 +178,6 @@ bind=SUPER,F,exec,pypr toggle ranger && hyprctl dispatch bringactivetotop bind=SUPER,N,exec,pypr toggle musikcube && hyprctl dispatch bringactivetotop bind=SUPER,B,exec,pypr toggle btm && hyprctl dispatch bringactivetotop - bind=SUPER,E,exec,pypr toggle geary && hyprctl dispatch bringactivetotop bind=SUPER,code:172,exec,pypr toggle pavucontrol && hyprctl dispatch bringactivetotop $scratchpadsize = size 80% 85% @@ -183,12 +187,6 @@ windowrulev2 = workspace special silent,$scratchpad windowrulev2 = center,$scratchpad - $gearyscratchpad = class:^(geary)$ - windowrulev2 = float,$gearyscratchpad - windowrulev2 = $scratchpadsize,$gearyscratchpad - windowrulev2 = workspace special silent,$gearyscratchpad - windowrulev2 = center,$gearyscratchpad - $pavucontrol = class:^(pavucontrol)$ windowrulev2 = float,$pavucontrol windowrulev2 = size 86% 40%,$pavucontrol @@ -206,7 +204,6 @@ windowrulev2 = float,class:^(pokefinder)$ - windowrulev2 = opacity 0.85,$gearyscratchpad windowrulev2 = opacity 0.80,title:ORUI windowrulev2 = opacity 0.80,title:Heimdall windowrulev2 = opacity 0.80,title:^(LibreWolf)$ @@ -223,9 +220,6 @@ bind=SUPER,code:21,exec,pypr zoom bind=SUPER,code:21,exec,hyprctl reload - bind=SUPERCTRL,right,workspace,+1 - bind=SUPERCTRL,left,workspace,-1 - bind=SUPER,I,exec,networkmanager_dmenu bind=SUPER,P,exec,keepmenu bind=SUPERSHIFT,P,exec,hyprprofile-dmenu @@ -247,7 +241,7 @@ force_zero_scaling = true } - env = WLR_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 + env = WLR_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1 env = QT_QPA_PLATFORMTHEME,qt5ct input { @@ -296,7 +290,9 @@ wl-clipboard hyprland-protocols hyprpicker - swayidle + hypridle + hyprlock + hyprnome swaybg fnott fuzzel @@ -382,6 +378,110 @@ '') ]; + home.file.".config/hypr/hypridle.conf".text = '' + general { + lock_cmd = hyprlock + unlock_cmd = + before_sleep_cmd = hyprlock + after_sleep_cmd = + ignore_dbus_inhibit = false + } + + listener { + timeout = 360 # in seconds + on-timeout = hyprlock + on-resume = + timeout = 720 # in seconds + on-timeout = systemctl suspend + on-resume = + } + ''; + home.file.".config/hypr/hyprlock.conf".text = '' + background { + monitor = + path = screenshot + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = 4 + blur_size = 5 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 + } + + # doesn't work yet + image { + monitor = + path = /home/emmet/.dotfiles/user/wm/hyprland/nix-dark.png + size = 150 # lesser side if not 1:1 ratio + rounding = -1 # negative values mean circle + border_size = 0 + rotate = 0 # degrees, counter-clockwise + + position = 0, 200 + halign = center + valign = center + } + + input-field { + monitor = + size = 200, 50 + outline_thickness = 3 + dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = false + dots_rounding = -1 # -1 default circle, -2 follow input-field rounding + outer_color = rgb(151515) + inner_color = rgb(200, 200, 200) + font_color = rgb(10, 10, 10) + fade_on_empty = true + fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. + placeholder_text = Input Password... # Text rendered in the input box when it's empty. + hide_input = false + rounding = -1 # -1 means complete rounding (circle/oval) + check_color = rgb(204, 136, 34) + fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color + fail_text = $FAIL ($ATTEMPTS) # can be set to empty + fail_transition = 300 # transition time in ms between normal outer_color and fail_color + capslock_color = -1 + numlock_color = -1 + bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false # change color if numlock is off + swap_font_color = false # see below + + position = 0, -20 + halign = center + valign = center + } + + label { + monitor = + text = Hello, Emmet + color = rgba(200, 200, 200, 1.0) + font_size = 25 + font_family = Intel One Mono + rotate = 0 # degrees, counter-clockwise + + position = 0, 160 + halign = center + valign = center + } + + label { + monitor = + text = $TIME + color = rgba(200, 200, 200, 1.0) + font_size = 20 + font_family = Intel One Mono + rotate = 0 # degrees, counter-clockwise + + position = 0, 80 + halign = center + valign = center + } + ''; home.file.".config/hypr/pyprland.json".text = '' { "pyprland": { @@ -404,10 +504,6 @@ "command": "alacritty --class scratchpad -e btm", "margin": 50 }, - "geary": { - "command": "geary", - "margin": 50 - }, "pavucontrol": { "command": "pavucontrol", "margin": 50, @@ -474,7 +570,6 @@ "scratch_ranger" = "_󰴉"; "scratch_musikcube" = "_"; "scratch_btm" = "_"; - "scratch_geary" = "_"; "scratch_pavucontrol" = "_󰍰"; }; "on-click" = "activate"; @@ -755,37 +850,6 @@ services.udiskie.enable = true; services.udiskie.tray = "always"; - programs.swaylock = { - enable = true; - package = pkgs.swaylock-effects; - settings = { - color = "#"+config.lib.stylix.colors.base00; - inside-color = "#"+config.lib.stylix.colors.base00+"cc"; - inside-caps-lock-color = "#"+config.lib.stylix.colors.base09; - inside-clear-color = "#"+config.lib.stylix.colors.base0A; - inside-wrong-color = "#"+config.lib.stylix.colors.base08; - inside-ver-color = "#"+config.lib.stylix.colors.base0D; - line-color = "#"+config.lib.stylix.colors.base00; - line-caps-lock-color = "#"+config.lib.stylix.colors.base00; - line-clear-color = "#"+config.lib.stylix.colors.base00; - line-wrong-color = "#"+config.lib.stylix.colors.base00; - line-ver-color = "#"+config.lib.stylix.colors.base00; - ring-color = "#"+config.lib.stylix.colors.base00; - ring-caps-lock-color = "#"+config.lib.stylix.colors.base09; - ring-clear-color = "#"+config.lib.stylix.colors.base0A; - ring-wrong-color = "#"+config.lib.stylix.colors.base08; - ring-ver-color = "#"+config.lib.stylix.colors.base0D; - text-color = "#"+config.lib.stylix.colors.base00; - key-hl-color = "#"+config.lib.stylix.colors.base0B; - font = config.stylix.fonts.monospace.name; - font-size = 20; - fade-in = 0.5; - grace = 5; - indicator-radius = 100; - screenshots = true; - effect-blur = "10x10"; - }; - }; programs.fuzzel.enable = true; programs.fuzzel.settings = { main = {