Bunch of stuff
parent
524e2c99d5
commit
3f2b2f2a20
|
@ -0,0 +1,3 @@
|
||||||
|
(defpoll time :interval "10s" "date '+%H:%M'")
|
||||||
|
(defpoll year :interval "10h" "date '+%Y'")
|
||||||
|
(defpoll date :interval "30m" "date '+%m-%d'")
|
|
@ -0,0 +1,87 @@
|
||||||
|
(defwidget notifications []
|
||||||
|
(eventbox :class "notifications"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget audio []
|
||||||
|
(eventbox :class "audio"
|
||||||
|
:onclick "eww open --toggle audio"
|
||||||
|
""
|
||||||
|
))
|
||||||
|
|
||||||
|
(defwidget clipboard []
|
||||||
|
(eventbox :class "clipboard"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget left []
|
||||||
|
(box :class "left"
|
||||||
|
:space-evenly "false"
|
||||||
|
:halign "start"
|
||||||
|
:valign "center"
|
||||||
|
:orientation "h"
|
||||||
|
(notifications)
|
||||||
|
(audio)
|
||||||
|
(clipboard)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget workspace-indicator []
|
||||||
|
". . . . . . . . . ."
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box :class "center"
|
||||||
|
:space-evenly "false"
|
||||||
|
:halign "center"
|
||||||
|
:valign "center"
|
||||||
|
:orientation "h"
|
||||||
|
(workspace-indicator)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget time []
|
||||||
|
(eventbox :class "time"
|
||||||
|
time
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget date []
|
||||||
|
(eventbox :class "date"
|
||||||
|
"${year}-${date}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget right []
|
||||||
|
(box :class "right"
|
||||||
|
:space-evenly "false"
|
||||||
|
:halign "end"
|
||||||
|
:valign "center"
|
||||||
|
:orientation "v"
|
||||||
|
(time)
|
||||||
|
(date)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget bar []
|
||||||
|
(box :class "bar"
|
||||||
|
:orientation "h"
|
||||||
|
(left)
|
||||||
|
(center)
|
||||||
|
(right)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 2
|
||||||
|
:geometry (geometry :x "0px"
|
||||||
|
:y "10px"
|
||||||
|
:width "1060px"
|
||||||
|
:height "48px"
|
||||||
|
:anchor "center top")
|
||||||
|
:stacking "fg"
|
||||||
|
:exclusive true
|
||||||
|
(bar)
|
||||||
|
)
|
|
@ -0,0 +1,2 @@
|
||||||
|
(include "_variables.yuck")
|
||||||
|
(include "bar.yuck")
|
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.eww = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.eww-wayland;
|
||||||
|
|
||||||
|
configDir = ./config;
|
||||||
|
};
|
||||||
|
}
|
293
flake.lock
293
flake.lock
|
@ -1,5 +1,82 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"coq-8_18": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"vscoq",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694096282,
|
||||||
|
"narHash": "sha256-WhiBs4nzPHQ0R24xAdM49kmxSCPOxiOVMA1iiMYunz4=",
|
||||||
|
"owner": "coq",
|
||||||
|
"repo": "coq",
|
||||||
|
"rev": "f022d5d194cb42c2321ea91cecbcce703a9bcad3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "coq",
|
||||||
|
"ref": "V8.18.0",
|
||||||
|
"repo": "coq",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"discord-screenaudio": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1698432393,
|
||||||
|
"narHash": "sha256-pD3NtDRqpi3too7jKGvno9QkYN6pSbP/hycRqS2SwaE=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "3f3f17949d13f479c2f21573d5471b5ecf33c633",
|
||||||
|
"revCount": 178,
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@github.com/maltejur/discord-screenaudio?tag=v1.9.2"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@github.com/maltejur/discord-screenaudio?tag=v1.9.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681202837,
|
||||||
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689068808,
|
||||||
|
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -7,44 +84,119 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695108154,
|
"lastModified": 1704309533,
|
||||||
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
|
"narHash": "sha256-n/krnzgnmYWdVoMv0MJfEMTOYCkoY13rCwKhQ4RVd2U=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07682fff75d41f18327a871088d20af2710d4744",
|
"rev": "992b38f29cd7e50d88a2ae069133750beda010a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-23.05",
|
"ref": "master",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"xdg-desktop-portal-hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"xdg-desktop-portal-hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1691753796,
|
||||||
|
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704287638,
|
||||||
|
"narHash": "sha256-TuRXJGwtK440AXQNl5eiqmQqY4LZ/9+z/R7xC0ie3iA=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "6624f2bb66d4d27975766e81f77174adbe58ec97",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698562188,
|
"lastModified": 1703961334,
|
||||||
"narHash": "sha256-9nkxGnA/T+jLhHAMFRW157Qi/zfbf5dF1q7HfKROl3o=",
|
"narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3e10c80821dedb93592682379f476745f370a58e",
|
"rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-23.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702645756,
|
||||||
|
"narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugin-harpoon1": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703631439,
|
||||||
|
"narHash": "sha256-SIqssvuNnkw1YbEEElLYCHmh9OLnoHzggXNIZMb3jYI=",
|
||||||
|
"owner": "ThePrimeagen",
|
||||||
|
"repo": "harpoon",
|
||||||
|
"rev": "ccae1b9bec717ae284906b0bf83d720e59d12b91",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ThePrimeagen",
|
||||||
|
"repo": "harpoon",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"plugin-rainbow-delimiters-nvim": {
|
"plugin-rainbow-delimiters-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698573782,
|
"lastModified": 1704196511,
|
||||||
"narHash": "sha256-rJOWVz1cplThmx9HY7RqYSxUgKKq1yjzhS4Pb2ebFQ4=",
|
"narHash": "sha256-sUB85XGP3XQvF3TcdLhKLCDoSTFOeOlUiptK9DjYYqE=",
|
||||||
"owner": "HiPhish",
|
"owner": "HiPhish",
|
||||||
"repo": "rainbow-delimiters.nvim",
|
"repo": "rainbow-delimiters.nvim",
|
||||||
"rev": "df8cdf68234fbf056202a9684931c3dfa89988c1",
|
"rev": "4a90ac83c7c8e0ba8a1b6af38bed6d5ee1b04e08",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -56,11 +208,11 @@
|
||||||
"plugin-undotree-nvim": {
|
"plugin-undotree-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695641489,
|
"lastModified": 1703849391,
|
||||||
"narHash": "sha256-1d7OMaWsf0MW6w6Yzev9b3qF6Va4y8VNciSEdWq+VxY=",
|
"narHash": "sha256-clxoKM5kusRz8OR5+Z+4NS0WsoMx9tdyi9GG+sE6r3s=",
|
||||||
"owner": "jiaoshijie",
|
"owner": "jiaoshijie",
|
||||||
"repo": "undotree",
|
"repo": "undotree",
|
||||||
"rev": "41f56b30cc774ad26c4945c7e10673453893e7ad",
|
"rev": "80552a0180b49e5ba072c89ae91ce5d4e3aed36b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -69,12 +221,123 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"plugin-vscoq-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702025258,
|
||||||
|
"narHash": "sha256-0ozz2vxmuEym/pR6AftgIZBt4fT4qJxEpngtZXqXT30=",
|
||||||
|
"owner": "tomtomjhj",
|
||||||
|
"repo": "vscoq.nvim",
|
||||||
|
"rev": "0dee175a75153fc6057605c90749e0d6eb131cd4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomtomjhj",
|
||||||
|
"repo": "vscoq.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"discord-screenaudio": "discord-screenaudio",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
"plugin-harpoon1": "plugin-harpoon1",
|
||||||
"plugin-rainbow-delimiters-nvim": "plugin-rainbow-delimiters-nvim",
|
"plugin-rainbow-delimiters-nvim": "plugin-rainbow-delimiters-nvim",
|
||||||
"plugin-undotree-nvim": "plugin-undotree-nvim"
|
"plugin-undotree-nvim": "plugin-undotree-nvim",
|
||||||
|
"plugin-vscoq-nvim": "plugin-vscoq-nvim",
|
||||||
|
"vscoq": "vscoq",
|
||||||
|
"xdg-desktop-portal-hyprland": "xdg-desktop-portal-hyprland"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vscoq": {
|
||||||
|
"inputs": {
|
||||||
|
"coq-8_18": "coq-8_18",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1701447720,
|
||||||
|
"narHash": "sha256-VXhHCP6Ni5/OcsgoI1EbJfYCpXzwkuR8kbbKrl6dfjU=",
|
||||||
|
"owner": "coq-community",
|
||||||
|
"repo": "vscoq",
|
||||||
|
"rev": "d4a702e676f2d17952e82df27962736d10810c37",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "coq-community",
|
||||||
|
"repo": "vscoq",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xdg-desktop-portal-hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
"hyprlang": "hyprlang",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704308317,
|
||||||
|
"narHash": "sha256-/3IcC3oi0MPtC9OyE687HI/a7vat3m9Sx67I85tTcdI=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"rev": "bd110073cfe6ac3ce756c1577af78d672f89e853",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
66
flake.nix
66
flake.nix
|
@ -3,12 +3,15 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
# Home manager
|
# Home manager
|
||||||
home-manager.url = "github:nix-community/home-manager/release-23.05";
|
home-manager.url = "github:nix-community/home-manager/master";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# VS Coq language server
|
||||||
|
vscoq.url = "github:coq-community/vscoq";
|
||||||
|
vscoq.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Neovim plugins not in nixpkgs
|
# Neovim plugins not in nixpkgs
|
||||||
plugin-rainbow-delimiters-nvim.url = "gitlab:HiPhish/rainbow-delimiters.nvim";
|
plugin-rainbow-delimiters-nvim.url = "gitlab:HiPhish/rainbow-delimiters.nvim";
|
||||||
|
@ -16,30 +19,47 @@
|
||||||
|
|
||||||
plugin-undotree-nvim.url = "github:jiaoshijie/undotree";
|
plugin-undotree-nvim.url = "github:jiaoshijie/undotree";
|
||||||
plugin-undotree-nvim.flake = false;
|
plugin-undotree-nvim.flake = false;
|
||||||
|
|
||||||
|
plugin-vscoq-nvim.url = "github:tomtomjhj/vscoq.nvim";
|
||||||
|
plugin-vscoq-nvim.flake = false;
|
||||||
|
|
||||||
|
plugin-harpoon1.url = "github:ThePrimeagen/harpoon";
|
||||||
|
plugin-harpoon1.flake = false;
|
||||||
|
|
||||||
|
# Discord screen audio
|
||||||
|
discord-screenaudio.url = "git+ssh://git@github.com/maltejur/discord-screenaudio?tag=v1.9.2&submodules=1";
|
||||||
|
discord-screenaudio.flake = false;
|
||||||
|
|
||||||
|
# Track hyprland xdg desktop portal master until screenshots get released again
|
||||||
|
xdg-desktop-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
||||||
|
xdg-desktop-portal-hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
self,
|
{ self
|
||||||
nixpkgs,
|
, nixpkgs
|
||||||
home-manager,
|
, home-manager
|
||||||
...
|
, ...
|
||||||
} @ inputs : let
|
} @ inputs:
|
||||||
inherit (self) outputs;
|
let
|
||||||
in {
|
inherit (self) outputs;
|
||||||
overlays = import ./overlays {inherit inputs;};
|
in
|
||||||
|
{
|
||||||
|
overlays = import ./overlays { inherit inputs; };
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
"kalle-pc" = nixpkgs.lib.nixosSystem {
|
"kalle-pc" = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs outputs;};
|
specialArgs = { inherit inputs outputs; };
|
||||||
modules = [ ./nixos/kalle-pc/configuration.nix ];
|
modules = [ ./nixos/kalle-pc/configuration.nix ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeConfigurations = {
|
||||||
|
"kalle@kalle-pc" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./home-manager/kalle-pc/kalle.nix ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
homeConfigurations = {
|
|
||||||
"kalle@kalle-pc" = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
extraSpecialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [ ./home-manager/kalle-pc/kalle.nix ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,223 @@
|
||||||
username = "kalle";
|
username = "kalle";
|
||||||
homeDirectory = "/home/kalle";
|
homeDirectory = "/home/kalle";
|
||||||
};
|
};
|
||||||
|
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../nvim
|
../../nvim
|
||||||
../../eww
|
../../eww
|
||||||
|
../../hyprland
|
||||||
|
../../hyprland/hyprpaper.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
hyprland =
|
||||||
|
let
|
||||||
|
mod = "SUPER"; in
|
||||||
|
{
|
||||||
|
mod = mod;
|
||||||
|
|
||||||
|
primaryMonitor = "DP-2";
|
||||||
|
|
||||||
|
monitors = [
|
||||||
|
{
|
||||||
|
name = "DP-2";
|
||||||
|
width = 1920;
|
||||||
|
height = 1080;
|
||||||
|
refreshRate = 144;
|
||||||
|
x = 0;
|
||||||
|
y = 1080;
|
||||||
|
vrr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "HDMI-A-1";
|
||||||
|
width = 1920;
|
||||||
|
height = 1080;
|
||||||
|
x = 1500;
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "HDMI-A-2";
|
||||||
|
width = 1920;
|
||||||
|
height = 1080;
|
||||||
|
x = 1920;
|
||||||
|
y = 1080;
|
||||||
|
transform = 3;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
autoStart = [
|
||||||
|
# Bar
|
||||||
|
"${pkgs.dunst}/bin/dunst"
|
||||||
|
"${pkgs.firefox}/bin/firefox"
|
||||||
|
"${pkgs.discord}/bin/discord"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
XCURSOR_SIZE = "24";
|
||||||
|
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||||
|
};
|
||||||
|
|
||||||
|
sensitivity = 0.1;
|
||||||
|
|
||||||
|
keyboard = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
options = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
inner_gaps = 5;
|
||||||
|
outer_gaps = 10;
|
||||||
|
|
||||||
|
border = {
|
||||||
|
size = 1;
|
||||||
|
active = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
inactive = "rgba(595959aa)";
|
||||||
|
};
|
||||||
|
|
||||||
|
layout = "dwindle";
|
||||||
|
|
||||||
|
rounding = 5;
|
||||||
|
|
||||||
|
layerRules = {
|
||||||
|
"gtk-layer-shell" = [ "blur" "ignorezero" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
windowRules = {
|
||||||
|
# Auto workspace
|
||||||
|
firefox = [ "workspace 1 silent" ];
|
||||||
|
discord = [ "workspace name:HDMI-A-2" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
windowRulesV2 = {
|
||||||
|
# ULauncher
|
||||||
|
"class:^(ulauncher)$" = [
|
||||||
|
"forceinput"
|
||||||
|
"dimaround"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Media keys
|
||||||
|
# bind = ,XF86AudioPlay, exec, playerctl --player plasma-browser-integration play-pause
|
||||||
|
# bind = ,XF86AudioPrev, exec, playerctl previous
|
||||||
|
# bind = ,XF86AudioNext, exec, playerctl next
|
||||||
|
# bind = ,XF86AudioLowerVolume, exec, playerctl --player plasma-browser-integration volume 0.01-
|
||||||
|
# bind = ,XF86AudioRaiseVolume, exec, playerctl --player plasma-browser-integration volume 0.01+
|
||||||
|
|
||||||
|
# This is a dumb work around for hyprland not passing ALT half the time with the pass dispatcher.
|
||||||
|
# bind = ALT, M, exec, xdotool key 'ALT+m'
|
||||||
|
# bind = ALT, B, exec, xdotool key 'ALT+b'
|
||||||
|
binds = {
|
||||||
|
"${mod}, return" = "exec, kitty";
|
||||||
|
"${mod}, E" = "exec, ulauncher-toggle #wofi --show drun";
|
||||||
|
"${mod}, Print" = "exec, bash -c \"grim -g \\\"$(slurp)\\\" - | wl-copy\"";
|
||||||
|
# Clipboard history
|
||||||
|
# bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
||||||
|
};
|
||||||
|
|
||||||
|
mouseBinds = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprpaper = {
|
||||||
|
wallpaperFolder = "/home/kalle/Pictures/Wallpapers";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
monitor = 0;
|
||||||
|
follow = "none";
|
||||||
|
width = 300;
|
||||||
|
height = 300;
|
||||||
|
origin = "top-left";
|
||||||
|
offset = "10x10";
|
||||||
|
scale = 0;
|
||||||
|
notification_limit = 20;
|
||||||
|
progress_bar = true;
|
||||||
|
progress_bar_height = 10;
|
||||||
|
progress_bar_frame_width = 0;
|
||||||
|
progress_bar_min_width = 150;
|
||||||
|
progress_bar_max_width = 300;
|
||||||
|
progress_bar_corner_radius = 0;
|
||||||
|
icon_corner_radius = 0;
|
||||||
|
indicate_hidden = "yes";
|
||||||
|
transparency = "0.3";
|
||||||
|
separator_height = 2;
|
||||||
|
padding = 8;
|
||||||
|
horizontal_padding = 8;
|
||||||
|
text_icon_padding = 0;
|
||||||
|
frame_width = 0;
|
||||||
|
frame_color = "#aaaaaa";
|
||||||
|
gap_size = 10;
|
||||||
|
separator_color = "frame";
|
||||||
|
sort = "yes";
|
||||||
|
font = "Monospace 8";
|
||||||
|
line_height = 0;
|
||||||
|
markup = "full";
|
||||||
|
format = "<b>%s</b>\n%b";
|
||||||
|
alignment = "left";
|
||||||
|
vertical_alignment = "center";
|
||||||
|
show_age_threshold = 60;
|
||||||
|
ellipsize = "middle";
|
||||||
|
ignore_newline = "no";
|
||||||
|
stack_duplicates = true;
|
||||||
|
hide_duplicate_count = false;
|
||||||
|
show_indicators = "yes";
|
||||||
|
enable_recursive_icon_lookup = true;
|
||||||
|
icon_theme = "Adwaita";
|
||||||
|
icon_position = "left";
|
||||||
|
min_icon_size = 32;
|
||||||
|
max_icon_size = 128;
|
||||||
|
icon_path = "/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/";
|
||||||
|
sticky_history = "yes";
|
||||||
|
history_length = 20;
|
||||||
|
dmenu = "/usr/bin/dmenu -p dunst:";
|
||||||
|
browser = "/usr/bin/xdg-open";
|
||||||
|
always_run_script = true;
|
||||||
|
title = "Dunst";
|
||||||
|
class = "Dunst";
|
||||||
|
corner_radius = 0;
|
||||||
|
ignore_dbusclose = false;
|
||||||
|
force_xwayland = false;
|
||||||
|
force_xinerama = false;
|
||||||
|
mouse_left_click = "close_current";
|
||||||
|
mouse_middle_click = "do_action, close_current";
|
||||||
|
mouse_right_click = "close_all";
|
||||||
|
};
|
||||||
|
|
||||||
|
experimental = {
|
||||||
|
per_monitor_dpi = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
urgency_low = {
|
||||||
|
background = "#222222";
|
||||||
|
foreground = "#888888";
|
||||||
|
timeout = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_normal = {
|
||||||
|
background = "#285577";
|
||||||
|
foreground = "#ffffff";
|
||||||
|
timeout = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_critical = {
|
||||||
|
background = "#900000";
|
||||||
|
foreground = "#ffffff";
|
||||||
|
frame_color = "#ff0000";
|
||||||
|
timeout = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
overlays = with outputs.overlays; [
|
overlays = with outputs.overlays; [
|
||||||
nvim-plugins
|
nvim-plugins
|
||||||
|
discord-screenaudio
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
@ -32,20 +240,78 @@
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
discord
|
discord
|
||||||
|
# discord-screenaudio # Not working with some EGL error
|
||||||
firefox
|
firefox
|
||||||
|
chromium
|
||||||
httpie
|
httpie
|
||||||
kate
|
kate
|
||||||
kitty
|
dolphin
|
||||||
|
ark
|
||||||
rustup
|
rustup
|
||||||
|
gcc
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
pavucontrol
|
||||||
|
coq_8_18
|
||||||
|
difftastic
|
||||||
|
sops
|
||||||
|
|
||||||
|
cachix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
programs.bash.enable = true;
|
|
||||||
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = {
|
||||||
|
# Git aliases
|
||||||
|
gg = "git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an (%ae)%C(reset)' --all";
|
||||||
|
gca = "git add -A; git commit -a --amend --no-edit";
|
||||||
|
gs = "git status";
|
||||||
|
|
||||||
|
# Replace some commands with better versions
|
||||||
|
ssh = "kitty +kitten ssh";
|
||||||
|
diff = "${pkgs.difftastic}/bin/difftastic";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
function open() {
|
||||||
|
xdg-open $@ &> /dev/null &
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
theme = "Catppuccin-Mocha";
|
||||||
|
settings = {
|
||||||
|
background_opacity = "0.8";
|
||||||
|
allow_remote_control = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
add_newline = true;
|
||||||
|
|
||||||
|
# Remove text from nix shell component
|
||||||
|
nix_shell.format = "via [$symbol]($style) ";
|
||||||
|
|
||||||
|
git_status.disabled = true;
|
||||||
|
package.disabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Kalle Struik";
|
userName = "Kalle Struik";
|
||||||
userEmail = "kalle@kallestruik.nl";
|
userEmail = "kalle@kallestruik.nl";
|
||||||
|
difftastic.enable = true;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,429 @@
|
||||||
|
{ inputs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options =
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption types;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
hyprland = {
|
||||||
|
mod = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "SUPER";
|
||||||
|
};
|
||||||
|
|
||||||
|
autoStart = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
primaryMonitor = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
monitors = mkOption {
|
||||||
|
type = types.listOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
width = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
};
|
||||||
|
height = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
};
|
||||||
|
refreshRate = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 60;
|
||||||
|
};
|
||||||
|
x = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
y = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
transform = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
vrr = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
enabled = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
sensitivity = mkOption {
|
||||||
|
type = types.float;
|
||||||
|
default = 0.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
keyboard = {
|
||||||
|
layout = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
variant = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "qwerty";
|
||||||
|
};
|
||||||
|
|
||||||
|
options = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inner_gaps = mkOption { type = types.int; };
|
||||||
|
|
||||||
|
outer_gaps = mkOption { type = types.int; };
|
||||||
|
|
||||||
|
border = {
|
||||||
|
size = mkOption { type = types.int; };
|
||||||
|
active = mkOption { type = types.str; };
|
||||||
|
inactive = mkOption { type = types.str; };
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
beziers = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [
|
||||||
|
"myBezier, 0.05, 0.9, 0.1, 1.05"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
windows = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 3, myBezier";
|
||||||
|
};
|
||||||
|
|
||||||
|
windowsOut = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 3, default, popin 80%";
|
||||||
|
};
|
||||||
|
|
||||||
|
border = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 5, default";
|
||||||
|
};
|
||||||
|
|
||||||
|
borderangle = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 4, default";
|
||||||
|
};
|
||||||
|
|
||||||
|
fade = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 3, default";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspaces = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "1, 2, default";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
layout = mkOption { type = types.str; };
|
||||||
|
rounding = mkOption { type = types.int; };
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
size = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
passes = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
range = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
strength = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
color = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
layerRules = mkOption {
|
||||||
|
type = types.attrsOf (types.listOf types.str);
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
windowRules = mkOption {
|
||||||
|
type = types.attrsOf (types.listOf types.str);
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
windowRulesV2 = mkOption {
|
||||||
|
type = types.attrsOf (types.listOf types.str);
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
generateWorkspaceBinds = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
generateWindowManagementBinds = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
binds = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
mouseBinds = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config =
|
||||||
|
let
|
||||||
|
cfg = config.hyprland;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
cliphist
|
||||||
|
ulauncher
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
monitor = map
|
||||||
|
(m:
|
||||||
|
let
|
||||||
|
resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}";
|
||||||
|
position = "${toString m.x}x${toString m.y}";
|
||||||
|
vrr = if m.vrr != 0 then ",vrr,${toString m.vrr}" else "";
|
||||||
|
transform = if m.transform != 0 then ",transform,${toString m.transform}" else "";
|
||||||
|
in
|
||||||
|
"${m.name},${if m.enabled then "${resolution},${position},1${vrr}${transform}" else "disable"}"
|
||||||
|
)
|
||||||
|
(cfg.monitors)
|
||||||
|
# Automatically detect newly connected monitors
|
||||||
|
++ [ ",preferred,auto,auto" ];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"${pkgs.wl-clipboard}/bin/wl-paste --watch ${pkgs.cliphist}/bin/cliphist store"
|
||||||
|
"${pkgs.ulauncher}/bin/ulauncher --no-window-shadow --hide-window"
|
||||||
|
"${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
||||||
|
# kde-connect (somehow, wasnt working well last time)
|
||||||
|
] ++ cfg.autoStart;
|
||||||
|
|
||||||
|
env = lib.mapAttrsToList (k: v: "${toString k},${v}") cfg.environment;
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = cfg.keyboard.layout;
|
||||||
|
kb_variant = cfg.keyboard.variant;
|
||||||
|
kb_options = cfg.keyboard.options;
|
||||||
|
|
||||||
|
follow_mouse = 1;
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
sensitivity = cfg.sensitivity;
|
||||||
|
accel_profile = "flat";
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = cfg.inner_gaps;
|
||||||
|
gaps_out = cfg.outer_gaps;
|
||||||
|
|
||||||
|
border_size = cfg.border.size;
|
||||||
|
"col.active_border" = cfg.border.active;
|
||||||
|
"col.inactive_border" = cfg.border.inactive;
|
||||||
|
|
||||||
|
layout = cfg.layout;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = cfg.rounding;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = if cfg.blur.enable then "yes" else "no";
|
||||||
|
size = cfg.blur.size;
|
||||||
|
passes = cfg.blur.passes;
|
||||||
|
new_optimizations = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
drop_shadow = if cfg.shadow.enable then "yes" else "no";
|
||||||
|
shadow_range = cfg.shadow.range;
|
||||||
|
shadow_render_power = cfg.shadow.strength;
|
||||||
|
"col.shadow" = cfg.shadow.color;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = "yes";
|
||||||
|
preserve_split = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_is_master = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = if cfg.animations.enable then "yes" else "no";
|
||||||
|
|
||||||
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = cfg.animations.beziers;
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, ${cfg.animations.windows}"
|
||||||
|
"windowsOut, ${cfg.animations.windowsOut}"
|
||||||
|
"border, ${cfg.animations.border}"
|
||||||
|
"borderangle, ${cfg.animations.borderangle}"
|
||||||
|
"fade, ${cfg.animations.fade}"
|
||||||
|
"workspaces, ${cfg.animations.workspaces}"
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
layerrule =
|
||||||
|
let
|
||||||
|
y = ident: value: "${value},${ident}";
|
||||||
|
x = ident: values: map (y ident) values;
|
||||||
|
in
|
||||||
|
lib.flatten (lib.mapAttrsToList x cfg.layerRules);
|
||||||
|
|
||||||
|
workspace =
|
||||||
|
let
|
||||||
|
# Create one work space for each non primary monitor
|
||||||
|
perMonitorWorkspaces = map
|
||||||
|
(m: "${m.name}, name:${m.name}")
|
||||||
|
(lib.filter
|
||||||
|
(m: m.name != cfg.primaryMonitor)
|
||||||
|
cfg.monitors
|
||||||
|
);
|
||||||
|
|
||||||
|
# Create 10 work spaces on the primary monitor
|
||||||
|
primaryMonitorWorkspaces = map (i: "${toString i}, monitor:${cfg.primaryMonitor}") (lib.range 1 10);
|
||||||
|
|
||||||
|
in
|
||||||
|
primaryMonitorWorkspaces ++ perMonitorWorkspaces;
|
||||||
|
|
||||||
|
bind =
|
||||||
|
let
|
||||||
|
# Create binds to switch workspaces and move windows between them
|
||||||
|
workspaceBinds =
|
||||||
|
if cfg.generateWorkspaceBinds then
|
||||||
|
lib.flatten
|
||||||
|
(map
|
||||||
|
(i:
|
||||||
|
let
|
||||||
|
k = if i == 10 then 0 else i;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"${cfg.mod}, ${toString k}, workspace, ${toString i}"
|
||||||
|
"${cfg.mod} SHIFT, ${toString k}, movetoworkspace, ${toString i}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
(lib.range 1 10)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
|
|
||||||
|
# Create binds to manage wiwdows
|
||||||
|
windowManagementBinds =
|
||||||
|
if cfg.generateWindowManagementBinds then [
|
||||||
|
"${cfg.mod} SHIFT, Q, killactive"
|
||||||
|
"${cfg.mod}, F, togglefloating"
|
||||||
|
"${cfg.mod} SHIFT, F, fullscreen"
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
|
|
||||||
|
configBinds = lib.mapAttrsToList (k: v: "${k}, ${v}") cfg.binds;
|
||||||
|
in
|
||||||
|
configBinds ++ workspaceBinds ++ windowManagementBinds;
|
||||||
|
|
||||||
|
bindm =
|
||||||
|
let
|
||||||
|
windowManagementBinds =
|
||||||
|
if cfg.generateWindowManagementBinds then [
|
||||||
|
"${cfg.mod}, mouse:272, movewindow"
|
||||||
|
"${cfg.mod}, mouse:273, resizewindow"
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
|
|
||||||
|
configBinds = lib.mapAttrsToList (k: v: "${k}, ${v}") cfg.mouseBinds;
|
||||||
|
|
||||||
|
in
|
||||||
|
configBinds ++ windowManagementBinds;
|
||||||
|
|
||||||
|
windowrule =
|
||||||
|
let
|
||||||
|
y = ident: value: "${value},${ident}";
|
||||||
|
x = ident: values: map (y ident) values;
|
||||||
|
in
|
||||||
|
lib.flatten (lib.mapAttrsToList x cfg.windowRules);
|
||||||
|
|
||||||
|
windowrulev2 =
|
||||||
|
let
|
||||||
|
y = ident: value: "${value},${ident}";
|
||||||
|
x = ident: values: map (y ident) values;
|
||||||
|
in
|
||||||
|
lib.flatten (lib.mapAttrsToList x cfg.windowRulesV2);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
{ inputs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options =
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption types;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
hyprpaper = {
|
||||||
|
wallpaperFolder = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config =
|
||||||
|
let
|
||||||
|
cfg = config.hyprpaper;
|
||||||
|
hyprlandCfg = config.hyprland;
|
||||||
|
|
||||||
|
changeWallpaperScript =
|
||||||
|
pkgs.writeShellScriptBin
|
||||||
|
"change-wallpaper"
|
||||||
|
(lib.concatStringsSep
|
||||||
|
"\n"
|
||||||
|
(lib.flatten
|
||||||
|
(map
|
||||||
|
(m:
|
||||||
|
let
|
||||||
|
output = m.name;
|
||||||
|
wallpaper = "\"$(${pkgs.findutils}/bin/find -L \"${cfg.wallpaperFolder}\" -type f | ${pkgs.coreutils}/bin/shuf -n 1)\"";
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"wallpaper=${wallpaper}"
|
||||||
|
"${pkgs.hyprland}/bin/hyprctl hyprpaper preload $wallpaper"
|
||||||
|
"${pkgs.hyprland}/bin/hyprctl hyprpaper wallpaper ${output},$wallpaper"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
hyprlandCfg.monitors)
|
||||||
|
++ [ "${pkgs.hyprland}/bin/hyprctl hyprpaper unload all" ])
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
hyprland.autoStart = [
|
||||||
|
"${pkgs.hyprpaper}/bin/hyprpaper"
|
||||||
|
"sleep 2; ${changeWallpaperScript}/bin/change-wallpaper"
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
hyprpaper
|
||||||
|
changeWallpaperScript
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,8 +1,13 @@
|
||||||
{ config, pkgs, ... }:
|
{ inputs
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[
|
||||||
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./hardware-configuration.override.nix
|
./hardware-configuration.override.nix
|
||||||
];
|
];
|
||||||
|
@ -30,23 +35,33 @@
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
console = {
|
console = {
|
||||||
font = "Lat2-Terminus16";
|
font = "Lat2-Terminus16";
|
||||||
useXkbConfig = true; # use xkbOptions in tty.
|
useXkbConfig = true; # use xkbOptions in tty.
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver.enable = true;
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
displayManager.sddm.enable = true;
|
||||||
|
|
||||||
# Enable the Plasma 5 Desktop Environment.
|
# Configure keymap in X11
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
layout = "us";
|
||||||
services.xserver.desktopManager.plasma5.enable = true;
|
# xkbVariant = "dvorak";
|
||||||
|
# xkbOptions = "eurosign:e,caps:escape";
|
||||||
|
};
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Allow flashing ZSA keyboards
|
||||||
services.xserver.layout = "dvorak";
|
hardware.keyboard.zsa.enable = true;
|
||||||
services.xserver.xkbOptions = "eurosign:e,caps:escape";
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
portalPackage = inputs.xdg-desktop-portal-hyprland.packages.x86_64-linux.xdg-desktop-portal-hyprland;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
@ -71,10 +86,54 @@
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
|
|
||||||
|
grim # For xdg-desktop-portal-hyprland which does not declare this dependency
|
||||||
|
slurp # Some for this one
|
||||||
|
|
||||||
|
qemu_full
|
||||||
|
gamescope
|
||||||
];
|
];
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
|
||||||
|
fira-code
|
||||||
|
fira-code-symbols
|
||||||
|
|
||||||
|
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
||||||
|
];
|
||||||
|
|
||||||
|
fontconfig = {
|
||||||
|
defaultFonts = {
|
||||||
|
serif = [ "Noto Serif" "Symbols Nerd Font" ];
|
||||||
|
sansSerif = [ "Noto Sans" "Symbols Nerd Font" ];
|
||||||
|
monospace = [ "Fira Code" "Symbols Nerd Font Mono" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Steam needs to be installed on system level, because reasons
|
# Steam needs to be installed on system level, because reasons
|
||||||
programs.steam.enable = true;
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.steam.override {
|
||||||
|
extraPkgs = pkgs: with pkgs; [
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
libvorbis
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
libkrb5
|
||||||
|
keyutils
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
|
@ -19,14 +19,22 @@
|
||||||
vimdiffAlias = true;
|
vimdiffAlias = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
nodejs_21 # Required for copilot-vim
|
||||||
|
ripgrep # Required for telescope
|
||||||
|
wl-clipboard # Required for clipboard sync
|
||||||
|
|
||||||
|
# Language servers
|
||||||
|
clang-tools
|
||||||
lua-language-server
|
lua-language-server
|
||||||
rnix-lsp
|
rnix-lsp
|
||||||
|
nodePackages.typescript-language-server
|
||||||
ripgrep
|
tailwindcss-language-server
|
||||||
wl-clipboard
|
inputs.vscoq.packages.x86_64-linux.vscoq-language-server
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
yuck-vim
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = which-key-nvim;
|
plugin = which-key-nvim;
|
||||||
config = toLua "require('which-key').setup()";
|
config = toLua "require('which-key').setup()";
|
||||||
|
@ -35,14 +43,20 @@
|
||||||
neodev-nvim
|
neodev-nvim
|
||||||
plenary-nvim
|
plenary-nvim
|
||||||
|
|
||||||
telescope-nvim
|
{
|
||||||
|
plugin = telescope-nvim;
|
||||||
|
config = toLuaFile ./plugin/telescope.lua;
|
||||||
|
}
|
||||||
telescope-ui-select-nvim
|
telescope-ui-select-nvim
|
||||||
|
|
||||||
FTerm-nvim
|
FTerm-nvim
|
||||||
|
|
||||||
neogit
|
{
|
||||||
|
plugin = neogit;
|
||||||
|
config = toLua "require('neogit').setup()";
|
||||||
|
}
|
||||||
|
|
||||||
harpoon
|
harpoon1
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = undotree-nvim;
|
plugin = undotree-nvim;
|
||||||
|
@ -75,6 +89,7 @@
|
||||||
cmp-git
|
cmp-git
|
||||||
cmp-calc
|
cmp-calc
|
||||||
cmp_luasnip
|
cmp_luasnip
|
||||||
|
copilot-cmp
|
||||||
luasnip
|
luasnip
|
||||||
friendly-snippets
|
friendly-snippets
|
||||||
{
|
{
|
||||||
|
@ -96,23 +111,29 @@
|
||||||
rainbow-delimiters-nvim
|
rainbow-delimiters-nvim
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = (nvim-treesitter.withPlugins (p: [
|
plugin = (nvim-treesitter.withAllGrammars);
|
||||||
p.tree-sitter-nix
|
|
||||||
p.tree-sitter-vim
|
|
||||||
p.tree-sitter-bash
|
|
||||||
p.tree-sitter-lua
|
|
||||||
p.tree-sitter-python
|
|
||||||
p.tree-sitter-json
|
|
||||||
p.tree-sitter-yaml
|
|
||||||
p.tree-sitter-rust
|
|
||||||
p.tree-sitter-javascript
|
|
||||||
p.tree-sitter-typescript
|
|
||||||
p.tree-sitter-c
|
|
||||||
p.tree-sitter-cpp
|
|
||||||
]));
|
|
||||||
config = toLuaFile ./plugin/treesitter.lua;
|
config = toLuaFile ./plugin/treesitter.lua;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
plugin = Coqtail;
|
||||||
|
# Don't load Coqtail with neovim
|
||||||
|
config = ''
|
||||||
|
let g:loaded_coqtail = 1
|
||||||
|
let g:coqtail#supported = 0
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
vscoq-nvim
|
||||||
|
|
||||||
|
{
|
||||||
|
plugin = copilot-lua;
|
||||||
|
config = toLua ''
|
||||||
|
require("copilot").setup({
|
||||||
|
suggestion = { enabled = false },
|
||||||
|
panel = { enabled = false },
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
extraLuaConfig = ''
|
extraLuaConfig = ''
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
local cmp = require 'cmp'
|
local cmp = require 'cmp'
|
||||||
local luasnip = require 'luasnip'
|
local luasnip = require 'luasnip'
|
||||||
|
|
||||||
|
require("copilot_cmp").setup()
|
||||||
|
|
||||||
|
local has_words_before = function()
|
||||||
|
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then return false end
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_text(0, line - 1, 0, line - 1, col, {})[1]:match("^%s*$") == nil
|
||||||
|
end
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
|
@ -21,7 +29,7 @@ cmp.setup({
|
||||||
end
|
end
|
||||||
end, { 'i', 's' }),
|
end, { 'i', 's' }),
|
||||||
['<Tab>'] = cmp.mapping(function(fallback)
|
['<Tab>'] = cmp.mapping(function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() and has_words_before() then
|
||||||
cmp.select_next_item()
|
cmp.select_next_item()
|
||||||
elseif luasnip.expand_or_jumpable() then
|
elseif luasnip.expand_or_jumpable() then
|
||||||
luasnip.expand_or_jump()
|
luasnip.expand_or_jump()
|
||||||
|
@ -39,6 +47,7 @@ cmp.setup({
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
sources = cmp.config.sources({
|
sources = cmp.config.sources({
|
||||||
|
{ name = "copilot", group_index = 2 },
|
||||||
{ name = 'path' }, -- file paths
|
{ name = 'path' }, -- file paths
|
||||||
{ name = 'nvim_lsp' }, -- from language server
|
{ name = 'nvim_lsp' }, -- from language server
|
||||||
{ name = 'nvim_lsp_signature_help' }, -- display function signatures with current parameter emphasized
|
{ name = 'nvim_lsp_signature_help' }, -- display function signatures with current parameter emphasized
|
||||||
|
|
|
@ -67,6 +67,10 @@ vim.diagnostic.config({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|
||||||
-- LSP Configuration
|
-- LSP Configuration
|
||||||
|
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
@ -101,6 +105,21 @@ require('lspconfig').rnix.setup {
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require('lspconfig').tsserver.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
|
require('lspconfig').tailwindcss.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
|
require('lspconfig').clangd.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
require('rust-tools').setup({
|
require('rust-tools').setup({
|
||||||
server = {
|
server = {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
|
@ -113,3 +132,20 @@ require('rust-tools').setup({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
require 'vscoq'.setup {
|
||||||
|
-- Configuration for vscoq, used in both the client and the server.
|
||||||
|
-- See "configuration" in https://github.com/coq-community/vscoq/blob/main/client/package.json.
|
||||||
|
-- The following is an example.
|
||||||
|
vscoq = {
|
||||||
|
proof = {
|
||||||
|
mode = 1, -- automatic mode
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- The configuration forwarded to `:help lspconfig-setup`.
|
||||||
|
-- The following is an example.
|
||||||
|
lsp = {
|
||||||
|
on_attach = on_attach,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
require('telescope').setup {
|
||||||
|
defaults = {
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
['<C-u>'] = false,
|
||||||
|
['<C-d>'] = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require("telescope").load_extension("ui-select")
|
||||||
|
pcall(require('telescope').load_extension, 'fzf')
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{ inputs
|
||||||
inputs,
|
, ...
|
||||||
...
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -15,6 +14,56 @@
|
||||||
name = "undotree.nvim";
|
name = "undotree.nvim";
|
||||||
src = inputs.plugin-undotree-nvim;
|
src = inputs.plugin-undotree-nvim;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vscoq-nvim = prev.vimUtils.buildVimPlugin {
|
||||||
|
name = "vscoq.nvim";
|
||||||
|
src = inputs.plugin-vscoq-nvim;
|
||||||
|
};
|
||||||
|
|
||||||
|
harpoon1 = prev.vimUtils.buildVimPlugin {
|
||||||
|
name = "harpoon";
|
||||||
|
src = inputs.plugin-harpoon1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
discord-screenaudio = final: prev: {
|
||||||
|
discord-screenaudio = prev.stdenv.mkDerivation
|
||||||
|
rec {
|
||||||
|
pname = "discord-screenaudio";
|
||||||
|
version = "1.9.1";
|
||||||
|
|
||||||
|
src = inputs.discord-screenaudio;
|
||||||
|
|
||||||
|
nativeBuildInputs = with prev; [
|
||||||
|
qt6.wrapQtAppsHook
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
qt6.qtbase
|
||||||
|
qt6.qtwebengine
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with prev; [
|
||||||
|
pipewire
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# version.cmake either uses git tags or a version.txt file to get app version.
|
||||||
|
# Since cmake can't access git tags, write the version to a version.txt ourselves.
|
||||||
|
echo "${version}" > version.txt
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = prev.nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A custom discord client that supports streaming with audio on Linux";
|
||||||
|
homepage = "https://github.com/maltejur/discord-screenaudio";
|
||||||
|
downloadPage = "https://github.com/maltejur/discord-screenaudio/releases";
|
||||||
|
changelog = "https://github.com/maltejur/discord-screenaudio/releases/tag/v${version}";
|
||||||
|
# license = lib.licenses.gpl3Only;
|
||||||
|
# maintainers = with lib.maintainers; [ huantian ];
|
||||||
|
# platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue