Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5dbab8d5b |
87
common.nix
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
]
|
|
||||||
++ (lib.my.mapModulesRec' (toString ./modules) import);
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
package = pkgs.nixVersions.stable;
|
|
||||||
extraOptions = "experimental-features = nix-command flakes";
|
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
||||||
settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://devenv.cachix.org"
|
|
||||||
# "ssh://nix-ssh@hel1.banditlair.com"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
|
||||||
"hel1.banditlair.com:stzB4xe5QTFvSABoP11ZpNzLDCRZ93PExk0Z/gOzW3g="
|
|
||||||
];
|
|
||||||
auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
persistent = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system.configurationRevision = lib.mkIf (inputs.self ? rev) inputs.self.rev;
|
|
||||||
|
|
||||||
time.timeZone = lib.mkDefault "Europe/Amsterdam";
|
|
||||||
|
|
||||||
i18n.defaultLocale = lib.mkDefault "en_US.UTF-8";
|
|
||||||
|
|
||||||
zramSwap.enable = true;
|
|
||||||
zramSwap.memoryPercent = 300;
|
|
||||||
systemd.oomd.enable = true;
|
|
||||||
|
|
||||||
console = {
|
|
||||||
keyMap = lib.mkDefault "fr";
|
|
||||||
font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
|
|
||||||
earlySetup = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.fontconfig.antialias = lib.mkDefault true;
|
|
||||||
fonts.fontconfig.subpixel = {
|
|
||||||
rgba = lib.mkDefault "none";
|
|
||||||
lcdfilter = lib.mkDefault "none";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
vim
|
|
||||||
|
|
||||||
wget
|
|
||||||
inetutils
|
|
||||||
man
|
|
||||||
|
|
||||||
htop-vim
|
|
||||||
ncdu
|
|
||||||
nload
|
|
||||||
pciutils
|
|
||||||
lsof
|
|
||||||
dnsutils
|
|
||||||
|
|
||||||
unzip
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.hosts = {
|
|
||||||
"127.0.0.1" = [
|
|
||||||
"localhost"
|
|
||||||
"membres.yourcoop.local"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services.resolved.dnssec = "false";
|
|
||||||
}
|
|
||||||
246
flake.lock
generated
|
|
@ -1,142 +1,47 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"blueprint": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"llm-agents",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1763308703,
|
|
||||||
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "blueprint",
|
|
||||||
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "blueprint",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"emacs-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766423654,
|
|
||||||
"narHash": "sha256-ko2vQ6kf8dXLMTq2bnNazbPAHvdsf+BrWQfr4acRNDo=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "emacs-overlay",
|
|
||||||
"rev": "d06edf59a5f5c1b15d607ec2e514cf2f8a71a591",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "emacs-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs"
|
"utils": "utils"
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766387499,
|
"lastModified": 1662759269,
|
||||||
"narHash": "sha256-AjK3/UKDzeXFeYNLVBaJ3+HLE9he1g5UrlNd4/BM3eA=",
|
"narHash": "sha256-lt8bAfEZudCQb+MxoNKmenhMTXhu3RCCyLYxU9t5FFk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "527ad07e6625302b648ed3b28c34b62a79bd103e",
|
"rev": "9f7fe353b613d0e45d7a5cdbd1f13c96c15803dd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "master",
|
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"llm-agents": {
|
|
||||||
"inputs": {
|
|
||||||
"blueprint": "blueprint",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766441132,
|
|
||||||
"narHash": "sha256-bd6d2lQiNaIEIjRZo7yFthyYJ8uugnRJfWn8SuOy8i4=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "llm-agents.nix",
|
|
||||||
"rev": "950a181bbb93b8de506b1db15fec242d273d2c1d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "llm-agents.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766309749,
|
"lastModified": 1654953433,
|
||||||
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
|
"narHash": "sha256-TwEeh4r50NdWHFAHQSyjCk2cZxgwUfcCCAJOhPdXB28=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
|
"rev": "90cd5459a1fd707819b9a3fb9c852beaaac3b79a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766014764,
|
|
||||||
"narHash": "sha256-+73VffE5GP5fvbib6Hs1Su6LehG+9UV1Kzs90T2gBLA=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "2b0d2b456e4e8452cf1c16d00118d145f31160f9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-25.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766314097,
|
"lastModified": 1662996720,
|
||||||
"narHash": "sha256-laJftWbghBehazn/zxVJ8NdENVgjccsWAdAqKXhErrM=",
|
"narHash": "sha256-XvLQ3SuXnDMJMpM1sv1ifPjBuRytiDYhB12H/BNTjgY=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "306ea70f9eb0fb4e040f8540e2deab32ed7e2055",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766309749,
|
|
||||||
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
|
"rev": "5f326e2a403e1cebaec378e72ceaf5725983376d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -146,135 +51,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766070988,
|
|
||||||
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nvim-treesitter": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766230815,
|
|
||||||
"narHash": "sha256-+2PF6Q2uwRs/gbhKvR4jF8rYhe0HoZfwMwZCoZinp/o=",
|
|
||||||
"owner": "nvim-treesitter",
|
|
||||||
"repo": "nvim-treesitter",
|
|
||||||
"rev": "8cdffc6d334731ce3703b6d870a5a34fd878208a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nvim-treesitter",
|
|
||||||
"ref": "main",
|
|
||||||
"repo": "nvim-treesitter",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nvim-treesitter-main": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_4",
|
|
||||||
"nvim-treesitter": "nvim-treesitter",
|
|
||||||
"nvim-treesitter-textobjects": "nvim-treesitter-textobjects"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766296113,
|
|
||||||
"narHash": "sha256-s6bymukQTFg6kAsgogwbCda+Fe+Su3T9rJE0xZ8s9R0=",
|
|
||||||
"owner": "iofq",
|
|
||||||
"repo": "nvim-treesitter-main",
|
|
||||||
"rev": "5ca3b0dd2d3d00fb597ba8c316eb3ca79ea17fbc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "iofq",
|
|
||||||
"repo": "nvim-treesitter-main",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nvim-treesitter-textobjects": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766243280,
|
|
||||||
"narHash": "sha256-hbVwqoo0WRTVKIhsG5N6IXnmOVrrQzGuE4x0rEMYro0=",
|
|
||||||
"owner": "nvim-treesitter",
|
|
||||||
"repo": "nvim-treesitter-textobjects",
|
|
||||||
"rev": "e91c585ac0ee760198dabc1fad2e6227effdcd5e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nvim-treesitter",
|
|
||||||
"ref": "main",
|
|
||||||
"repo": "nvim-treesitter-textobjects",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"emacs-overlay": "emacs-overlay",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"llm-agents": "llm-agents",
|
"nixpkgs": "nixpkgs_2"
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"nvim-treesitter-main": "nvim-treesitter-main",
|
|
||||||
"vim-org-roam": "vim-org-roam"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1653893745,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"llm-agents",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766000401,
|
|
||||||
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
|
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "flake-utils",
|
||||||
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "flake-utils",
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vim-org-roam": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765802816,
|
|
||||||
"narHash": "sha256-Zzq4JK3iFBVr8QmMmv5vm/R8QyYqmL44fRMZa15m7eo=",
|
|
||||||
"owner": "chipsenkbeil",
|
|
||||||
"repo": "org-roam.nvim",
|
|
||||||
"rev": "74276a94e9e4af463e7ba35c22259eeced9c90f9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "chipsenkbeil",
|
|
||||||
"repo": "org-roam.nvim",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
238
flake.nix
|
|
@ -1,80 +1,180 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
home-manager = {
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-22.05";
|
||||||
url = "github:nix-community/home-manager/master";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
|
||||||
vim-org-roam = {
|
|
||||||
url = "github:chipsenkbeil/org-roam.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
llm-agents.url = "github:numtide/llm-agents.nix";
|
|
||||||
# Workaround until nvim-treesitter main branch is used in nixpkgs
|
|
||||||
nvim-treesitter-main.url = "github:iofq/nvim-treesitter-main";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = { self, home-manager, nixpkgs, nixpkgs-stable }: {
|
||||||
inputs@{
|
|
||||||
self,
|
|
||||||
nixpkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib.my) mapHosts;
|
|
||||||
|
|
||||||
|
nixosConfigurations.nixos-desktop = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit nixpkgs; };
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
./hardware/desktop.nix
|
||||||
|
./profiles/base.nix
|
||||||
|
./users
|
||||||
|
(
|
||||||
|
{
|
||||||
|
networking.hostName = "nixos-desktop";
|
||||||
|
# Allow to externally control MPD
|
||||||
|
networking.firewall.allowedTCPPorts = [ 6600 ];
|
||||||
|
|
||||||
mkPkgs =
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
pkgs: extraOverlays:
|
|
||||||
import pkgs {
|
|
||||||
inherit system;
|
|
||||||
config.allowUnfreePredicate =
|
|
||||||
pkg:
|
|
||||||
builtins.elem (pkgs.lib.getName pkg) [
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-run"
|
|
||||||
"steam-unwrapped"
|
|
||||||
"keymapp"
|
|
||||||
"mongodb-compass"
|
|
||||||
"nvidia-x11"
|
|
||||||
"nvidia-settings"
|
|
||||||
"idea"
|
|
||||||
];
|
|
||||||
overlays =
|
|
||||||
extraOverlays
|
|
||||||
++ (pkgs.lib.attrValues self.overlays)
|
|
||||||
++ [ inputs.nvim-treesitter-main.overlays.default ];
|
|
||||||
};
|
|
||||||
|
|
||||||
pkgs = mkPkgs nixpkgs [ ];
|
system.stateVersion = "19.09";
|
||||||
|
}
|
||||||
lib = nixpkgs.lib.extend (
|
)
|
||||||
self: super: {
|
];
|
||||||
my = import ./lib {
|
|
||||||
inherit pkgs inputs;
|
|
||||||
lib = self;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
lib = lib.my;
|
|
||||||
|
|
||||||
overlays = {
|
|
||||||
my = import ./overlay.nix;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations = (mapHosts ./hosts { }) // {
|
|
||||||
rpi3 = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "aarch64-linux";
|
|
||||||
specialArgs = {
|
|
||||||
inherit inputs;
|
|
||||||
};
|
|
||||||
modules = [ ./hosts/rpi3/default.nix ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.froidmpa-laptop = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit nixpkgs; };
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
./hardware/clevo-nl51ru.nix
|
||||||
|
./profiles/base.nix
|
||||||
|
./users
|
||||||
|
(
|
||||||
|
{
|
||||||
|
networking.hostName = "froidmpa-laptop";
|
||||||
|
|
||||||
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
|
|
||||||
|
home-manager.users.froidmpa = { pkgs, config, ... }: {
|
||||||
|
services.network-manager-applet.enable = true;
|
||||||
|
services.blueman-applet.enable = true;
|
||||||
|
services.grobi = {
|
||||||
|
enable = true;
|
||||||
|
executeAfter = [ "${pkgs.systemd}/bin/systemctl --user restart stalonetray" "${pkgs.feh}/bin/feh --bg-fill ~/.wallpaper.png" ];
|
||||||
|
rules = [
|
||||||
|
{
|
||||||
|
name = "External HDMI";
|
||||||
|
outputs_connected = [ "HDMI-1" ];
|
||||||
|
configure_single = "HDMI-1";
|
||||||
|
primary = true;
|
||||||
|
atomic = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Primary";
|
||||||
|
configure_single = "eDP";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "21.05";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.rpi3 = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
(
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
networking.hostName = "rpi3";
|
||||||
|
|
||||||
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
|
|
||||||
|
boot.loader.grub.enable = false;
|
||||||
|
boot.loader.generic-extlinux-compatible.enable = true;
|
||||||
|
boot.kernelParams = [ "cma=256M" ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-label/NIXOS_SD";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [{ device = "/swapfile"; size = 1024; }];
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
users.users.root.openssh.authorizedKeys.keyFiles = [
|
||||||
|
./ssh_keys/phfroidmont-desktop.pub
|
||||||
|
./ssh_keys/phfroidmont-laptop.pub
|
||||||
|
];
|
||||||
|
|
||||||
|
services.adguardhome = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
host = "0.0.0.0";
|
||||||
|
port = 80;
|
||||||
|
openFirewall = true;
|
||||||
|
|
||||||
|
mutableSettings = false;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
auth_attempts = 5;
|
||||||
|
block_auth_min = 15;
|
||||||
|
dns = {
|
||||||
|
bind_host = "0.0.0.0";
|
||||||
|
port = 53;
|
||||||
|
statistics_interval = 90;
|
||||||
|
querylog_enabled = true;
|
||||||
|
querylog_interval = 90;
|
||||||
|
upstream_dns = [
|
||||||
|
"tls://doh.mullvad.net"
|
||||||
|
"[/lan/]192.168.1.1"
|
||||||
|
"[//]192.168.1.1"
|
||||||
|
];
|
||||||
|
local_ptr_upstreams = [ "192.168.1.1" ];
|
||||||
|
use_private_ptr_resolvers = true;
|
||||||
|
resolve_clients = true;
|
||||||
|
bootstrap_dns = "9.9.9.10";
|
||||||
|
rewrites = [
|
||||||
|
{
|
||||||
|
domain = "rpi3";
|
||||||
|
answer = "192.168.1.2";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "rpi3.lan";
|
||||||
|
answer = "192.168.1.2";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 53 ];
|
||||||
|
networking.firewall.allowedUDPPorts = [ 53 ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
htop
|
||||||
|
];
|
||||||
|
|
||||||
|
system.stateVersion = "22.05";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.rpi2 = nixpkgs-stable.lib.nixosSystem {
|
||||||
|
system = "armv7l-linux";
|
||||||
|
modules = [
|
||||||
|
"${nixpkgs-stable}/nixos/modules/installer/sd-card/sd-image-raspberrypi.nix"
|
||||||
|
{
|
||||||
|
networking.hostName = "rpi2";
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
nixpkgs.crossSystem.system = "armv7l-linux";
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
users.users.root.openssh.authorizedKeys.keyFiles = [
|
||||||
|
./ssh_keys/phfroidmont-desktop.pub
|
||||||
|
./ssh_keys/phfroidmont-laptop.pub
|
||||||
|
];
|
||||||
|
system.stateVersion = "22.05";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
images.rpi2 = self.nixosConfigurations.rpi2.config.system.build.sdImage;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
66
hardware/clevo-nl51ru.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "nvme" "xhci_pci" "sdhci_pci" ];
|
||||||
|
initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
# Required, otherwise the kernel freezes on boot
|
||||||
|
kernelParams = [ "amd_iommu=on" "iommu=pt" "pci=noats" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
loader.systemd-boot.enable = true;
|
||||||
|
loader.efi.canTouchEfiVariables = true;
|
||||||
|
initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/1e900b2e-daea-4558-b18f-3d3a5843de61";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/a8abad9b-5615-4887-8431-3d80b78d073e";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/077C-758A";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[{ device = "/dev/disk/by-uuid/bb8fa9ef-9b8f-413d-913a-6c891649a954"; }];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
# Enable A2DP Sink
|
||||||
|
settings = {
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media,Socket";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Use full build to have Bluetooth support
|
||||||
|
package = pkgs.pulseaudioFull;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Enable touchpad support.
|
||||||
|
services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
services.logind.lidSwitch = "ignore";
|
||||||
|
|
||||||
|
}
|
||||||
51
hardware/desktop.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ];
|
||||||
|
initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
loader.systemd-boot.enable = true;
|
||||||
|
loader.efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/f1e21558-88e6-413e-b56a-04e0b25e9ddd";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/CCD1-0415";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home/froidmpa/Nextcloud" = {
|
||||||
|
device = "/dev/disk/by-uuid/a4ba8b21-ea33-4487-b6f6-9bb7470a0acb";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[{ device = "/dev/disk/by-uuid/f714775c-b5af-4c0c-8330-999b43db4794"; }];
|
||||||
|
|
||||||
|
nix.settings.max-jobs = lib.mkDefault 16;
|
||||||
|
networking.interfaces.enp31s0.useDHCP = true;
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||||
|
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
rocm-opencl-icd
|
||||||
|
rocm-opencl-runtime
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./hardware-configuration.nix ];
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
desktop.wm.enable = true;
|
|
||||||
editor = {
|
|
||||||
vim.enable = true;
|
|
||||||
emacs.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
flatpak.enable = true;
|
|
||||||
belgian-eid.enable = true;
|
|
||||||
docker.enable = true;
|
|
||||||
libvirt.enable = true;
|
|
||||||
languagetool.enable = true;
|
|
||||||
work-proxy.enable = true;
|
|
||||||
};
|
|
||||||
media = {
|
|
||||||
mpd.enable = true;
|
|
||||||
ncmpcpp.enable = true;
|
|
||||||
emulators.gc.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
lutris.enable = true;
|
|
||||||
};
|
|
||||||
ai.opencode.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
user.name = "froidmpa";
|
|
||||||
|
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
# nix = {
|
|
||||||
# distributedBuilds = true;
|
|
||||||
# buildMachines = [
|
|
||||||
# {
|
|
||||||
# hostName = "hel1.banditlair.com";
|
|
||||||
# sshUser = "nix-ssh";
|
|
||||||
# system = "x86_64-linux";
|
|
||||||
# supportedFeatures = [
|
|
||||||
# "nixos-test"
|
|
||||||
# "benchmark"
|
|
||||||
# "big-parallel"
|
|
||||||
# "kvm"
|
|
||||||
# ];
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# settings = {
|
|
||||||
# builders-use-substitutes = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.PasswordAuthentication = false;
|
|
||||||
listenAddresses = [
|
|
||||||
{
|
|
||||||
# Tailscale interface
|
|
||||||
addr = "100.64.0.3";
|
|
||||||
port = 22;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.${config.user.name} = {
|
|
||||||
openssh.authorizedKeys.keyFiles = [
|
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
|
||||||
../../ssh_keys/phfroidmont-stellaris.pub
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Allow to externally control MPD
|
|
||||||
networking.firewall.allowedTCPPorts = [ 6600 ];
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"DP-1, 4096x2160@240, 0x0, 1.5"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "20.09";
|
|
||||||
}
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
initrd.availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
initrd.kernelModules = [ "amdgpu" ];
|
|
||||||
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
loader.systemd-boot.enable = true;
|
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" = {
|
|
||||||
device = "/dev/disk/by-uuid/f1e21558-88e6-413e-b56a-04e0b25e9ddd";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/CCD1-0415";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/home/froidmpa/Nextcloud" = {
|
|
||||||
device = "/dev/disk/by-uuid/a4ba8b21-ea33-4487-b6f6-9bb7470a0acb";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/home/froidmpa/Backup" = {
|
|
||||||
device = "/dev/disk/by-uuid/7fdc4e44-ecb4-49c7-9fb0-cb1ef6235b05";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ { device = "/dev/disk/by-uuid/f714775c-b5af-4c0c-8330-999b43db4794"; } ];
|
|
||||||
|
|
||||||
powerManagement = {
|
|
||||||
cpuFreqGovernor = "performance";
|
|
||||||
powertop.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
|
|
||||||
nix.settings.max-jobs = lib.mkDefault 16;
|
|
||||||
networking.useNetworkd = true;
|
|
||||||
networking.interfaces.enp31s0.useDHCP = true;
|
|
||||||
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
rocmPackages.clr
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
|
|
||||||
services.resolved.dnssec = "false";
|
|
||||||
}
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
{ inputs, pkgs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
loader.grub.enable = false;
|
|
||||||
loader.generic-extlinux-compatible.enable = true;
|
|
||||||
kernelParams = [ "cma=256M" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/swapfile";
|
|
||||||
size = 1024;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
users.users.root.openssh.authorizedKeys.keyFiles = [
|
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
|
||||||
../../ssh_keys/phfroidmont-stellaris.pub
|
|
||||||
];
|
|
||||||
|
|
||||||
services.adguardhome = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
openFirewall = true;
|
|
||||||
|
|
||||||
mutableSettings = false;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
http = {
|
|
||||||
address = "0.0.0.0:80";
|
|
||||||
};
|
|
||||||
auth_attempts = 5;
|
|
||||||
block_auth_min = 15;
|
|
||||||
dns = {
|
|
||||||
bind_hosts = [ "0.0.0.0" ];
|
|
||||||
port = 53;
|
|
||||||
statistics_interval = 90;
|
|
||||||
upstream_dns = [
|
|
||||||
"tls://doh.mullvad.net"
|
|
||||||
"[/lan/]192.168.1.1"
|
|
||||||
"[//]192.168.1.1"
|
|
||||||
];
|
|
||||||
local_ptr_upstreams = [ "192.168.1.1" ];
|
|
||||||
use_private_ptr_resolvers = true;
|
|
||||||
resolve_clients = true;
|
|
||||||
bootstrap_dns = [ "9.9.9.10" ];
|
|
||||||
rewrites = [
|
|
||||||
{
|
|
||||||
domain = "rpi3";
|
|
||||||
answer = "192.168.1.2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
domain = "rpi3.lan";
|
|
||||||
answer = "192.168.1.2";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
querylog = {
|
|
||||||
enabled = true;
|
|
||||||
interval = "2160h";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "rpi3";
|
|
||||||
firewall.allowedTCPPorts = [
|
|
||||||
53
|
|
||||||
80
|
|
||||||
];
|
|
||||||
firewall.allowedUDPPorts = [ 53 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim
|
|
||||||
htop-vim
|
|
||||||
];
|
|
||||||
|
|
||||||
system.stateVersion = "22.05";
|
|
||||||
}
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./hardware-configuration.nix ];
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
desktop = {
|
|
||||||
wm.enable = true;
|
|
||||||
defaultBrowser = "brave";
|
|
||||||
};
|
|
||||||
editor = {
|
|
||||||
vim.enable = true;
|
|
||||||
emacs.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
flatpak.enable = true;
|
|
||||||
belgian-eid.enable = true;
|
|
||||||
docker.enable = true;
|
|
||||||
libvirt.enable = true;
|
|
||||||
languagetool.enable = true;
|
|
||||||
work-proxy.enable = true;
|
|
||||||
kanata.enable = true;
|
|
||||||
};
|
|
||||||
media = {
|
|
||||||
mpd.enable = true;
|
|
||||||
ncmpcpp.enable = true;
|
|
||||||
emulators.gc.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
lutris.enable = true;
|
|
||||||
};
|
|
||||||
ai.opencode.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Monitor backlight control
|
|
||||||
programs.light.enable = true;
|
|
||||||
|
|
||||||
services.tlp.enable = true;
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
hardware.tuxedo-drivers.enable = true;
|
|
||||||
hardware.tuxedo-rs = {
|
|
||||||
enable = true;
|
|
||||||
tailor-gui.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
# Enable A2DP Sink
|
|
||||||
settings = {
|
|
||||||
General = {
|
|
||||||
Enable = "Source,Sink,Media,Socket";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
services.blueman.enable = true;
|
|
||||||
|
|
||||||
services.logind.settings.Login.HandleLidSwitch = "ignore";
|
|
||||||
|
|
||||||
user.name = "phfroidmont";
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.network-manager-applet.enable = true;
|
|
||||||
services.blueman-applet.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
env = [
|
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
|
||||||
];
|
|
||||||
|
|
||||||
workspace = [
|
|
||||||
"w[tv1], gapsout:0, gapsin:0"
|
|
||||||
"f[1], gapsout:0, gapsin:0"
|
|
||||||
];
|
|
||||||
windowrulev2 = [
|
|
||||||
"bordersize 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
"rounding 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
"bordersize 0, floating:0, onworkspace:f[1]"
|
|
||||||
"rounding 0, floating:0, onworkspace:f[1]"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pipewire.wireplumber.extraConfig = {
|
|
||||||
"monitor.bluez.properties" = {
|
|
||||||
"bluez5.enable-sbc-xq" = true;
|
|
||||||
"bluez5.enable-msbc" = true;
|
|
||||||
"bluez5.enable-hw-volume" = true;
|
|
||||||
"bluez5.roles" = [
|
|
||||||
"hsp_hs"
|
|
||||||
"hsp_ag"
|
|
||||||
"hfp_hf"
|
|
||||||
"hfp_ag"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.PasswordAuthentication = false;
|
|
||||||
listenAddresses = [
|
|
||||||
{
|
|
||||||
# Tailscale interface
|
|
||||||
addr = "100.64.0.5";
|
|
||||||
port = 22;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
users.users.${config.user.name} = {
|
|
||||||
openssh.authorizedKeys.keyFiles = [
|
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
|
||||||
];
|
|
||||||
extraGroups = [ "video" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "25.05";
|
|
||||||
}
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
disko.devices = {
|
|
||||||
disk.main = {
|
|
||||||
type = "disk";
|
|
||||||
# Replace with your device, e.g. /dev/disk/by-id/nvme-Samsung_SSD_980_...
|
|
||||||
device = "/dev/disk/by-id/nvme-Samsung_SSD_9100_PRO_2TB_S7YFNJ0Y612225D";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
type = "ef00";
|
|
||||||
size = "512M";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
luks = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "luks";
|
|
||||||
name = "cryptroot";
|
|
||||||
settings = {
|
|
||||||
allowDiscards = true;
|
|
||||||
};
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [
|
|
||||||
"-L"
|
|
||||||
"nixos"
|
|
||||||
];
|
|
||||||
# Top-level btrfs mountpoint isn't used; subvols below define mounts
|
|
||||||
subvolumes = {
|
|
||||||
"@".mountpoint = "/";
|
|
||||||
"@home".mountpoint = "/home";
|
|
||||||
"@nix".mountpoint = "/nix";
|
|
||||||
"@log".mountpoint = "/var/log";
|
|
||||||
"@cache".mountpoint = "/var/cache";
|
|
||||||
|
|
||||||
# Common, fast, SSD-friendly defaults
|
|
||||||
"@".mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"ssd"
|
|
||||||
"autodefrag"
|
|
||||||
];
|
|
||||||
"@home".mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"ssd"
|
|
||||||
"autodefrag"
|
|
||||||
];
|
|
||||||
"@nix".mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
"@log".mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
"@cache".mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"sdhci_pci"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/60093dc5-7e4f-479d-8e6b-d4f5fedcb01f";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.luks.devices."cryptroot".device =
|
|
||||||
"/dev/disk/by-uuid/46f38e24-f03e-4e3b-9266-652340e1fa41";
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/4847-A536";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [
|
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home" = {
|
|
||||||
device = "/dev/disk/by-uuid/60093dc5-7e4f-479d-8e6b-d4f5fedcb01f";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@home" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nix" = {
|
|
||||||
device = "/dev/disk/by-uuid/60093dc5-7e4f-479d-8e6b-d4f5fedcb01f";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@nix" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/var/cache" = {
|
|
||||||
device = "/dev/disk/by-uuid/60093dc5-7e4f-479d-8e6b-d4f5fedcb01f";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@cache" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/var/log" = {
|
|
||||||
device = "/dev/disk/by-uuid/60093dc5-7e4f-479d-8e6b-d4f5fedcb01f";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@log" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
powerManagement.enable = false;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
open = true;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
prime = {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
amdgpuBusId = "PCI:6:0:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
rec {
|
|
||||||
# attrsToList
|
|
||||||
attrsToList = attrs: lib.mapAttrsToList (name: value: { inherit name value; }) attrs;
|
|
||||||
|
|
||||||
# mapFilterAttrs ::
|
|
||||||
# (name -> value -> bool)
|
|
||||||
# (name -> value -> { name = any; value = any; })
|
|
||||||
# attrs
|
|
||||||
mapFilterAttrs =
|
|
||||||
pred: f: attrs:
|
|
||||||
lib.filterAttrs pred (lib.mapAttrs' f attrs);
|
|
||||||
|
|
||||||
# Generate an attribute set by mapping a function over a list of values.
|
|
||||||
genAttrs' = values: f: lib.listToAttrs (map f values);
|
|
||||||
|
|
||||||
# anyAttrs :: (name -> value -> bool) attrs
|
|
||||||
anyAttrs = pred: attrs: lib.any (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
|
|
||||||
# countAttrs :: (name -> value -> bool) attrs
|
|
||||||
countAttrs = pred: attrs: lib.count (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
}
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) makeExtensible attrValues foldr;
|
|
||||||
inherit (modules) mapModules;
|
|
||||||
|
|
||||||
modules = import ./modules.nix {
|
|
||||||
inherit lib;
|
|
||||||
self.attrs = import ./attrs.nix {
|
|
||||||
inherit lib;
|
|
||||||
self = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mylib = makeExtensible (
|
|
||||||
self:
|
|
||||||
mapModules ./. (
|
|
||||||
file:
|
|
||||||
import file {
|
|
||||||
inherit
|
|
||||||
self
|
|
||||||
lib
|
|
||||||
pkgs
|
|
||||||
inputs
|
|
||||||
;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
in
|
|
||||||
mylib.extend (self: super: foldr (a: b: a // b) { } (attrValues super))
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
{ self, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (builtins)
|
|
||||||
attrValues
|
|
||||||
readDir
|
|
||||||
pathExists
|
|
||||||
concatLists
|
|
||||||
;
|
|
||||||
inherit (lib)
|
|
||||||
id
|
|
||||||
mapAttrsToList
|
|
||||||
filterAttrs
|
|
||||||
hasPrefix
|
|
||||||
hasSuffix
|
|
||||||
nameValuePair
|
|
||||||
removeSuffix
|
|
||||||
;
|
|
||||||
inherit (self.attrs) mapFilterAttrs;
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
mapModules =
|
|
||||||
dir: fn:
|
|
||||||
mapFilterAttrs (n: v: v != null && !(hasPrefix "_" n)) (
|
|
||||||
n: v:
|
|
||||||
let
|
|
||||||
path = "${toString dir}/${n}";
|
|
||||||
in
|
|
||||||
if v == "directory" && pathExists "${path}/default.nix" then
|
|
||||||
nameValuePair n (fn path)
|
|
||||||
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n then
|
|
||||||
nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else
|
|
||||||
nameValuePair "" null
|
|
||||||
) (readDir dir);
|
|
||||||
|
|
||||||
mapModules' = dir: fn: attrValues (mapModules dir fn);
|
|
||||||
|
|
||||||
mapModulesRec =
|
|
||||||
dir: fn:
|
|
||||||
mapFilterAttrs (n: v: v != null && !(hasPrefix "_" n)) (
|
|
||||||
n: v:
|
|
||||||
let
|
|
||||||
path = "${toString dir}/${n}";
|
|
||||||
in
|
|
||||||
if v == "directory" then
|
|
||||||
nameValuePair n (mapModulesRec path fn)
|
|
||||||
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n then
|
|
||||||
nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else
|
|
||||||
nameValuePair "" null
|
|
||||||
) (readDir dir);
|
|
||||||
|
|
||||||
mapModulesRec' =
|
|
||||||
dir: fn:
|
|
||||||
let
|
|
||||||
dirs = mapAttrsToList (k: _: "${dir}/${k}") (
|
|
||||||
filterAttrs (n: v: v == "directory" && !(hasPrefix "_" n)) (readDir dir)
|
|
||||||
);
|
|
||||||
files = attrValues (mapModules dir id);
|
|
||||||
paths = files ++ concatLists (map (d: mapModulesRec' d id) dirs);
|
|
||||||
in
|
|
||||||
map fn paths;
|
|
||||||
}
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
sys = "x86_64-linux";
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
mkHost =
|
|
||||||
path:
|
|
||||||
attrs@{
|
|
||||||
system ? sys,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit lib inputs system;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
nixpkgs.pkgs = pkgs;
|
|
||||||
nix.registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
networking.hostName = lib.mkDefault (lib.removeSuffix ".nix" (baseNameOf path));
|
|
||||||
}
|
|
||||||
(lib.filterAttrs (n: v: !lib.elem n [ "system" ]) attrs)
|
|
||||||
../common.nix
|
|
||||||
(import path)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
mapHosts =
|
|
||||||
dir:
|
|
||||||
attrs@{
|
|
||||||
system ? system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
lib.my.mapModules dir (hostPath: mkHost hostPath attrs);
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) mkOption types;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
mkOpt = type: default: mkOption { inherit type default; };
|
|
||||||
|
|
||||||
mkOpt' =
|
|
||||||
type: default: description:
|
|
||||||
mkOption { inherit type default description; };
|
|
||||||
|
|
||||||
mkBoolOpt =
|
|
||||||
default:
|
|
||||||
mkOption {
|
|
||||||
inherit default;
|
|
||||||
type = types.bool;
|
|
||||||
example = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.ai.opencode;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.ai.opencode = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.opencode = {
|
|
||||||
enable = true;
|
|
||||||
package = inputs.llm-agents.packages.${pkgs.system}.opencode;
|
|
||||||
settings = {
|
|
||||||
model = "glm_4_5_air";
|
|
||||||
permission = {
|
|
||||||
bash = "ask";
|
|
||||||
edit = "ask";
|
|
||||||
};
|
|
||||||
provider = {
|
|
||||||
vllm = {
|
|
||||||
npm = "@ai-sdk/openai-compatible";
|
|
||||||
name = "vLLM";
|
|
||||||
options = {
|
|
||||||
baseURL = "http://model1.lefoyer.lu:8030/v1";
|
|
||||||
apiKey = "dummy";
|
|
||||||
};
|
|
||||||
models = {
|
|
||||||
glm_4_5_air = {
|
|
||||||
name = "GLM 4.5 Air (local)";
|
|
||||||
temperature = true;
|
|
||||||
default = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
openai = {
|
|
||||||
models = {
|
|
||||||
"gpt-5.1-codex" = {
|
|
||||||
options = {
|
|
||||||
store = false;
|
|
||||||
# reasoningEffort = "high";
|
|
||||||
# textVerbosity = "medium";
|
|
||||||
# reasoningSummary = "auto";
|
|
||||||
include = [ "reasoning.encrypted_content" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"gpt-5.1-codex-max" = {
|
|
||||||
options = {
|
|
||||||
store = false;
|
|
||||||
include = [ "reasoning.encrypted_content" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
agent = {
|
|
||||||
build = {
|
|
||||||
mode = "primary";
|
|
||||||
temperature = 0.4;
|
|
||||||
};
|
|
||||||
plan = {
|
|
||||||
mode = "primary";
|
|
||||||
temperature = 0.4;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lsp = {
|
|
||||||
metals = {
|
|
||||||
command = [ "${pkgs.metals}/bin/metals" ];
|
|
||||||
extensions = [
|
|
||||||
".scala"
|
|
||||||
".sbt"
|
|
||||||
".sc"
|
|
||||||
];
|
|
||||||
initialization = {
|
|
||||||
statusBarProvider = "log-message";
|
|
||||||
doctorProvider = "json";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.apps.newsboat;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.apps.newsboat = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
programs.newsboat = {
|
|
||||||
enable = true;
|
|
||||||
autoFetchArticles = {
|
|
||||||
enable = true;
|
|
||||||
onCalendar = "hourly";
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
urls-source "ocnews"
|
|
||||||
ocnews-url "https://cloud.banditlair.com"
|
|
||||||
ocnews-login "paultrial"
|
|
||||||
ocnews-passwordeval "secret-tool lookup elfeed nextcloud"
|
|
||||||
|
|
||||||
cleanup-on-quit yes
|
|
||||||
|
|
||||||
bind gg everywhere home
|
|
||||||
bind G everywhere end
|
|
||||||
|
|
||||||
bind u everywhere toggle-article-read
|
|
||||||
|
|
||||||
bind , everywhere sort
|
|
||||||
|
|
||||||
bind ^u everywhere pageup
|
|
||||||
bind ^d everywhere pagedown
|
|
||||||
|
|
||||||
bind k everywhere up
|
|
||||||
bind j everywhere down
|
|
||||||
|
|
||||||
bind l feedlist open
|
|
||||||
bind l articlelist open
|
|
||||||
bind h articlelist quit
|
|
||||||
bind h article quit
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.apps.rofi;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.apps.rofi = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.rofi.override { plugins = [ pkgs.rofi-calc ]; };
|
|
||||||
terminal = "kitty";
|
|
||||||
extraConfig = {
|
|
||||||
icon-theme = "Paper";
|
|
||||||
cycle = true;
|
|
||||||
disable-history = false;
|
|
||||||
monitor = "-4";
|
|
||||||
|
|
||||||
# Vim-esque C-j/C-k as up/down in rofi
|
|
||||||
kb-accept-entry = "Return,Control+m,KP_Enter";
|
|
||||||
kb-row-down = "Down,Control+n,Control+j";
|
|
||||||
kb-remove-to-eol = "";
|
|
||||||
kb-row-up = "Up,Control+p,Control+k";
|
|
||||||
kb-remove-char-forward = "";
|
|
||||||
kb-remove-to-sol = "";
|
|
||||||
kb-page-prev = "Control+u";
|
|
||||||
kb-page-next = "Control+d";
|
|
||||||
};
|
|
||||||
theme = ./theme.rasi;
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
paper-icon-theme
|
|
||||||
rofi-power-menu
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
* {
|
|
||||||
accent: #83a598;
|
|
||||||
bg: #282828;
|
|
||||||
bg-light: #3c3836;
|
|
||||||
bg-focus: #212121;
|
|
||||||
bg-dark: #1d2021;
|
|
||||||
fg: #fbf1c7;
|
|
||||||
fg-list: #fbf1c7;
|
|
||||||
|
|
||||||
background-color: transparent;
|
|
||||||
text-color: @fg-list;
|
|
||||||
font: @text-font;
|
|
||||||
border-color: @bg-dark;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**** Layout ****/
|
|
||||||
window {
|
|
||||||
width: 1000px;
|
|
||||||
y-offset: -50px;
|
|
||||||
anchor: north;
|
|
||||||
location: center;
|
|
||||||
border: 1px;
|
|
||||||
border-radius: 6px;
|
|
||||||
children: [ inputbar, listview ];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
listview {
|
|
||||||
lines: 12;
|
|
||||||
fixed-height: false;
|
|
||||||
/* reverse: true; */
|
|
||||||
columns: 1;
|
|
||||||
scrollbar: true;
|
|
||||||
spacing: 1px;
|
|
||||||
/* Remove strange gap between listview and inputbar */
|
|
||||||
margin: -2px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
TODO Not supported in stable branch of rofi
|
|
||||||
@media only (max-height: 1080px) {
|
|
||||||
window {
|
|
||||||
y-offset: -30%;
|
|
||||||
}
|
|
||||||
listview {
|
|
||||||
lines: 14;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
scrollbar {
|
|
||||||
handle-width: 1px;
|
|
||||||
}
|
|
||||||
inputbar {
|
|
||||||
children: [ prompt, entry ];
|
|
||||||
border: 0 0 0;
|
|
||||||
}
|
|
||||||
prompt {
|
|
||||||
padding: 11px;
|
|
||||||
expand: false;
|
|
||||||
border: 0 1px 0 0;
|
|
||||||
margin: 0 -2px 0 0;
|
|
||||||
}
|
|
||||||
entry, element {
|
|
||||||
padding: 10px 13px;
|
|
||||||
}
|
|
||||||
textbox {
|
|
||||||
padding: 24px;
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**** Looks ****/
|
|
||||||
scrollbar {
|
|
||||||
background-color: @bg-dark;
|
|
||||||
handle-color: @accent;
|
|
||||||
border-color: @bg-dark;
|
|
||||||
}
|
|
||||||
listview, inputbar {
|
|
||||||
background-color: @bg-dark;
|
|
||||||
}
|
|
||||||
prompt {
|
|
||||||
text-color: @accent;
|
|
||||||
}
|
|
||||||
entry {
|
|
||||||
background-color: @bg-focus;
|
|
||||||
/* text-color: @fg; */
|
|
||||||
}
|
|
||||||
prompt {
|
|
||||||
background-color: @bg-light;
|
|
||||||
}
|
|
||||||
|
|
||||||
element {
|
|
||||||
background-color: @bg;
|
|
||||||
text-color: @fg;
|
|
||||||
}
|
|
||||||
element selected {
|
|
||||||
background-color: @bg-dark;
|
|
||||||
text-color: @accent;
|
|
||||||
}
|
|
||||||
7
modules/belgian-eid.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.pcscd.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
eid-mw
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,223 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
wallpaper = pkgs.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/AngelJumbo/gruvbox-wallpapers/main/wallpapers/photography/houseonthesideofalake.jpg";
|
|
||||||
sha256 = "sha256-obKI4qZvucogqRCl51lwV9X8SRaMqcbBwWMfc9TupIo=";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
options.modules.desktop = {
|
|
||||||
wallpaper = lib.mkOption {
|
|
||||||
type = lib.types.path;
|
|
||||||
default = wallpaper;
|
|
||||||
};
|
|
||||||
|
|
||||||
defaultBrowser = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "firefox";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.modules.desktop.wm.enable {
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
packages = with pkgs; [
|
|
||||||
noto-fonts-color-emoji
|
|
||||||
meslo-lg
|
|
||||||
pkgs.nerd-fonts.meslo-lg
|
|
||||||
pkgs.nerd-fonts.symbols-only
|
|
||||||
];
|
|
||||||
fontconfig.defaultFonts = {
|
|
||||||
monospace = [ "MesloLGS Nerd Font Mono" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.pam.loginLimits = [
|
|
||||||
{
|
|
||||||
domain = "*";
|
|
||||||
item = "nofile";
|
|
||||||
type = "-";
|
|
||||||
value = "65536";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.adb.enable = true;
|
|
||||||
|
|
||||||
programs.ssh.startAgent = true;
|
|
||||||
|
|
||||||
services.udisks2.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
services = {
|
|
||||||
nextcloud-client.enable = true;
|
|
||||||
udiskie.enable = true;
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSshSupport = false;
|
|
||||||
pinentry.package = pkgs.pinentry-gtk2;
|
|
||||||
};
|
|
||||||
unclutter.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
gpg.enable = true;
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
signing = {
|
|
||||||
key = lib.mkDefault "3AC6F170F01133CE393BCD94BE948AFD7E7873BE";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
user.name = "Paul-Henri Froidmont";
|
|
||||||
user.email = "git.contact-57n2p@froidmont.org";
|
|
||||||
init.defaultBranch = "master";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks."*" = {
|
|
||||||
forwardAgent = false;
|
|
||||||
addKeysToAgent = "no";
|
|
||||||
compression = false;
|
|
||||||
serverAliveInterval = 0;
|
|
||||||
serverAliveCountMax = 3;
|
|
||||||
hashKnownHosts = false;
|
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
|
||||||
controlMaster = "no";
|
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
|
||||||
controlPersist = "no";
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
# Force IPv4 otherwise git will try to use IPv6 which doesn't play well through a VPN
|
|
||||||
AddressFamily inet
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
bat.enable = true;
|
|
||||||
jq.enable = true;
|
|
||||||
fzf.enable = true;
|
|
||||||
lesspipe.enable = true;
|
|
||||||
zathura.enable = true;
|
|
||||||
pazi.enable = true;
|
|
||||||
|
|
||||||
broot = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
command-not-found.enable = true;
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
ocr = {
|
|
||||||
name = "OCR image";
|
|
||||||
exec = "${pkgs.writeScript "ocr" ''
|
|
||||||
${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | \
|
|
||||||
${pkgs.tesseract}/bin/tesseract stdin stdout -l eng+fre | \
|
|
||||||
${pkgs.wl-clipboard}/bin/wl-copy
|
|
||||||
''}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
defaultApplications = {
|
|
||||||
"inode/directory" = "joshuto.desktop";
|
|
||||||
|
|
||||||
"text/html" = "${config.modules.desktop.defaultBrowser}.desktop";
|
|
||||||
"x-scheme-handler/http" = "${config.modules.desktop.defaultBrowser}.desktop";
|
|
||||||
"x-scheme-handler/https" = "${config.modules.desktop.defaultBrowser}.desktop";
|
|
||||||
"x-scheme-handler/about" = "${config.modules.desktop.defaultBrowser}.desktop";
|
|
||||||
|
|
||||||
"image/png" = "swayimg.desktop";
|
|
||||||
"image/webp" = "swayimg.desktop";
|
|
||||||
"image/jpeg" = "swayimg.desktop";
|
|
||||||
"image/gif" = "mpv.desktop";
|
|
||||||
"image/*" = "swayimg.desktop";
|
|
||||||
"audio/*" = "mpv.desktop";
|
|
||||||
"video/*" = "mpv.desktop";
|
|
||||||
|
|
||||||
"application/zip" = "ark.desktop";
|
|
||||||
"application/rar" = "ark.desktop";
|
|
||||||
"application/7z" = "ark.desktop";
|
|
||||||
"application/*tar" = "ark.desktop";
|
|
||||||
"application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop";
|
|
||||||
|
|
||||||
"application/msword" = "onlyoffice-desktopeditors.desktop";
|
|
||||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation" =
|
|
||||||
"onlyoffice-desktopeditors.desktop";
|
|
||||||
"application/vnd.openxmlformats-officedocument*" = "onlyoffice-desktopeditors.desktop";
|
|
||||||
|
|
||||||
"text/*" = "nvim.desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
|
|
||||||
keyboard = {
|
|
||||||
layout = "fr";
|
|
||||||
options = [ "caps:escape" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
EDITOR = "vim";
|
|
||||||
NIXOS_OZONE_WL = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
packages =
|
|
||||||
(with pkgs; [
|
|
||||||
brave
|
|
||||||
ungoogled-chromium
|
|
||||||
mullvad-browser
|
|
||||||
keepassxc
|
|
||||||
krita
|
|
||||||
swayimg
|
|
||||||
mpv
|
|
||||||
mumble
|
|
||||||
libreoffice-fresh
|
|
||||||
signal-desktop
|
|
||||||
onlyoffice-desktopeditors
|
|
||||||
thunderbird
|
|
||||||
portfolio
|
|
||||||
gnucash
|
|
||||||
transmission-remote-gtk
|
|
||||||
|
|
||||||
scala-cli
|
|
||||||
beamMinimal27Packages.elixir
|
|
||||||
jdk
|
|
||||||
jetbrains.idea-oss
|
|
||||||
jetbrains.idea
|
|
||||||
httpie
|
|
||||||
|
|
||||||
zsh-syntax-highlighting
|
|
||||||
R
|
|
||||||
tldr
|
|
||||||
kdePackages.ark
|
|
||||||
perf
|
|
||||||
keymapp
|
|
||||||
presenterm
|
|
||||||
|
|
||||||
ledger-live-desktop
|
|
||||||
monero-gui
|
|
||||||
])
|
|
||||||
++ [ pkgs.jellyfin-mpv-shim ];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
hardware.keyboard.zsa.enable = true;
|
|
||||||
hardware.ledger.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.dunst;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.dunst = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
services.dunst = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
alignment = "left";
|
|
||||||
monitor = 0;
|
|
||||||
browser = "firefox -new-tab";
|
|
||||||
corner_radius = 5;
|
|
||||||
dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst";
|
|
||||||
follow = "none";
|
|
||||||
origin = "top-right";
|
|
||||||
width = 440;
|
|
||||||
offset = "26x26";
|
|
||||||
history_length = 20;
|
|
||||||
icon_position = "right";
|
|
||||||
horizontal_padding = 16;
|
|
||||||
ignore_newline = "no";
|
|
||||||
separator_color = "auto";
|
|
||||||
separator_height = 4;
|
|
||||||
line_height = 0;
|
|
||||||
max_icon_size = 64;
|
|
||||||
padding = 20;
|
|
||||||
shrink = "no";
|
|
||||||
transparency = 5;
|
|
||||||
font = "monospace 14";
|
|
||||||
idle_threshold = 120;
|
|
||||||
indicate_hidden = "yes";
|
|
||||||
markup = "full";
|
|
||||||
format = "<b>%s (%a)</b>\\n%b";
|
|
||||||
show_age_threshold = 60;
|
|
||||||
show_indicators = "yes";
|
|
||||||
word_wrap = "yes";
|
|
||||||
sticky_history = "yes";
|
|
||||||
sort = "yes";
|
|
||||||
frame_width = 1;
|
|
||||||
frame_color = "#1d2021";
|
|
||||||
};
|
|
||||||
urgency_low = {
|
|
||||||
foreground = "#ebdbb2";
|
|
||||||
background = "#3c3836";
|
|
||||||
timeout = 8;
|
|
||||||
};
|
|
||||||
urgency_normal = {
|
|
||||||
foreground = "#ebdbb2";
|
|
||||||
background = "#32302f";
|
|
||||||
timeout = 14;
|
|
||||||
};
|
|
||||||
urgency_critical = {
|
|
||||||
foreground = "#32302f";
|
|
||||||
background = "#cc241d";
|
|
||||||
timeout = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.file-manager;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.file-manager = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
programs.yazi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.yazi;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
manager = {
|
|
||||||
sort_by = "alphabetical";
|
|
||||||
linemode = "mtime";
|
|
||||||
};
|
|
||||||
preview = {
|
|
||||||
max_width = 1200;
|
|
||||||
max_height = 1800;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
keymap = {
|
|
||||||
manager.prepend_keymap = [
|
|
||||||
{
|
|
||||||
on = [ "<C-s>" ];
|
|
||||||
run = ''shell "$SHELL" --block --confirm'';
|
|
||||||
desc = "Open shell here";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
on = [ "y" ];
|
|
||||||
run = [
|
|
||||||
"yank"
|
|
||||||
''
|
|
||||||
shell --confirm 'for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'
|
|
||||||
''
|
|
||||||
];
|
|
||||||
desc = "Copy files to clipboard";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
input.prepend_keymap = [
|
|
||||||
{
|
|
||||||
on = [ "<Esc>" ];
|
|
||||||
run = "close";
|
|
||||||
desc = "Cancel input";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
status = {
|
|
||||||
separator_open = "";
|
|
||||||
separator_close = "";
|
|
||||||
separator_style = {
|
|
||||||
fg = "black";
|
|
||||||
bg = "black";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
ffmpegthumbnailer
|
|
||||||
unar
|
|
||||||
poppler
|
|
||||||
fd
|
|
||||||
ripgrep
|
|
||||||
ueberzugpp
|
|
||||||
exiftool
|
|
||||||
chafa
|
|
||||||
xdg-utils
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.htop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.htop = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
programs.htop = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.htop-vim;
|
|
||||||
settings =
|
|
||||||
{
|
|
||||||
hide_userland_threads = true;
|
|
||||||
highlight_base_name = true;
|
|
||||||
vim_mode = true;
|
|
||||||
fields = with config.lib.htop.fields; [
|
|
||||||
PID
|
|
||||||
USER
|
|
||||||
M_RESIDENT
|
|
||||||
M_SHARE
|
|
||||||
STATE
|
|
||||||
PERCENT_CPU
|
|
||||||
PERCENT_MEM
|
|
||||||
IO_RATE
|
|
||||||
TIME
|
|
||||||
COMM
|
|
||||||
];
|
|
||||||
}
|
|
||||||
// (
|
|
||||||
with config.lib.htop;
|
|
||||||
leftMeters [
|
|
||||||
(bar "LeftCPUs2")
|
|
||||||
(bar "CPU")
|
|
||||||
(bar "Memory")
|
|
||||||
(bar "Swap")
|
|
||||||
]
|
|
||||||
)
|
|
||||||
// (
|
|
||||||
with config.lib.htop;
|
|
||||||
rightMeters [
|
|
||||||
(bar "RightCPUs2")
|
|
||||||
(text "Tasks")
|
|
||||||
(text "LoadAverage")
|
|
||||||
(text "Uptime")
|
|
||||||
]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.terminal;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.terminal = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
shellIntegration.enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
scrollback_lines = 65535;
|
|
||||||
enable_audio_bell = false;
|
|
||||||
font_family = "Meslo LG S";
|
|
||||||
font_size = 10;
|
|
||||||
symbol_map = "U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d4,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f532,U+f0001-U+f1af0 Symbols Nerd Font Mono";
|
|
||||||
allow_remote_control = "yes";
|
|
||||||
listen_on = "unix:@mykitty";
|
|
||||||
};
|
|
||||||
keybindings = {
|
|
||||||
"ctrl+up" = "change_font_size all +2.0";
|
|
||||||
"ctrl+down" = "change_font_size all -2.0";
|
|
||||||
"shift+page_up" = "scroll_page_up";
|
|
||||||
"shift+page_down" = "scroll_page_down";
|
|
||||||
"ctrl+shift+u" = "scroll_to_prompt -1";
|
|
||||||
"ctrl+shift+d" = "scroll_to_prompt 1";
|
|
||||||
"ctrl+shift+t" = "new_tab_with_cwd !neighbor";
|
|
||||||
"ctrl+," = "previous_tab";
|
|
||||||
"ctrl+;" = "next_tab";
|
|
||||||
"ctrl+shift+," = "move_tab_backward";
|
|
||||||
"ctrl+shift+;" = "move_tab_forward";
|
|
||||||
};
|
|
||||||
themeFile = "gruvbox-dark";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
@define-color accent_color #83a598;
|
|
||||||
@define-color accent_bg_color mix(#83a598, #282828,0.3);
|
|
||||||
@define-color accent_fg_color #d5c4a1;
|
|
||||||
@define-color destructive_color #83a598;
|
|
||||||
@define-color destructive_bg_color mix(#83a598, #282828,0.3);
|
|
||||||
@define-color destructive_fg_color #d5c4a1;
|
|
||||||
@define-color success_color #8ff0a4;
|
|
||||||
@define-color success_bg_color #26a269;
|
|
||||||
@define-color success_fg_color #d5c4a1;
|
|
||||||
@define-color warning_color #f8e45c;
|
|
||||||
@define-color warning_bg_color #cd9309;
|
|
||||||
@define-color warning_fg_color rgba(0, 0, 0, 0.8);
|
|
||||||
@define-color error_color #ff7b63;
|
|
||||||
@define-color error_bg_color mix(#83a598, #282828,0.3);
|
|
||||||
@define-color error_fg_color #d5c4a1;
|
|
||||||
@define-color window_bg_color #282828;
|
|
||||||
@define-color window_fg_color #d5c4a1;
|
|
||||||
@define-color view_bg_color #3c3836;
|
|
||||||
@define-color view_fg_color #d5c4a1;
|
|
||||||
@define-color headerbar_bg_color mix(#282828,black,0.2);
|
|
||||||
@define-color headerbar_fg_color #d5c4a1;
|
|
||||||
@define-color headerbar_border_color #d5c4a1;
|
|
||||||
@define-color headerbar_backdrop_color @window_bg_color;
|
|
||||||
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
|
|
||||||
@define-color card_bg_color rgba(255, 255, 255, 0.08);
|
|
||||||
@define-color card_fg_color #d5c4a1;
|
|
||||||
@define-color card_shade_color rgba(0, 0, 0, 0.36);
|
|
||||||
@define-color dialog_bg_color #665c54;
|
|
||||||
@define-color dialog_fg_color #d5c4a1;
|
|
||||||
@define-color popover_bg_color #665c54;
|
|
||||||
@define-color popover_fg_color #d5c4a1;
|
|
||||||
@define-color shade_color rgba(0,0,0,0.36);
|
|
||||||
@define-color scrollbar_outline_color rgba(0,0,0,0.5);
|
|
||||||
@define-color blue_1 #83a598;
|
|
||||||
@define-color blue_2 #83a598;
|
|
||||||
@define-color blue_3 #83a598;
|
|
||||||
@define-color blue_4 #83a598;
|
|
||||||
@define-color blue_5 #83a598;
|
|
||||||
@define-color green_1 #b8bb26;
|
|
||||||
@define-color green_2 #b8bb26;
|
|
||||||
@define-color green_3 #b8bb26;
|
|
||||||
@define-color green_4 #b8bb26;
|
|
||||||
@define-color green_5 #b8bb26;
|
|
||||||
@define-color yellow_1 #fabd2f;
|
|
||||||
@define-color yellow_2 #fabd2f;
|
|
||||||
@define-color yellow_3 #fabd2f;
|
|
||||||
@define-color yellow_4 #fabd2f;
|
|
||||||
@define-color yellow_5 #fabd2f;
|
|
||||||
@define-color orange_1 #fe8019;
|
|
||||||
@define-color orange_2 #fe8019;
|
|
||||||
@define-color orange_3 #fe8019;
|
|
||||||
@define-color orange_4 #fe8019;
|
|
||||||
@define-color orange_5 #fe8019;
|
|
||||||
@define-color red_1 #fb4934;
|
|
||||||
@define-color red_2 #fb4934;
|
|
||||||
@define-color red_3 #fb4934;
|
|
||||||
@define-color red_4 #fb4934;
|
|
||||||
@define-color red_5 #fb4934;
|
|
||||||
@define-color purple_1 #d3869b;
|
|
||||||
@define-color purple_2 #d3869b;
|
|
||||||
@define-color purple_3 #d3869b;
|
|
||||||
@define-color purple_4 #d3869b;
|
|
||||||
@define-color purple_5 #d3869b;
|
|
||||||
@define-color brown_1 #d65d0e;
|
|
||||||
@define-color brown_2 #d65d0e;
|
|
||||||
@define-color brown_3 #d65d0e;
|
|
||||||
@define-color brown_4 #d65d0e;
|
|
||||||
@define-color brown_5 #d65d0e;
|
|
||||||
@define-color light_1 #d5c4a1;
|
|
||||||
@define-color light_2 #f6f5f4;
|
|
||||||
@define-color light_3 #deddda;
|
|
||||||
@define-color light_4 #c0bfbc;
|
|
||||||
@define-color light_5 #9a9996;
|
|
||||||
@define-color dark_1 mix(#282828,white,0.5);
|
|
||||||
@define-color dark_2 mix(#282828,white,0.2);
|
|
||||||
@define-color dark_3 #282828;
|
|
||||||
@define-color dark_4 mix(#282828,black,0.2);
|
|
||||||
@define-color dark_5 mix(#282828,black,0.4);
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.themes.gtk;
|
|
||||||
|
|
||||||
gruvboxPlus = pkgs.stdenv.mkDerivation rec {
|
|
||||||
name = "gruvbox-plus";
|
|
||||||
version = "6.2.0";
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases/download/v${version}/gruvbox-plus-icon-pack-${version}.zip";
|
|
||||||
sha256 = "sha256-D+SPhucHU4Riz0mzU1LnaEkkaQt+blJMAsA5r6fTAQ0=";
|
|
||||||
};
|
|
||||||
dontUnpack = true;
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
${pkgs.unzip}/bin/unzip $src -d $out/
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.themes.gtk = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
systemd.packages = [ pkgs.dconf ];
|
|
||||||
|
|
||||||
services.dbus.packages = with pkgs; [ dconf ];
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
cursorTheme = {
|
|
||||||
package = pkgs.paper-icon-theme;
|
|
||||||
name = "Paper";
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
package = pkgs.adw-gtk3;
|
|
||||||
name = "adw-gtk3";
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
package = gruvboxPlus;
|
|
||||||
name = "GruvboxPlus";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"gtk-3.0/gtk.css" = {
|
|
||||||
source = ./gtk.css;
|
|
||||||
};
|
|
||||||
"gtk-4.0/gtk.css" = {
|
|
||||||
source = ./gtk.css;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
pointerCursor = {
|
|
||||||
package = pkgs.paper-icon-theme;
|
|
||||||
name = "Paper";
|
|
||||||
size = 24;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.themes.qt;
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.themes.qt = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
libsForQt5.qt5.qtquickcontrols2
|
|
||||||
libsForQt5.qt5.qtgraphicaleffects
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "gtk";
|
|
||||||
style = {
|
|
||||||
name = "adwaita-dark";
|
|
||||||
package = pkgs.adwaita-qt;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.vscode;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.vscode = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vscodium;
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
|
||||||
pkief.material-icon-theme
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
arrterian.nix-env-selector
|
|
||||||
scala-lang.scala
|
|
||||||
scalameta.metals
|
|
||||||
hashicorp.terraform
|
|
||||||
bradlc.vscode-tailwindcss
|
|
||||||
asciidoctor.asciidoctor-vscode
|
|
||||||
];
|
|
||||||
userSettings = {
|
|
||||||
"editor.formatOnSave" = true;
|
|
||||||
"editor.quickSuggestions" = {
|
|
||||||
"strings" = true;
|
|
||||||
};
|
|
||||||
"tailwindCSS.includeLanguages" = {
|
|
||||||
"scala" = "html";
|
|
||||||
};
|
|
||||||
"tailwindCSS.experimental.classRegex" = [
|
|
||||||
[
|
|
||||||
"cls\\(([^)]*)\\)"
|
|
||||||
"\"([^']*)\""
|
|
||||||
]
|
|
||||||
[
|
|
||||||
"cls\\s*:=\\s*\\(?([^,^\\n^\\)]*)"
|
|
||||||
"\"([^']*)\""
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
"files.autoSave" = "onFocusChange";
|
|
||||||
"files.watcherExclude" = {
|
|
||||||
"**/.bloop" = true;
|
|
||||||
"**/.metals" = true;
|
|
||||||
"**/.ammonite" = true;
|
|
||||||
};
|
|
||||||
"gruvboxMaterial.darkContrast" = "hard";
|
|
||||||
"metals.millScript" = "mill";
|
|
||||||
"nix.enableLanguageServer" = true;
|
|
||||||
"terminal.integrated.confirmOnExit" = "hasChildProcesses";
|
|
||||||
"terraform.languageServer" = {
|
|
||||||
"external" = true;
|
|
||||||
"pathToBinary" = "";
|
|
||||||
"args" = [ "serve" ];
|
|
||||||
"maxNumberOfProblems" = 100;
|
|
||||||
"trace.server" = "off";
|
|
||||||
};
|
|
||||||
"workbench.colorTheme" = "Gruvbox Material Dark";
|
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
|
||||||
"asciidoc.use_kroki" = true;
|
|
||||||
"explorer.confirmDelete" = false;
|
|
||||||
"explorer.confirmDragAndDrop" = false;
|
|
||||||
"terminal.integrated.shellIntegration.enabled" = false;
|
|
||||||
"terminal.external.linuxExec" = "kitty";
|
|
||||||
"terminal.integrated.scrollback" = 65535;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,472 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.wm;
|
|
||||||
term = "${config.home-manager.users.${config.user.name}.programs.kitty.package}/bin/kitty";
|
|
||||||
wallpaper = config.modules.desktop.wallpaper;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.wm = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
desktop = {
|
|
||||||
themes = {
|
|
||||||
gtk.enable = true;
|
|
||||||
qt.enable = true;
|
|
||||||
};
|
|
||||||
terminal.enable = true;
|
|
||||||
file-manager.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
dunst.enable = true;
|
|
||||||
htop.enable = true;
|
|
||||||
};
|
|
||||||
hardware = {
|
|
||||||
audio.enable = true;
|
|
||||||
};
|
|
||||||
apps = {
|
|
||||||
rofi.enable = true;
|
|
||||||
newsboat.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
settings = {
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"XCURSOR_SIZE,24"
|
|
||||||
"WLR_NO_HARDWARE_CURSORS,1"
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
layout = "dwindle";
|
|
||||||
gaps_in = 7;
|
|
||||||
gaps_out = 14;
|
|
||||||
border_size = 2;
|
|
||||||
"col.active_border" = "rgb(B28121)";
|
|
||||||
"col.inactive_border" = "rgb(504945)";
|
|
||||||
no_focus_fallback = false;
|
|
||||||
resize_on_border = false;
|
|
||||||
hover_icon_on_border = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
preserve_split = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
debug = {
|
|
||||||
disable_logs = false;
|
|
||||||
enable_stdout_logs = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "fr";
|
|
||||||
kb_options = "caps:escape";
|
|
||||||
numlock_by_default = "true";
|
|
||||||
touchpad = {
|
|
||||||
natural_scroll = false;
|
|
||||||
disable_while_typing = true;
|
|
||||||
tap-to-click = false;
|
|
||||||
middle_button_emulation = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gesture = [
|
|
||||||
"3, horizontal, workspace"
|
|
||||||
];
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 2, default, popin 80%"
|
|
||||||
"windowsOut, 1, 2, default, popin 85%"
|
|
||||||
"windowsMove, 1, 2, default"
|
|
||||||
"workspaces, 1, 2, default"
|
|
||||||
"specialWorkspace, 1, 2, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
"$mod, Return, exec, ${term}"
|
|
||||||
"$mod, C, killactive"
|
|
||||||
# "$mod SHIFT, Q, exit"
|
|
||||||
"$mod SHIFT, A, exec, ${term} -e pulsemixer"
|
|
||||||
"$mod, W, exec, firefox"
|
|
||||||
"$mod, R, exec, ${term} -e yazi"
|
|
||||||
"$mod, E, exec, emacsclient -c"
|
|
||||||
"$mod, N, exec, ${term} -e newsboat"
|
|
||||||
"$mod, I, exec, ${term} -e htop"
|
|
||||||
"$mod, M, exec, ${term} -e ncmpcpp"
|
|
||||||
"$mod, V, exec, ${term} -e ncmpcpp -s visualizer"
|
|
||||||
"$mod, T, togglefloating"
|
|
||||||
"$mod, D, exec, rofi -show drun -show-icons"
|
|
||||||
"$mod SHIFT, P, exec, rofi -show p -modi p:rofi-power-menu"
|
|
||||||
|
|
||||||
# Layout manipulation
|
|
||||||
"$mod SHIFT, O, layoutmsg, togglesplit"
|
|
||||||
"$mod, comma, splitratio, -0.1"
|
|
||||||
"$mod, semicolon, splitratio, +0.1"
|
|
||||||
|
|
||||||
"$mod, F, fullscreen, 0"
|
|
||||||
"$mod, X, exec, swaylock"
|
|
||||||
|
|
||||||
# Move focus
|
|
||||||
"$mod, H, movefocus, l"
|
|
||||||
"$mod, L, movefocus, r"
|
|
||||||
"$mod, K, movefocus, u"
|
|
||||||
"$mod, J, movefocus, d"
|
|
||||||
"$mod, left, movefocus, l"
|
|
||||||
"$mod, right, movefocus, r"
|
|
||||||
"$mod, up, movefocus, u"
|
|
||||||
"$mod, down, movefocus, d"
|
|
||||||
|
|
||||||
# Move window
|
|
||||||
"$mod SHIFT, H, movewindow, l"
|
|
||||||
"$mod SHIFT, L, movewindow, r"
|
|
||||||
"$mod SHIFT, K, movewindow, u"
|
|
||||||
"$mod SHIFT, J, movewindow, d"
|
|
||||||
"$mod SHIFT, left, movewindow, l"
|
|
||||||
"$mod SHIFT, right, movewindow, r"
|
|
||||||
"$mod SHIFT, up, movewindow, u"
|
|
||||||
"$mod SHIFT, down, movewindow, d"
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
"$mod, code:10, moveworkspacetomonitor, 1 current"
|
|
||||||
"$mod, code:10, workspace, 1"
|
|
||||||
"$mod, 1, moveworkspacetomonitor, 1 current"
|
|
||||||
"$mod, 1, workspace, 1"
|
|
||||||
"$mod, code:11, moveworkspacetomonitor, 2 current"
|
|
||||||
"$mod, code:11, workspace, 2"
|
|
||||||
"$mod, 2, moveworkspacetomonitor, 2 current"
|
|
||||||
"$mod, 2, workspace, 2"
|
|
||||||
"$mod, code:12, moveworkspacetomonitor, 3 current"
|
|
||||||
"$mod, code:12, workspace, 3"
|
|
||||||
"$mod, 3, moveworkspacetomonitor, 3 current"
|
|
||||||
"$mod, 3, workspace, 3"
|
|
||||||
"$mod, code:13, moveworkspacetomonitor, 4 current"
|
|
||||||
"$mod, code:13, workspace, 4"
|
|
||||||
"$mod, 4, moveworkspacetomonitor, 4 current"
|
|
||||||
"$mod, 4, workspace, 4"
|
|
||||||
"$mod, code:14, moveworkspacetomonitor, 5 current"
|
|
||||||
"$mod, code:14, workspace, 5"
|
|
||||||
"$mod, 5, moveworkspacetomonitor, 5 current"
|
|
||||||
"$mod, 5, workspace, 5"
|
|
||||||
"$mod, code:15, moveworkspacetomonitor, 6 current"
|
|
||||||
"$mod, code:15, workspace, 6"
|
|
||||||
"$mod, 6, moveworkspacetomonitor, 6 current"
|
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, code:16, moveworkspacetomonitor, 7 current"
|
|
||||||
"$mod, code:16, workspace, 7"
|
|
||||||
"$mod, 7, moveworkspacetomonitor, 7 current"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, code:17, moveworkspacetomonitor, 8 current"
|
|
||||||
"$mod, code:17, workspace, 8"
|
|
||||||
"$mod, 8, moveworkspacetomonitor, 8 current"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, code:18, moveworkspacetomonitor, 9 current"
|
|
||||||
"$mod, code:18, workspace, 9"
|
|
||||||
"$mod, 9, moveworkspacetomonitor, 9 current"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, code:19, moveworkspacetomonitor, 10 current"
|
|
||||||
"$mod, code:19, workspace, 10"
|
|
||||||
"$mod, 0, moveworkspacetomonitor, 10 current"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
"$mod SHIFT, code:10, movetoworkspace, 1"
|
|
||||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
|
||||||
"$mod SHIFT, code:11, movetoworkspace, 2"
|
|
||||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
|
||||||
"$mod SHIFT, code:12, movetoworkspace, 3"
|
|
||||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
|
||||||
"$mod SHIFT, code:13, movetoworkspace, 4"
|
|
||||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
|
||||||
"$mod SHIFT, code:14, movetoworkspace, 5"
|
|
||||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"$mod SHIFT, code:15, movetoworkspace, 6"
|
|
||||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"$mod SHIFT, code:16, movetoworkspace, 7"
|
|
||||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"$mod SHIFT, code:17, movetoworkspace, 8"
|
|
||||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"$mod SHIFT, code:18, movetoworkspace, 9"
|
|
||||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"$mod SHIFT, code:19, movetoworkspace, 10"
|
|
||||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
"$mod, mouse_down, workspace, e-1"
|
|
||||||
"$mod, mouse_up, workspace, e+1"
|
|
||||||
|
|
||||||
# Media controls
|
|
||||||
", XF86AudioRaiseVolume, exec, pulsemixer --change-volume +1"
|
|
||||||
", XF86AudioLowerVolume, exec, pulsemixer --change-volume -1"
|
|
||||||
# ", XF86AudioMicMute, exec, pulsemixer --toggle-mute"
|
|
||||||
", XF86AudioMute, exec, pulsemixer --toggle-mute"
|
|
||||||
", XF86AudioPlay, exec, mpc toggle"
|
|
||||||
", XF86AudioPause, exec, mpc toggle"
|
|
||||||
", XF86AudioNext, exec, mpc next"
|
|
||||||
", XF86AudioPrev, exec, mpc prev"
|
|
||||||
"$mod, P, exec, mpc toggle"
|
|
||||||
|
|
||||||
", XF86MonBrightnessDown, exec, light -U 5"
|
|
||||||
", XF86MonBrightnessUp, exec, light -A 5"
|
|
||||||
|
|
||||||
", Print, exec, grim -g \"$(slurp)\" - | satty -f -"
|
|
||||||
"SHIFT, Print, exec, grim - | satty -f -"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"${pkgs.swaybg}/bin/swaybg --image ${wallpaper} --mode fill"
|
|
||||||
"keepassxc"
|
|
||||||
];
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
force_default_wallpaper = 0;
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
animate_manual_resizes = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
settings = {
|
|
||||||
mainBar = {
|
|
||||||
layer = "top";
|
|
||||||
position = "bottom";
|
|
||||||
height = 25;
|
|
||||||
spacing = 2;
|
|
||||||
reload-style-on-change = true;
|
|
||||||
modules-left = [
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
"disk"
|
|
||||||
"hyprland/window"
|
|
||||||
];
|
|
||||||
modules-center = [ "hyprland/workspaces" ];
|
|
||||||
modules-right = [
|
|
||||||
"mpd"
|
|
||||||
"battery"
|
|
||||||
"clock"
|
|
||||||
"tray"
|
|
||||||
];
|
|
||||||
|
|
||||||
tray = {
|
|
||||||
icon-size = 14;
|
|
||||||
spacing = 5;
|
|
||||||
show-passive-items = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu = {
|
|
||||||
interval = 1;
|
|
||||||
format = " {usage}%";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
memory = {
|
|
||||||
interval = 1;
|
|
||||||
format = " {percentage}%";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
disk = {
|
|
||||||
interval = 60;
|
|
||||||
format = " {free}";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
clock = {
|
|
||||||
format = " {:%A, %d %h %H:%M}";
|
|
||||||
format-alt = " {:%d/%m/%Y %H:%M}";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
style = ''
|
|
||||||
* {
|
|
||||||
border: none;
|
|
||||||
font-family: MesloLGS Nerd Font;
|
|
||||||
font-size: 12px;
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
background: #282828;
|
|
||||||
border: 0px solid;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: #282828;
|
|
||||||
color: #ebdbb2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 0.6em;
|
|
||||||
color: #a89984;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
color: #ebdbb2;
|
|
||||||
background: #665c54;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
color: #1d2021;
|
|
||||||
background: #fb4934;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
background: #665c54;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network,
|
|
||||||
#workspaces,
|
|
||||||
#bluetooth,
|
|
||||||
#tray {
|
|
||||||
color: #ebdbb2;
|
|
||||||
padding: 0 5px;
|
|
||||||
margin: 0 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#disk,
|
|
||||||
#clock {
|
|
||||||
padding: 0 5px;
|
|
||||||
margin: 0 5px;
|
|
||||||
color: #83a598;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
package = pkgs.waybar.override { wireplumberSupport = false; };
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.satty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
output-filename = "${config.home.homeDirectory}/Pictures/Screenshots/satty_%Y-%m-%d_%H-%M-%S.png";
|
|
||||||
copy-command = "wl-copy";
|
|
||||||
actions-on-enter = [
|
|
||||||
"save-to-clipboard"
|
|
||||||
"save-to-file"
|
|
||||||
"exit"
|
|
||||||
];
|
|
||||||
early-exit = true;
|
|
||||||
save-after-copy = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.activation.ensureScreenshotsDir = ''
|
|
||||||
${pkgs.coreutils}/bin/mkdir -p "$HOME/Pictures/Screenshots"
|
|
||||||
'';
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
wlr-randr
|
|
||||||
wl-clipboard
|
|
||||||
wdisplays
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.swaylock = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.swaylock-effects;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
ignore-empty-password = true;
|
|
||||||
daemonize = true;
|
|
||||||
# fade-in = 0.5;
|
|
||||||
indicator = true;
|
|
||||||
clock = true;
|
|
||||||
datestr = "%d/%m/%Y";
|
|
||||||
screenshots = true;
|
|
||||||
hide-keyboard-layout = true;
|
|
||||||
indicator-caps-lock = true;
|
|
||||||
bs-hl-color = "7daea3cc";
|
|
||||||
caps-lock-bs-hl-color = "7daea3cc";
|
|
||||||
caps-lock-key-hl-color = "d3869bcc";
|
|
||||||
font = "MesloLGS Nerd Font Propo";
|
|
||||||
font-size = "35";
|
|
||||||
indicator-idle-visible = true;
|
|
||||||
indicator-radius = 100;
|
|
||||||
indicator-thickness = 7;
|
|
||||||
inside-color = "32302f66";
|
|
||||||
inside-clear-color = "89b48266";
|
|
||||||
inside-caps-lock-color = "e78a4e66";
|
|
||||||
inside-ver-color = "7daea366";
|
|
||||||
inside-wrong-color = "ea696266";
|
|
||||||
key-hl-color = "a9b665cc";
|
|
||||||
layout-bg-color = "32302f00";
|
|
||||||
layout-text-color = "d4be98";
|
|
||||||
line-color = "00000000";
|
|
||||||
ring-color = "e78a4ecc";
|
|
||||||
ring-clear-color = "89b482cc";
|
|
||||||
ring-caps-lock-color = "e78a4ecc";
|
|
||||||
ring-ver-color = "7daea3cc";
|
|
||||||
ring-wrong-color = "ea6962cc";
|
|
||||||
separator-color = "00000000";
|
|
||||||
text-color = "d4be98";
|
|
||||||
text-clear-color = "d4be98";
|
|
||||||
text-caps-lock-color = "d4be98";
|
|
||||||
text-ver-color = "d4be98";
|
|
||||||
text-wrong-color = "d4be98";
|
|
||||||
effect-blur = "9x9";
|
|
||||||
effect-greyscale = true;
|
|
||||||
# effect-vignette = "0.5:0.5";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
config.preferred = {
|
|
||||||
default = "gtk";
|
|
||||||
"org.freedesktop.impl.portal.Screencast" = "hyprland";
|
|
||||||
};
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
xdg-desktop-portal-hyprland
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable = true;
|
|
||||||
|
|
||||||
security.pam.services.swaylock = { };
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.zsh;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.desktop.zsh = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
environment.pathsToLink = [ "/share/zsh" ];
|
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
users.users.${config.user.name} = {
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
programs = {
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
history = {
|
|
||||||
save = 50000;
|
|
||||||
size = 50000;
|
|
||||||
};
|
|
||||||
enableCompletion = true;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
|
||||||
initContent = # bash
|
|
||||||
''
|
|
||||||
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
|
||||||
zle -N up-line-or-beginning-search
|
|
||||||
zle -N down-line-or-beginning-search
|
|
||||||
|
|
||||||
[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search
|
|
||||||
[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
|
|
||||||
|
|
||||||
bindkey "^P" up-line-or-beginning-search
|
|
||||||
bindkey "^N" down-line-or-beginning-search
|
|
||||||
'';
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [
|
|
||||||
"git"
|
|
||||||
"terraform"
|
|
||||||
"systemd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "nix-zsh-completions";
|
|
||||||
src = pkgs.nix-zsh-completions;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "zsh-completions";
|
|
||||||
src = pkgs.zsh-completions;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
pay-respects = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
starship = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
add_newline = true;
|
|
||||||
cmd_duration = {
|
|
||||||
min_time = 0;
|
|
||||||
show_milliseconds = true;
|
|
||||||
};
|
|
||||||
scala = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
terraform = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
nix_shell = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
nodejs = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
php = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
(setq
|
|
||||||
projectile-project-search-path '("~/Projects/")
|
|
||||||
doom-theme 'doom-gruvbox
|
|
||||||
doom-font (font-spec :family "MesloLGS Nerd Font Mono" :size 10.0)
|
|
||||||
doom-big-font (font-spec :family "MesloLGS Nerd Font Mono" :size 20.0)
|
|
||||||
treemacs-git-mode 'extended
|
|
||||||
org-directory "~/Nextcloud/Org/"
|
|
||||||
org-roam-directory "~/Nextcloud/OrgRoam/"
|
|
||||||
nerd-icons-font-names '("SymbolsNerdFontMono-Regular.ttf"))
|
|
||||||
|
|
||||||
; Workaround for "Error running timer: (void-function consult--ripgrep-builder)"
|
|
||||||
(use-package! consult
|
|
||||||
:config
|
|
||||||
(defun consult--ripgrep-builder (&rest args) (apply (consult--ripgrep-make-builder) args)))
|
|
||||||
|
|
||||||
(use-package! lsp-tailwindcss
|
|
||||||
:init
|
|
||||||
(setq lsp-tailwindcss-add-on-mode t)
|
|
||||||
(setq lsp-tailwindcss-major-modes '(rjsx-mode web-mode html-mode css-mode typescript-mode typescript-tsx-mode tsx-ts-mode ;; scala-mode
|
|
||||||
))
|
|
||||||
(setq lsp-tailwindcss-experimental-class-regex [
|
|
||||||
[ "cls\\(([^)]*)\\)" "\"([^']*)\"" ]
|
|
||||||
[ "cls\\s*:=\\s*\\(?([^,^\\n^\\)]*)" "\"([^']*)\"" ]]))
|
|
||||||
|
|
||||||
(with-eval-after-load 'lsp-mode
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]node_modules\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.cache\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.direnv\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.devenv\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.metals\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\.bloop\\'")
|
|
||||||
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]out\\'"))
|
|
||||||
|
|
||||||
(after! nix-mode
|
|
||||||
(set-formatter! 'nixpkgs-fmt '("nixpkgs-fmt" ) :modes '(nix-mode)))
|
|
||||||
|
|
||||||
(use-package! websocket
|
|
||||||
:after org-roam)
|
|
||||||
|
|
||||||
(use-package! org-roam-ui
|
|
||||||
:after org-roam ;; or :after org
|
|
||||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
|
||||||
;; a hookable mode anymore, you're advised to pick something yourself
|
|
||||||
;; if you don't care about startup time, use
|
|
||||||
;; :hook (after-init . org-roam-ui-mode)
|
|
||||||
:config
|
|
||||||
(setq org-roam-ui-sync-theme t
|
|
||||||
org-roam-ui-follow t
|
|
||||||
org-roam-ui-update-on-save t
|
|
||||||
org-roam-ui-open-on-start t))
|
|
||||||
|
|
||||||
; Taken from https://github.com/yqrashawn/yqdotfiles/blob/master/.doom.d/read.el
|
|
||||||
(setq! elfeed-use-curl t)
|
|
||||||
(after! elfeed
|
|
||||||
(elfeed-set-timeout 36000)
|
|
||||||
(run-with-idle-timer 300 t #'elfeed-update)
|
|
||||||
(setq!
|
|
||||||
elfeed-search-filter "+unread"
|
|
||||||
rmh-elfeed-org-files `(,(concat org-directory "elfeed.org"))
|
|
||||||
elfeed-protocol-feeds '(("owncloud+https://paultrial@cloud.banditlair.com"
|
|
||||||
:password (shell-command-to-string "echo -n `secret-tool lookup elfeed nextcloud`"))))
|
|
||||||
(add-hook! 'elfeed-search-mode-hook 'elfeed-update)
|
|
||||||
(setq elfeed-protocol-enabled-protocols '(owncloud))
|
|
||||||
(elfeed-protocol-enable))
|
|
||||||
|
|
||||||
(use-package! elfeed-tube
|
|
||||||
:after elfeed
|
|
||||||
:demand t
|
|
||||||
:config
|
|
||||||
;; (setq elfeed-tube-auto-save-p nil) ; default value
|
|
||||||
;; (setq elfeed-tube-auto-fetch-p t) ; default value
|
|
||||||
(elfeed-tube-setup)
|
|
||||||
|
|
||||||
:bind (:map elfeed-show-mode-map
|
|
||||||
("F" . elfeed-tube-fetch)
|
|
||||||
([remap save-buffer] . elfeed-tube-save)
|
|
||||||
:map elfeed-search-mode-map
|
|
||||||
("F" . elfeed-tube-fetch)
|
|
||||||
([remap save-buffer] . elfeed-tube-save)))
|
|
||||||
|
|
||||||
(use-package! elfeed-tube-mpv
|
|
||||||
:bind (:map elfeed-show-mode-map
|
|
||||||
;; ("gf" . elfeed-tube-mpv-follow-mode)
|
|
||||||
;; ("gw" . elfeed-tube-mpv-where)))
|
|
||||||
))
|
|
||||||
|
|
||||||
;; Force using LSP formatter until this is resolved: https://github.com/doomemacs/doomemacs/issues/7490
|
|
||||||
(setq-hook! 'scala-mode-hook
|
|
||||||
apheleia-inhibit t
|
|
||||||
+format-with nil)
|
|
||||||
(add-hook 'scala-mode-hook
|
|
||||||
(lambda()
|
|
||||||
(add-hook 'before-save-hook #'lsp-format-buffer t t)
|
|
||||||
(add-hook 'before-save-hook #'lsp-organize-imports t t)))
|
|
||||||
|
|
@ -1,192 +0,0 @@
|
||||||
;;; init.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;; This file controls what Doom modules are enabled and what order they load
|
|
||||||
;; in. Remember to run 'doom sync' after modifying it!
|
|
||||||
|
|
||||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
|
||||||
;; documentation. There you'll find a "Module Index" link where you'll find
|
|
||||||
;; a comprehensive list of Doom's modules and what flags they support.
|
|
||||||
|
|
||||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
|
||||||
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
|
||||||
;; flags as well (those symbols that start with a plus).
|
|
||||||
;;
|
|
||||||
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
|
||||||
;; directory (for easy access to its source code).
|
|
||||||
|
|
||||||
(doom! :input
|
|
||||||
;;chinese
|
|
||||||
;;japanese
|
|
||||||
;;layout ; auie,ctsrnm is the superior home row
|
|
||||||
|
|
||||||
:completion
|
|
||||||
company ; the ultimate code completion backend
|
|
||||||
;;helm ; the *other* search engine for love and life
|
|
||||||
;;ido ; the other *other* search engine...
|
|
||||||
;;ivy ; a search engine for love and life
|
|
||||||
(vertico +icons) ; the search engine of the future
|
|
||||||
|
|
||||||
:ui
|
|
||||||
;;deft ; notational velocity for Emacs
|
|
||||||
doom ; what makes DOOM look the way it does
|
|
||||||
doom-dashboard ; a nifty splash screen for Emacs
|
|
||||||
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
|
||||||
;;(emoji +unicode) ; 🙂
|
|
||||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
|
||||||
;;hydra
|
|
||||||
;;indent-guides ; highlighted indent columns
|
|
||||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
|
||||||
;;minimap ; show a map of the code on the side
|
|
||||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
|
||||||
nav-flash ; blink cursor line after big motions
|
|
||||||
;;neotree ; a project drawer, like NERDTree for vim
|
|
||||||
ophints ; highlight the region an operation acts on
|
|
||||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
|
||||||
;;tabs ; a tab bar for Emacs
|
|
||||||
(treemacs +lsp) ; a project drawer, like neotree but cooler
|
|
||||||
;;unicode ; extended unicode support for various languages
|
|
||||||
vc-gutter ; vcs diff in the fringe
|
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
|
||||||
;;window-select ; visually switch windows
|
|
||||||
workspaces ; tab emulation, persistence & separate workspaces
|
|
||||||
zen ; distraction-free coding or writing
|
|
||||||
|
|
||||||
:editor
|
|
||||||
(evil +everywhere); come to the dark side, we have cookies
|
|
||||||
file-templates ; auto-snippets for empty files
|
|
||||||
fold ; (nigh) universal code folding
|
|
||||||
(format +onsave) ; automated prettiness
|
|
||||||
;;god ; run Emacs commands without modifier keys
|
|
||||||
;;lispy ; vim for lisp, for people who don't like vim
|
|
||||||
;;multiple-cursors ; editing in many places at once
|
|
||||||
;;objed ; text object editing for the innocent
|
|
||||||
;;parinfer ; turn lisp into python, sort of
|
|
||||||
;;rotate-text ; cycle region at point between text candidates
|
|
||||||
snippets ; my elves. They type so I don't have to
|
|
||||||
;;word-wrap ; soft wrapping with language-aware indent
|
|
||||||
|
|
||||||
:emacs
|
|
||||||
(dired +dirvish) ; making dired pretty [functional]
|
|
||||||
electric ; smarter, keyword-based electric-indent
|
|
||||||
;;ibuffer ; interactive buffer management
|
|
||||||
undo ; persistent, smarter undo for your inevitable mistakes
|
|
||||||
vc ; version-control and Emacs, sitting in a tree
|
|
||||||
|
|
||||||
:term
|
|
||||||
;;eshell ; the elisp shell that works everywhere
|
|
||||||
;;shell ; simple shell REPL for Emacs
|
|
||||||
;;term ; basic terminal emulator for Emacs
|
|
||||||
vterm ; the best terminal emulation in Emacs
|
|
||||||
|
|
||||||
:checkers
|
|
||||||
syntax ; tasing you for every semicolon you forget
|
|
||||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
|
||||||
;;grammar ; tasing grammar mistake every you make
|
|
||||||
|
|
||||||
:tools
|
|
||||||
;;ansible
|
|
||||||
;;biblio ; Writes a PhD for you (citation needed)
|
|
||||||
(debugger +lsp) ; FIXME stepping through code, to help you add bugs
|
|
||||||
direnv
|
|
||||||
;;docker
|
|
||||||
editorconfig ; let someone else argue about tabs vs spaces
|
|
||||||
;;ein ; tame Jupyter notebooks with emacs
|
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
|
||||||
;;gist ; interacting with github gists
|
|
||||||
lookup ; navigate your code and its documentation
|
|
||||||
(lsp +peek) ; M-x vscode
|
|
||||||
magit ; a git porcelain for Emacs
|
|
||||||
;;make ; run make tasks from Emacs
|
|
||||||
;;pass ; password manager for nerds
|
|
||||||
pdf ; pdf enhancements
|
|
||||||
;;prodigy ; FIXME managing external services & code builders
|
|
||||||
rgb ; creating color strings
|
|
||||||
;;taskrunner ; taskrunner for all your projects
|
|
||||||
terraform ; infrastructure as code
|
|
||||||
;;tmux ; an API for interacting with tmux
|
|
||||||
tree-sitter
|
|
||||||
;;upload ; map local to remote projects via ssh/ftp
|
|
||||||
|
|
||||||
:os
|
|
||||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
|
||||||
;;tty ; improve the terminal Emacs experience
|
|
||||||
|
|
||||||
:lang
|
|
||||||
;;agda ; types of types of types of types...
|
|
||||||
;;beancount ; mind the GAAP
|
|
||||||
;;cc ; C > C++ == 1
|
|
||||||
;;clojure ; java with a lisp
|
|
||||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
|
||||||
;;coq ; proofs-as-programs
|
|
||||||
;;crystal ; ruby at the speed of c
|
|
||||||
;;csharp ; unity, .NET, and mono shenanigans
|
|
||||||
;;data ; config/data formats
|
|
||||||
;;(dart +flutter) ; paint ui and not much else
|
|
||||||
;;dhall
|
|
||||||
;;elixir ; erlang done right
|
|
||||||
;;elm ; care for a cup of TEA?
|
|
||||||
emacs-lisp ; drown in parentheses
|
|
||||||
;;erlang ; an elegant language for a more civilized age
|
|
||||||
;;ess ; emacs speaks statistics
|
|
||||||
;;factor
|
|
||||||
;;faust ; dsp, but you get to keep your soul
|
|
||||||
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
|
||||||
;;fsharp ; ML stands for Microsoft's Language
|
|
||||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
|
||||||
;;gdscript ; the language you waited for
|
|
||||||
;;(go +lsp) ; the hipster dialect
|
|
||||||
;;(haskell +lsp) ; a language that's lazier than I am
|
|
||||||
;;hy ; readability of scheme w/ speed of python
|
|
||||||
;;idris ; a language you can depend on
|
|
||||||
json ; At least it ain't XML
|
|
||||||
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
|
||||||
javascript ; all(hope(abandon(ye(who(enter(here))))))
|
|
||||||
;;julia ; a better, faster MATLAB
|
|
||||||
;;kotlin ; a better, slicker Java(Script)
|
|
||||||
;;latex ; writing papers in Emacs has never been so fun
|
|
||||||
;;lean ; for folks with too much to prove
|
|
||||||
;;ledger ; be audit you can be
|
|
||||||
;;lua ; one-based indices? one-based indices
|
|
||||||
markdown ; writing docs for people to ignore
|
|
||||||
;;nim ; python + lisp at the speed of c
|
|
||||||
(nix +lsp +tree-sitter) ; I hereby declare "nix geht mehr!"
|
|
||||||
(ocaml +lsp +tree-sitter) ; an objective camel
|
|
||||||
(org +roam2 +present +hugo +dragndrop) ; organize your plain life in plain text
|
|
||||||
(php +lsp +tree-sitter) ; perl's insecure younger brother
|
|
||||||
;;plantuml ; diagrams for confusing people more
|
|
||||||
;;purescript ; javascript, but functional
|
|
||||||
;;python ; beautiful is better than ugly
|
|
||||||
;;qt ; the 'cutest' gui framework ever
|
|
||||||
;;racket ; a DSL for DSLs
|
|
||||||
;;raku ; the artist formerly known as perl6
|
|
||||||
(rest +jq) ; Emacs as a REST client
|
|
||||||
;;rst ; ReST in peace
|
|
||||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
|
||||||
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
|
||||||
(scala +lsp +tree-sitter) ; java, but good
|
|
||||||
;;(scheme +guile) ; a fully conniving family of lisps
|
|
||||||
(sh +tree-sitter) ; she sells {ba,z,fi}sh shells on the C xor
|
|
||||||
;;sml
|
|
||||||
;;solidity ; do you need a blockchain? No.
|
|
||||||
;;swift ; who asked for emoji variables?
|
|
||||||
;;terra ; Earth and Moon in alignment for performance.
|
|
||||||
(web +lsp +tree-sitter) ; the tubes
|
|
||||||
yaml ; JSON, but readable
|
|
||||||
;;zig ; C, but simpler
|
|
||||||
|
|
||||||
:email
|
|
||||||
(mu4e +org +gmail)
|
|
||||||
;;notmuch
|
|
||||||
;;(wanderlust +gmail)
|
|
||||||
|
|
||||||
:app
|
|
||||||
;;calendar
|
|
||||||
emms
|
|
||||||
;;everywhere ; *leave* Emacs!? You must be joking
|
|
||||||
;;irc ; how neckbeards socialize
|
|
||||||
(rss +org) ; emacs as an RSS reader
|
|
||||||
;;twitter ; twitter client https://twitter.com/vnought
|
|
||||||
|
|
||||||
:config
|
|
||||||
;;literate
|
|
||||||
(default +bindings +smartparens))
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
(package! lsp-tailwindcss)
|
|
||||||
(package! elfeed-protocol)
|
|
||||||
(package! elfeed-tube)
|
|
||||||
(package! elfeed-tube-mpv)
|
|
||||||
(package! mpv)
|
|
||||||
|
|
||||||
(unpin! org-roam)
|
|
||||||
(package! org-roam-ui)
|
|
||||||
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.editor.emacs;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.editor.emacs = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
nixpkgs.overlays = [ inputs.emacs-overlay.overlay ];
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = [
|
|
||||||
pkgs.binutils
|
|
||||||
pkgs.ripgrep
|
|
||||||
pkgs.fd
|
|
||||||
pkgs.findutils.locate
|
|
||||||
pkgs.python311
|
|
||||||
pkgs.libsecret
|
|
||||||
pkgs.gcc
|
|
||||||
pkgs.gnumake
|
|
||||||
pkgs.cmake
|
|
||||||
pkgs.nodejs
|
|
||||||
|
|
||||||
pkgs.opentofu
|
|
||||||
pkgs.pandoc
|
|
||||||
|
|
||||||
# Formatters and linters
|
|
||||||
pkgs.nixfmt-rfc-style # nix formatter
|
|
||||||
pkgs.nixpkgs-fmt
|
|
||||||
pkgs.shfmt # sh formatter
|
|
||||||
pkgs.shellcheck # sh linter
|
|
||||||
pkgs.html-tidy # HTML formatter
|
|
||||||
pkgs.nodePackages.stylelint # CSS linter
|
|
||||||
pkgs.nodePackages.js-beautify # JS/CSS/HTML formatter
|
|
||||||
|
|
||||||
# LSPs
|
|
||||||
pkgs.coursier
|
|
||||||
# metals # Scala
|
|
||||||
|
|
||||||
# Nix
|
|
||||||
pkgs.nil
|
|
||||||
|
|
||||||
pkgs.phpactor # PHP
|
|
||||||
#OCaml
|
|
||||||
pkgs.ocaml
|
|
||||||
pkgs.dune_3
|
|
||||||
pkgs.ocamlPackages.ocaml-lsp
|
|
||||||
pkgs.ocamlPackages.ocamlformat
|
|
||||||
pkgs.ocamlPackages.utop
|
|
||||||
pkgs.ocamlPackages.ocp-indent
|
|
||||||
pkgs.ocamlPackages.merlin
|
|
||||||
|
|
||||||
# Used by org-roam
|
|
||||||
pkgs.sqlite
|
|
||||||
pkgs.graphviz
|
|
||||||
|
|
||||||
# Used by elfeed-tube
|
|
||||||
pkgs.yt-dlp
|
|
||||||
pkgs.mpv
|
|
||||||
|
|
||||||
# Used by dirvish
|
|
||||||
pkgs.imagemagick
|
|
||||||
pkgs.ffmpegthumbnailer
|
|
||||||
pkgs.mediainfo
|
|
||||||
pkgs.poppler
|
|
||||||
pkgs.gnutar
|
|
||||||
pkgs.unzip
|
|
||||||
];
|
|
||||||
sessionPath = [ "${config.home-manager.users.${config.user.name}.xdg.configHome}/emacs/bin" ];
|
|
||||||
activation = {
|
|
||||||
installDoomEmacs = ''
|
|
||||||
if [ ! -d "${config.home-manager.users.${config.user.name}.xdg.configHome}/emacs" ]; then
|
|
||||||
${pkgs.git}/bin/git clone --depth=1 --single-branch https://github.com/doomemacs/doomemacs "${
|
|
||||||
config.home-manager.users.${config.user.name}.xdg.configHome
|
|
||||||
}/emacs"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.emacs = {
|
|
||||||
enable = true;
|
|
||||||
client.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.emacs30.override {
|
|
||||||
withNativeCompilation = true;
|
|
||||||
withPgtk = true;
|
|
||||||
withSQLite3 = true;
|
|
||||||
withTreeSitter = true;
|
|
||||||
withWebP = true;
|
|
||||||
};
|
|
||||||
extraPackages =
|
|
||||||
epkgs: with epkgs; [
|
|
||||||
vterm
|
|
||||||
pdf-tools
|
|
||||||
treesit-grammars.with-all-grammars
|
|
||||||
];
|
|
||||||
};
|
|
||||||
xdg.configFile = {
|
|
||||||
"doom" = {
|
|
||||||
source = ./doom.d;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"neodev": {
|
|
||||||
"library": {
|
|
||||||
"enabled": true,
|
|
||||||
"plugins": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"neoconf": {
|
|
||||||
"plugins": {
|
|
||||||
"lua_ls": {
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
-- Autocmds are automatically loaded on the VeryLazy event
|
|
||||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
|
||||||
-- Add any additional autocmds here
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
-- Keymaps are automatically loaded on the VeryLazy event
|
|
||||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
|
||||||
-- Add any additional keymaps here
|
|
||||||
|
|
||||||
local map = vim.keymap.set
|
|
||||||
|
|
||||||
-- Windows
|
|
||||||
map("n", "<leader>ww", "<C-w>p", { desc = "Other Window", remap = true })
|
|
||||||
map("n", "<leader>wd", "<C-w>c", { desc = "Delete Window", remap = true })
|
|
||||||
map("n", "<leader>ws", "<C-w>s", { desc = "Split Window Below", remap = true })
|
|
||||||
map("n", "<leader>wv", "<C-w>v", { desc = "Split Window Right", remap = true })
|
|
||||||
map("n", "<leader>wj", "<C-w>j", { desc = "Go to Lower Window", remap = true })
|
|
||||||
map("n", "<leader>wk", "<C-w>k", { desc = "Go to Upper Window", remap = true })
|
|
||||||
map("n", "<leader>wl", "<C-w>l", { desc = "Go to Right Window", remap = true })
|
|
||||||
map("n", "<leader>wh", "<C-w>h", { desc = "Go to Left Window", remap = true })
|
|
||||||
|
|
||||||
-- File
|
|
||||||
map("n", "<leader>fs", "<cmd>w<cr>", { desc = "Save File" })
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
-- Options are automatically loaded before lazy.nvim startup
|
|
||||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
|
||||||
-- Add any additional options here
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"LazyVim/LazyVim",
|
|
||||||
opts = {
|
|
||||||
colorscheme = "gruvbox",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
opts = {
|
|
||||||
defaults = { path_display = { "truncate" } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'folke/snacks.nvim',
|
|
||||||
keys = {
|
|
||||||
{ "<leader>bk", function() Snacks.bufdelete() end, desc = "Delete Buffer" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
return {
|
|
||||||
{ "folke/tokyonight.nvim", enabled = false },
|
|
||||||
{ "catppuccin", enabled = false },
|
|
||||||
{ "mason-org/mason.nvim", enabled = false },
|
|
||||||
{ "mason-org/mason-lspconfig.nvim", enabled = false },
|
|
||||||
{ "jay-babu/mason-nvim-dap.nvim", enabled = false },
|
|
||||||
{ "Bilal2453/luvit-meta", enabled = false },
|
|
||||||
}
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
return {
|
|
||||||
recommended = function()
|
|
||||||
return LazyVim.extras.wants({
|
|
||||||
ft = "scala",
|
|
||||||
root = { "build.sbt", "build.mill", "build.sc", "build.gradle", "pom.xml" },
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
{
|
|
||||||
"scalameta/nvim-metals",
|
|
||||||
ft = { "scala", "sbt", "mill" },
|
|
||||||
config = function() end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
opts = {
|
|
||||||
servers = {
|
|
||||||
metals = {
|
|
||||||
settings = {
|
|
||||||
showImplicitArguments = false,
|
|
||||||
startMcpServer = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
elixirls = {
|
|
||||||
cmd = { "elixir-ls" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
setup = {
|
|
||||||
metals = function(_, opts)
|
|
||||||
local metals = require("metals")
|
|
||||||
local metals_config = vim.tbl_deep_extend("force", metals.bare_config(), opts)
|
|
||||||
metals_config.on_attach = LazyVim.has("nvim-dap") and metals.setup_dap or nil
|
|
||||||
|
|
||||||
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
|
||||||
pattern = { "scala", "sbt", "mill" },
|
|
||||||
callback = function()
|
|
||||||
metals.initialize_or_attach(metals_config)
|
|
||||||
end,
|
|
||||||
group = nvim_metals_group,
|
|
||||||
})
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
opts = {
|
|
||||||
sections = {
|
|
||||||
lualine_z = {
|
|
||||||
{
|
|
||||||
require("opencode").statusline,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"NeogitOrg/neogit",
|
|
||||||
dependencies = { "nvim-lua/plenary.nvim", "sindrets/diffview.nvim", "nvim-telescope/telescope.nvim" },
|
|
||||||
event = "VeryLazy",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>gg",
|
|
||||||
"<cmd>Neogit<cr>",
|
|
||||||
desc = "Neogit",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"mfussenegger/nvim-lint",
|
|
||||||
opts = {
|
|
||||||
linters_by_ft = {
|
|
||||||
nix = {
|
|
||||||
"statix",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
opts = {
|
|
||||||
servers = {
|
|
||||||
nixd = {
|
|
||||||
settings = {
|
|
||||||
nixd = {
|
|
||||||
formatting = {
|
|
||||||
command = { "nixfmt" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"stevearc/conform.nvim",
|
|
||||||
opts = {
|
|
||||||
format = {
|
|
||||||
lsp_format = "first"
|
|
||||||
},
|
|
||||||
formatters_by_ft = {
|
|
||||||
nix = { "nixfmt" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
return {
|
|
||||||
"NickvanDyke/opencode.nvim",
|
|
||||||
config = function()
|
|
||||||
---@type opencode.Opts
|
|
||||||
vim.g.opencode_opts = {
|
|
||||||
provider = {
|
|
||||||
enabled = "kitty",
|
|
||||||
kitty = {
|
|
||||||
location = "tab"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
events = {
|
|
||||||
permissions = {
|
|
||||||
enabled = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vim.o.autoread = true
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "x" }, "<leader>aa", function()
|
|
||||||
require("opencode").ask("@this: ", { submit = true })
|
|
||||||
end, { desc = "Ask opencode" })
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "x" }, "<leader>ao", function()
|
|
||||||
require("opencode").select()
|
|
||||||
end, { desc = "Execute opencode action…" })
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "x" }, "<leader>as", function()
|
|
||||||
require("opencode").prompt("@this")
|
|
||||||
end, { desc = "Add to opencode" })
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "t" }, "<leader>a.", function()
|
|
||||||
require("opencode").toggle()
|
|
||||||
end, { desc = "Toggle opencode" })
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = {
|
|
||||||
auto_install = false,
|
|
||||||
sync_install = false,
|
|
||||||
ensure_installed = {},
|
|
||||||
parser_install_dir = vim.fs.joinpath(vim.fn.stdpath('data'), 'site'),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"mikavilpas/yazi.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>.",
|
|
||||||
function()
|
|
||||||
require("yazi").yazi()
|
|
||||||
end,
|
|
||||||
desc = "Open the file manager",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
open_for_directories = true,
|
|
||||||
},
|
|
||||||
config = function(opts)
|
|
||||||
require('yazi').setup(opts)
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
return {
|
|
||||||
"zk-org/zk-nvim",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>zn",
|
|
||||||
"<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>",
|
|
||||||
desc = "Create a new note after asking for its title"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<leader>zo",
|
|
||||||
"<Cmd>ZkNotes { sort = { 'modified' } }<CR>",
|
|
||||||
desc = "Open Notes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<leader>zt",
|
|
||||||
"<Cmd>ZkTags<CR>",
|
|
||||||
desc = "Open notes associated with the selected tags"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<leader>zf",
|
|
||||||
"<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>",
|
|
||||||
desc = "Search for the notes matching a given query"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<leader>zf",
|
|
||||||
":'<,'>ZkMatch<CR>",
|
|
||||||
mode = { "v" },
|
|
||||||
desc = "Search for the notes matching the current visual selection"
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
require("zk").setup({
|
|
||||||
picker = "fzf_lua",
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
-- `config` is passed to `vim.lsp.start(config)`
|
|
||||||
config = {
|
|
||||||
name = "zk",
|
|
||||||
cmd = { "zk", "lsp" },
|
|
||||||
filetypes = { "markdown" },
|
|
||||||
-- on_attach = ...
|
|
||||||
-- etc, see `:h vim.lsp.start()`
|
|
||||||
},
|
|
||||||
|
|
||||||
-- automatically attach buffers in a zk notebook that match the given filetypes
|
|
||||||
auto_attach = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,313 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.editor.vim;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.editor.vim = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.neovim-unwrapped;
|
|
||||||
vimAlias = true;
|
|
||||||
vimdiffAlias = true;
|
|
||||||
withNodeJs = true;
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
|
||||||
# base distro
|
|
||||||
LazyVim
|
|
||||||
conform-nvim
|
|
||||||
nvim-lint
|
|
||||||
markdown-preview-nvim
|
|
||||||
render-markdown-nvim
|
|
||||||
|
|
||||||
# theme
|
|
||||||
gruvbox-nvim
|
|
||||||
|
|
||||||
# UI
|
|
||||||
bufferline-nvim
|
|
||||||
gitsigns-nvim
|
|
||||||
neogit
|
|
||||||
diffview-nvim
|
|
||||||
edgy-nvim
|
|
||||||
dashboard-nvim
|
|
||||||
toggleterm-nvim
|
|
||||||
trouble-nvim
|
|
||||||
lualine-nvim
|
|
||||||
which-key-nvim
|
|
||||||
nvim-web-devicons
|
|
||||||
mini-nvim
|
|
||||||
mini-ai
|
|
||||||
mini-comment
|
|
||||||
mini-icons
|
|
||||||
mini-pairs
|
|
||||||
noice-nvim
|
|
||||||
nui-nvim
|
|
||||||
nvim-notify
|
|
||||||
nvim-lsp-notify
|
|
||||||
neo-tree-nvim
|
|
||||||
nvim-navic
|
|
||||||
dressing-nvim
|
|
||||||
aerial-nvim
|
|
||||||
snacks-nvim
|
|
||||||
|
|
||||||
# project management
|
|
||||||
project-nvim
|
|
||||||
neoconf-nvim
|
|
||||||
persistence-nvim
|
|
||||||
|
|
||||||
# smart typing
|
|
||||||
guess-indent-nvim
|
|
||||||
vim-illuminate
|
|
||||||
|
|
||||||
# LSP
|
|
||||||
nvim-lspconfig
|
|
||||||
nvim-lightbulb # lightbulb for quick actions
|
|
||||||
# nvim-code-action-menu # code action menu
|
|
||||||
neodev-nvim
|
|
||||||
SchemaStore-nvim # load known formats for json and yaml
|
|
||||||
nvim-metals
|
|
||||||
nvim-jdtls
|
|
||||||
|
|
||||||
# cmp plugins
|
|
||||||
nvim-cmp
|
|
||||||
blink-cmp # completion plugin
|
|
||||||
cmp_luasnip # snipper completions
|
|
||||||
|
|
||||||
# snippets
|
|
||||||
luasnip # snippet engine
|
|
||||||
friendly-snippets # a bunch of snippets to use
|
|
||||||
|
|
||||||
# search functionality
|
|
||||||
plenary-nvim
|
|
||||||
telescope-nvim
|
|
||||||
telescope-fzf-native-nvim
|
|
||||||
fzf-lua
|
|
||||||
grug-far-nvim
|
|
||||||
flash-nvim
|
|
||||||
|
|
||||||
# treesitter
|
|
||||||
nvim-treesitter-context
|
|
||||||
nvim-ts-autotag
|
|
||||||
nvim-treesitter-textobjects
|
|
||||||
nvim-treesitter.withAllGrammars
|
|
||||||
|
|
||||||
# comments
|
|
||||||
ts-comments-nvim
|
|
||||||
nvim-ts-context-commentstring
|
|
||||||
todo-comments-nvim
|
|
||||||
|
|
||||||
# leap
|
|
||||||
vim-repeat
|
|
||||||
leap-nvim
|
|
||||||
flit-nvim
|
|
||||||
|
|
||||||
# DAP
|
|
||||||
nvim-dap
|
|
||||||
nvim-dap-ui
|
|
||||||
nvim-dap-virtual-text
|
|
||||||
one-small-step-for-vimkind
|
|
||||||
|
|
||||||
# neotest
|
|
||||||
neotest
|
|
||||||
neotest-rust
|
|
||||||
neotest-elixir
|
|
||||||
|
|
||||||
# SQL
|
|
||||||
vim-dadbod
|
|
||||||
vim-dadbod-ui
|
|
||||||
vim-dadbod-completion
|
|
||||||
|
|
||||||
lazy-nvim
|
|
||||||
lazydev-nvim
|
|
||||||
vim-startuptime
|
|
||||||
yazi-nvim
|
|
||||||
zk-nvim
|
|
||||||
|
|
||||||
(pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "opencode.nvim";
|
|
||||||
version = "2025-12-04";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "NickvanDyke";
|
|
||||||
repo = "opencode.nvim";
|
|
||||||
rev = "963fad75f794deb85d1c310d2e2cb033da44f670";
|
|
||||||
hash = "sha256-nKOsHgMptHnOS+SCTHa77sQ/ZiUY0aW26I8GN7ocRHE=";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
gcc # needed for nvim-treesitter
|
|
||||||
|
|
||||||
# HTML, CSS, JSON
|
|
||||||
vscode-langservers-extracted
|
|
||||||
|
|
||||||
# Nix
|
|
||||||
nixd
|
|
||||||
statix
|
|
||||||
nixfmt-rfc-style
|
|
||||||
|
|
||||||
# SQL
|
|
||||||
sqlfluff
|
|
||||||
|
|
||||||
# LazyVim defaults
|
|
||||||
stylua
|
|
||||||
shfmt
|
|
||||||
|
|
||||||
# Markdown extra
|
|
||||||
markdownlint-cli2
|
|
||||||
marksman
|
|
||||||
|
|
||||||
# Docker extra
|
|
||||||
dockerfile-language-server
|
|
||||||
hadolint
|
|
||||||
docker-compose-language-service
|
|
||||||
|
|
||||||
# JSON and YAML extras
|
|
||||||
nodePackages.yaml-language-server
|
|
||||||
|
|
||||||
# Java
|
|
||||||
jdt-language-server
|
|
||||||
|
|
||||||
# Elixir
|
|
||||||
beam28Packages.elixir-ls
|
|
||||||
|
|
||||||
# Custom
|
|
||||||
editorconfig-checker
|
|
||||||
shellcheck
|
|
||||||
];
|
|
||||||
|
|
||||||
extraLuaConfig = # lua
|
|
||||||
''
|
|
||||||
require("gruvbox").setup({
|
|
||||||
overrides = {
|
|
||||||
Include = { ["link"] = "GruvboxRed" },
|
|
||||||
["@constructor"] = { ["link"] = "GruvboxYellow" },
|
|
||||||
["@function.builtin"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@function.call"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@function.macro"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@function.method.call.scala"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@method.call"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@variable.member.scala"] = { ["link"] = "GruvboxFg1" },
|
|
||||||
["@lsp.type.type.scala"] = { ["link"] = "" },
|
|
||||||
["@lsp.type.method.scala"] = { ["link"] = "" },
|
|
||||||
["@lsp.type.modifier.scala"] = { ["link"] = "GruvboxOrange" },
|
|
||||||
["@lsp.type.typeParameter.scala"] = { ["link"] = "GruvboxAqua" },
|
|
||||||
["@lsp.type.type.nix"] = { ["link"] = "" },
|
|
||||||
["@lsp.type.method.nix"] = { ["link"] = "" },
|
|
||||||
["@lsp.type.macro.nix"] = { ["link"] = "" },
|
|
||||||
["@lsp.type.interface.nix"] = { ["link"] = "" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
require("lazy").setup({
|
|
||||||
spec = {
|
|
||||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
|
||||||
-- import any extras modules here
|
|
||||||
{ import = "lazyvim.plugins.extras.dap.core" },
|
|
||||||
{ import = "lazyvim.plugins.extras.dap.nlua" },
|
|
||||||
{ import = "lazyvim.plugins.extras.ui.edgy" },
|
|
||||||
{ import = "lazyvim.plugins.extras.coding.mini-comment" },
|
|
||||||
{ import = "lazyvim.plugins.extras.editor.aerial" },
|
|
||||||
{ import = "lazyvim.plugins.extras.editor.leap" },
|
|
||||||
{ import = "lazyvim.plugins.extras.editor.navic" },
|
|
||||||
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.angular" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.docker" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.java" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.markdown" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.sql" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.scala" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.elixir" },
|
|
||||||
{ import = "lazyvim.plugins.extras.test.core" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
|
||||||
-- import/override with your plugins
|
|
||||||
{ import = "plugins" },
|
|
||||||
},
|
|
||||||
defaults = {
|
|
||||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
|
||||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
|
||||||
lazy = false,
|
|
||||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
|
||||||
-- have outdated releases, which may break your Neovim install.
|
|
||||||
version = false, -- always use the latest git commit
|
|
||||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
|
||||||
},
|
|
||||||
performance = {
|
|
||||||
-- Used for NixOS
|
|
||||||
reset_packpath = false,
|
|
||||||
rtp = {
|
|
||||||
reset = false,
|
|
||||||
-- disable some rtp plugins
|
|
||||||
disabled_plugins = {
|
|
||||||
"gzip",
|
|
||||||
-- "matchit",
|
|
||||||
-- "matchparen",
|
|
||||||
-- "netrwPlugin",
|
|
||||||
"tarPlugin",
|
|
||||||
"tohtml",
|
|
||||||
"tutor",
|
|
||||||
"zipPlugin",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
dev = {
|
|
||||||
path = "${pkgs.vimUtils.packDir config.programs.neovim.finalPackage.passthru.packpathDirs}/pack/myNeovimPackages/start",
|
|
||||||
patterns = {""},
|
|
||||||
},
|
|
||||||
install = {
|
|
||||||
missing = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."nvim/lua" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./lua;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
ZK_NOTEBOOK_DIR = "${config.home.homeDirectory}/Nextcloud/notes";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ripgrep
|
|
||||||
fd
|
|
||||||
nodejs
|
|
||||||
opentofu
|
|
||||||
coursier
|
|
||||||
|
|
||||||
# LSP
|
|
||||||
yaml-language-server
|
|
||||||
typos-lsp
|
|
||||||
nodePackages.typescript-language-server
|
|
||||||
nodePackages.prettier
|
|
||||||
terraform-ls
|
|
||||||
sqls
|
|
||||||
nixd
|
|
||||||
marksman
|
|
||||||
lua-language-server
|
|
||||||
docker-compose-language-service
|
|
||||||
bash-language-server
|
|
||||||
angular-language-server
|
|
||||||
vtsls
|
|
||||||
zk
|
|
||||||
metals
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.hardware.audio;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.hardware.audio = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
home.packages = [ pkgs.pulsemixer ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.media.emulators;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.media.emulators = {
|
|
||||||
psx.enable = lib.my.mkBoolOpt false; # Playstation
|
|
||||||
ds.enable = lib.my.mkBoolOpt false; # Nintendo DS
|
|
||||||
gc.enable = lib.my.mkBoolOpt false; # GameCube
|
|
||||||
gb.enable = lib.my.mkBoolOpt false; # GameBoy + GameBoy Color
|
|
||||||
gba.enable = lib.my.mkBoolOpt false; # GameBoy Advance
|
|
||||||
snes.enable = lib.my.mkBoolOpt false; # Super Nintendo
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
user.packages = [
|
|
||||||
(lib.mkIf cfg.psx.enable pkgs.duckstation)
|
|
||||||
(lib.mkIf cfg.ds.enable pkgs.desmume)
|
|
||||||
(lib.mkIf cfg.gc.enable pkgs.dolphin-emu)
|
|
||||||
(lib.mkIf (cfg.gba.enable || cfg.gb.enable || cfg.snes.enable) pkgs.higan)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.media;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.media = {
|
|
||||||
steam.enable = lib.my.mkBoolOpt false;
|
|
||||||
lutris.enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
|
||||||
{
|
|
||||||
user.packages = [
|
|
||||||
(lib.mkIf cfg.lutris.enable pkgs.lutris)
|
|
||||||
(lib.mkIf cfg.lutris.enable pkgs.wine)
|
|
||||||
(lib.mkIf (cfg.steam.enable || cfg.lutris.enable) pkgs.protontricks)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(lib.mkIf cfg.steam.enable {
|
|
||||||
hardware.steam-hardware.enable = true;
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
protontricks.enable = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.steam.enable || cfg.lutris.enable) {
|
|
||||||
programs.gamemode = {
|
|
||||||
enable = true;
|
|
||||||
enableRenice = true;
|
|
||||||
};
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
programs.mangohud = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.media.mopidy;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.media.mopidy = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.mopidy = {
|
|
||||||
enable = true;
|
|
||||||
extensionPackages = with pkgs; [
|
|
||||||
mopidy-mpd
|
|
||||||
mopidy-subidy
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
mpd = {
|
|
||||||
enabled = true;
|
|
||||||
hostname = "0.0.0.0";
|
|
||||||
port = "6600";
|
|
||||||
};
|
|
||||||
subidy = {
|
|
||||||
url = "https://cloud.banditlair.com/apps/music/subsonic";
|
|
||||||
username = "paultrial";
|
|
||||||
password = "oEcMsam5uo8k";
|
|
||||||
legacy_auth = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.media.mpd;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.media.mpd = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
services.mpd = {
|
|
||||||
enable = true;
|
|
||||||
network.listenAddress = "any";
|
|
||||||
musicDirectory = "${config.home.homeDirectory}/Nextcloud/Media/Music";
|
|
||||||
playlistDirectory = "${config.home.homeDirectory}/Nextcloud/Playlists";
|
|
||||||
extraConfig = ''
|
|
||||||
max_output_buffer_size "16384"
|
|
||||||
auto_update "yes"
|
|
||||||
audio_output {
|
|
||||||
type "pulse"
|
|
||||||
name "pulse audio"
|
|
||||||
device "pulse"
|
|
||||||
mixer_type "hardware"
|
|
||||||
}
|
|
||||||
audio_output {
|
|
||||||
type "fifo"
|
|
||||||
name "toggle_visualizer"
|
|
||||||
path "/tmp/mpd.fifo"
|
|
||||||
format "44100:16:2"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.media.ncmpcpp;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.media.ncmpcpp = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
(
|
|
||||||
(ncmpcpp.override { visualizerSupport = true; })
|
|
||||||
# Duplicate fix until it makes its way in unstable
|
|
||||||
.overrideAttrs
|
|
||||||
(old: {
|
|
||||||
configureFlags = old.configureFlags ++ [ (lib.withFeatureAs true "boost" boost.dev) ];
|
|
||||||
})
|
|
||||||
)
|
|
||||||
mpc
|
|
||||||
];
|
|
||||||
|
|
||||||
file.".config/ncmpcpp/config".source = ./config;
|
|
||||||
file.".config/ncmpcpp/bindings".source = ./bindings;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
6
modules/network.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
networking.hosts = {
|
||||||
|
"127.0.0.1" = [ "localhost" "local.ted.europa.eu" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
options,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
user = lib.my.mkOpt lib.types.attrs { };
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
|
|
||||||
user = {
|
|
||||||
name = lib.mkDefault "froidmpa";
|
|
||||||
description = "The primary user account";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"adbusers"
|
|
||||||
];
|
|
||||||
isNormalUser = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.${config.user.name} = lib.mkAliasDefinitions options.user;
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
useUserPackages = true;
|
|
||||||
|
|
||||||
users.${config.user.name} = {
|
|
||||||
home = {
|
|
||||||
enableNixpkgsReleaseCheck = true;
|
|
||||||
inherit (config.system) stateVersion;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
# Taken from https://github.com/hlissner/dotfiles
|
|
||||||
{
|
|
||||||
## System security tweaks
|
|
||||||
# sets hidepid=2 on /proc (make process info visible only to owning user)
|
|
||||||
# NOTE Was removed on nixpkgs-unstable because it doesn't do anything
|
|
||||||
# security.hideProcessInformation = true;
|
|
||||||
# Prevent replacing the running kernel w/o reboot
|
|
||||||
security.protectKernelImage = true;
|
|
||||||
|
|
||||||
# tmpfs = /tmp is mounted in ram. Doing so makes temp file management speedy
|
|
||||||
# on ssd systems, and volatile! Because it's wiped on reboot.
|
|
||||||
boot.tmp.useTmpfs = lib.mkDefault true;
|
|
||||||
# If not using tmpfs, which is naturally purged on reboot, we must clean it
|
|
||||||
# /tmp ourselves. /tmp should be volatile storage!
|
|
||||||
boot.tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs);
|
|
||||||
|
|
||||||
# Fix a security hole in place for backwards compatibility. See desc in
|
|
||||||
# nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
|
|
||||||
boot.loader.systemd-boot.editor = false;
|
|
||||||
|
|
||||||
boot.kernel.sysctl = {
|
|
||||||
# The Magic SysRq key is a key combo that allows users connected to the
|
|
||||||
# system console of a Linux kernel to perform some low-level commands.
|
|
||||||
# Disable it, since we don't need it, and is a potential security concern.
|
|
||||||
"kernel.sysrq" = 0;
|
|
||||||
|
|
||||||
## TCP hardening
|
|
||||||
# Prevent bogus ICMP errors from filling up logs.
|
|
||||||
"net.ipv4.icmp_ignore_bogus_error_responses" = 1;
|
|
||||||
# Reverse path filtering causes the kernel to do source validation of
|
|
||||||
# packets received from all interfaces. This can mitigate IP spoofing.
|
|
||||||
"net.ipv4.conf.default.rp_filter" = 1;
|
|
||||||
"net.ipv4.conf.all.rp_filter" = 1;
|
|
||||||
# Do not accept IP source route packets (we're not a router)
|
|
||||||
"net.ipv4.conf.all.accept_source_route" = 0;
|
|
||||||
"net.ipv6.conf.all.accept_source_route" = 0;
|
|
||||||
# Don't send ICMP redirects (again, we're on a router)
|
|
||||||
"net.ipv4.conf.all.send_redirects" = 0;
|
|
||||||
"net.ipv4.conf.default.send_redirects" = 0;
|
|
||||||
# Refuse ICMP redirects (MITM mitigations)
|
|
||||||
"net.ipv4.conf.all.accept_redirects" = 0;
|
|
||||||
"net.ipv4.conf.default.accept_redirects" = 0;
|
|
||||||
"net.ipv4.conf.all.secure_redirects" = 0;
|
|
||||||
"net.ipv4.conf.default.secure_redirects" = 0;
|
|
||||||
"net.ipv6.conf.all.accept_redirects" = 0;
|
|
||||||
"net.ipv6.conf.default.accept_redirects" = 0;
|
|
||||||
# Protects against SYN flood attacks
|
|
||||||
"net.ipv4.tcp_syncookies" = 1;
|
|
||||||
# Incomplete protection again TIME-WAIT assassination
|
|
||||||
"net.ipv4.tcp_rfc1337" = 1;
|
|
||||||
|
|
||||||
## TCP optimization
|
|
||||||
# TCP Fast Open is a TCP extension that reduces network latency by packing
|
|
||||||
# data in the sender’s initial TCP SYN. Setting 3 = enable TCP Fast Open for
|
|
||||||
# both incoming and outgoing connections:
|
|
||||||
"net.ipv4.tcp_fastopen" = 3;
|
|
||||||
# Bufferbloat mitigations + slight improvement in throughput & latency
|
|
||||||
"net.ipv4.tcp_congestion_control" = "bbr";
|
|
||||||
"net.core.default_qdisc" = "cake";
|
|
||||||
};
|
|
||||||
boot.kernelModules = [ "tcp_bbr" ];
|
|
||||||
|
|
||||||
# Change me later!
|
|
||||||
user.initialPassword = "nixos";
|
|
||||||
users.users.root.initialPassword = "nixos";
|
|
||||||
|
|
||||||
# So we don't have to do this later...
|
|
||||||
security.acme.acceptTerms = true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.belgian-eid;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.belgian-eid = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
services.pcscd.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(firefox.override { pkcs11Modules = [ eid-mw ]; })
|
|
||||||
eid-mw
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFYzCCA0ugAwIBAgIQGdeAPz782qlMfDK9Mp+7DjANBgkqhkiG9w0BAQsFADAe
|
|
||||||
MRwwGgYDVQQDExNGb3llci1Hcm91cC1Sb290LUNBMB4XDTE5MDIxMjEyNDAzN1oX
|
|
||||||
DTM5MDIxMjEyNTAzMlowHjEcMBoGA1UEAxMTRm95ZXItR3JvdXAtUm9vdC1DQTCC
|
|
||||||
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1B7QRo9beAqb8aFGqGBlya
|
|
||||||
veWDPu/0ZdF4v+GCspw2AvQx9EQW373QLxa9bdnbHmij8tah/hvLaYUksRl/0kbZ
|
|
||||||
Gik6O8caY+06a3dYwpQkOCjV2tHoPiTsZUyg5hdsQYIvZXmtXlA+qcDc+N5WjPjU
|
|
||||||
4/KY/kgJNCQBh7DM2OziE6SQMn+i+iKiIuJlCT8Q03Y3FZR0n4aOW90YGYKoISh8
|
|
||||||
VKuacw0D22MvxhZX8X6zIuMpH8vEXsMwIcCBENEowi0bCye5Aj1Jeyw0mLRUaDfE
|
|
||||||
aKxFZedrAC3pZKvX9SKLqMPM/NZLgK9WTbTG1c4KrRa1S/OKrUp36y4fgdgEjvPU
|
|
||||||
WtDaGBSDOqVqylLC5FnJjYEJESQcuOzhiJyYqZY9Cme/9QoiAmPxAVjTFZVBVyJ/
|
|
||||||
0r6JVygBYS5l3BbV7hJ76aVHrwy4f/CuHlnaIpax99wljvgf0QFEyXHGgzOu8tmc
|
|
||||||
g08OhlwfydSttMrsrj1wLrOTYbGLek4l4G7hJrtbqV3M0U4lforXhEFl/PWTeh7u
|
|
||||||
ytgW7RAqC/kCUVFPgZzcgAsFXJHPAhEGjMN8//eY13tn9D9dy8kxGYt+PMHWaPdH
|
|
||||||
ZYEOrPXogQB8iU0Z7g9pjzX/GPjcsJG6wr2D8yhFmfkanKE3Q7x5xJoeATswpnT5
|
|
||||||
gYBYJ8EMnQnSydjR/0pbAgMBAAGjgZwwgZkwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
|
|
||||||
EwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFNZ6BPnRJmRv4hzKAOWlKzYBvH8cMFQG
|
|
||||||
A1UdIARNMEswSQYJKwYBBAGCnDkBMDwwOgYIKwYBBQUHAgIwLh4sAEwAZQBnAGEA
|
|
||||||
bAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABlAG0AZQBuAHQwDQYJKoZIhvcNAQEL
|
|
||||||
BQADggIBAEwuHKngSP8SxCQ0qCWM1uLCdLdpdHnn4WftOczJTotXA8RZvdKQn5N2
|
|
||||||
BNR8PI3tQ7aauPB/0YNfaGDaDdg2g1is/1Oh0PFaN4mYcbZIJr6El+IDdcPcGngQ
|
|
||||||
YZYHtXqJ3y82uVM1A8cWPfx44MT5eMoK9sqpaZJaQM12BkhYkUYiAn2qaIRHrj4d
|
|
||||||
xa3mmuxUqNmxiVcFPv357TvmuGsbmgbtLE+zRzhNStoE3VNd0Efl7wYD84UpKB2x
|
|
||||||
hC/V5AD+FXwleDdCz2o+U1IjBnBos+cksqsJiLvYg2Fn4C4rRD/bYanOSP3Lh4ll
|
|
||||||
eHnXOuRDgJLyZj3MRTZl9LD5czxU+pk/luNgJyGiAuykVhcr52PKybxXYCnQmiXw
|
|
||||||
uCS8DYNjth4uSWIQqPGiNsTerdDsGUFQznTblT5e9ZArXwsa+iGno0AIUPmg08EW
|
|
||||||
/twNdm0NSVM2tzVoKsUJxNO0GwE+j4NLGdZgxs5NlpmlKqCVK+YX4XHkbfFMu5Z3
|
|
||||||
Tl+QnLP+XbKej08mO6r8IEmJmnjKvpXOYxme9XCyAeArzrhvIwMfA0Qvy2qpTaBW
|
|
||||||
WdCWCiVe2F3L3e0afsfIZ/QOApjgU0tT2iz+2cPfVYHMve0RES3CGjdMCN8WHOKt
|
|
||||||
w654Qw7ZrChUoLsPfjyhlHUB7UipQtIDT79QFxtqdi+HWTO/59Wl
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIG5zCCBM+gAwIBAgITZQAAAAgE68Dg5FuAUQAAAAAACDANBgkqhkiG9w0BAQsF
|
|
||||||
ADAeMRwwGgYDVQQDExNGb3llci1Hcm91cC1Sb290LUNBMB4XDTE5MDIxMjE1MjYx
|
|
||||||
N1oXDTI5MDIxMjE1MzYxN1owRDESMBAGCgmSJomT8ixkARkWAmx1MRcwFQYKCZIm
|
|
||||||
iZPyLGQBGRYHbGVmb3llcjEVMBMGA1UEAxMMRm95ZXItU3ViLUNBMIIBIjANBgkq
|
|
||||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2lTHYcFx1SjtRKaKKYUwlZBd2PCt9D+D
|
|
||||||
qdn7qwgL8sEFSvydfIWTyq8fI4VLvjCg93G7hdK/+IKvBMuExNaUXAwquyJ7Xfez
|
|
||||||
sWPXSpCS9k8LbNpBcTQrjY6vi7ldtaveZlngzwTQ2DMj2jBcEecZCtSYjpF4Tvqd
|
|
||||||
up9U0wmzJP447cxWg+9PvU8dnt2oipeZLGjh2CjQfm26yrKse/1hEtaBkmeDo9ko
|
|
||||||
zWEiuJUjoYZ8Zi82iDftW2nwBK/4QBDPYXEcWcL2O+Y4lY5ccgQupqTIrKNuDlU0
|
|
||||||
lUBaLWeiHH+arMACi8V2PtXssFaG/FOL5IiQrqDOwQTpxUPy5AGF7wIDAQABo4IC
|
|
||||||
9jCCAvIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFKkHvhdxLAGlvxPEzggz
|
|
||||||
LfoVCNLRMFQGA1UdIARNMEswSQYJKwYBBAGCnDkBMDwwOgYIKwYBBQUHAgIwLh4s
|
|
||||||
AEwAZQBnAGEAbAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABlAG0AZQBuAHQwGQYJ
|
|
||||||
KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMBIGA1UdEwEB/wQI
|
|
||||||
MAYBAf8CAQAwHwYDVR0jBBgwFoAU1noE+dEmZG/iHMoA5aUrNgG8fxwwggEKBgNV
|
|
||||||
HR8EggEBMIH+MIH7oIH4oIH1hoHFbGRhcDovLy9DTj1Gb3llci1Hcm91cC1Sb290
|
|
||||||
LUNBLENOPUZveWVyLUdyb3VwLVJvb3QtQ0EsQ049Q0RQLENOPVB1YmxpYyUyMEtl
|
|
||||||
eSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9bGVm
|
|
||||||
b3llcixEQz1sdT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0
|
|
||||||
Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGK2h0dHA6Ly9jcmwuZm95ZXIubHUv
|
|
||||||
Rm95ZXItR3JvdXAtUm9vdC1DQS5jcmwwgf0GCCsGAQUFBwEBBIHwMIHtMIGxBggr
|
|
||||||
BgEFBQcwAoaBpGxkYXA6Ly8vQ049Rm95ZXItR3JvdXAtUm9vdC1DQSxDTj1BSUEs
|
|
||||||
Q049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmln
|
|
||||||
dXJhdGlvbixEQz1sZWZveWVyLERDPWx1P2NBQ2VydGlmaWNhdGU/YmFzZT9vYmpl
|
|
||||||
Y3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MDcGCCsGAQUFBzAChitodHRw
|
|
||||||
Oi8vYWlhLmZveWVyLmx1L0ZveWVyLUdyb3VwLVJvb3QtQ0EuY3J0MA0GCSqGSIb3
|
|
||||||
DQEBCwUAA4ICAQC0RdvBmQkEjTpP0VzBYojCnYBytzU/1eDtOS3t7vB7dRA6oo65
|
|
||||||
nqjUXvf5jKUD3WA7bZoBL5WO9TFlzyKgPyfGaDks20vS4Xl/bdsq9Cv9wjoenrfa
|
|
||||||
lTExbZ9u5+UgzY0dnjkJV6cUEx0v6dujviTgwyLPOL3/5JulkwmKb8tcuUedS0GP
|
|
||||||
MbshL7J73IJ7t5ZwZkJMZ2fAQEsmGjWYupe9vdKCs4WDPiNrw9zU3seuWH5dWqfS
|
|
||||||
0bO6QROc8Zqrd/+ZE7quxNFw8j/DtTrq+5Xg+uCOV6nGN6ANLbcF1DO6S8mmzXlF
|
|
||||||
2cPO3UffxCKpM+3zg+NFfOS5S7H71lxm+SgD7Qf0SPxxDOUC3p3urmAKHWvvihfc
|
|
||||||
Ttd9MOTcF5hi2Edl2NGrORxksnLAyOkPg/9H+JdL0J1h8RrkPhhl87fmQd1VONdP
|
|
||||||
D8n4/r0hD4RuhWQtih/b/Ode3b2NjW77rHd+5/kHdFAQKoJwXZ2kulJ7ANtT2DkW
|
|
||||||
hpzdvkhxOchnh39E2PEH6WiMAeKHXHgqGXqiGAWoLvIvk/ciP5VG3m/Nly9J2A7f
|
|
||||||
C8OhpoJcExnxrL1rHH+QWO3wVvbYrtKSsKqMqS7Bu8gWsAbEw8HpXgdO5TyJ3RHM
|
|
||||||
yql2gDHKnbshIff/7tjPNwk5mttAPHtignx/MvOnRmnJvpug31v0UVEcig==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.docker;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.docker = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker = {
|
|
||||||
enable = true;
|
|
||||||
autoPrune.enable = true;
|
|
||||||
enableOnBoot = lib.mkDefault false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.${config.user.name}.extraGroups = [ "docker" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ docker-compose ];
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.flatpak;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.flatpak = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.flatpak.enable = true;
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
config.common.default = "*";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.kanata;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.kanata = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.kanata = {
|
|
||||||
enable = true;
|
|
||||||
keyboards.laptop.config = ''
|
|
||||||
;; QWERTY-shaped matrix; works for AZERTY because Kanata uses scancodes.
|
|
||||||
(defsrc
|
|
||||||
esc 1 2 3 4 5 6 7 8 9 0 - = bspc
|
|
||||||
tab q w e r t y u i o p [ ] \
|
|
||||||
caps a s d f g h j k l ; ' ret
|
|
||||||
lsft z x c v b n m , . / rsft
|
|
||||||
lctl lmet lalt spc ralt rmet rctl
|
|
||||||
)
|
|
||||||
|
|
||||||
(defvar
|
|
||||||
tap-time 150
|
|
||||||
hold-time 200
|
|
||||||
)
|
|
||||||
|
|
||||||
;; Home-row mod-taps (tap sends the letter; hold sends the modifier)
|
|
||||||
(defalias
|
|
||||||
a-alt (tap-hold $tap-time $hold-time a lalt)
|
|
||||||
s-ctl (tap-hold $tap-time $hold-time s lctl)
|
|
||||||
d-sft (tap-hold $tap-time $hold-time d lsft)
|
|
||||||
f-met (tap-hold $tap-time $hold-time f lmet)
|
|
||||||
|
|
||||||
j-met (tap-hold $tap-time $hold-time j rmet)
|
|
||||||
k-sft (tap-hold $tap-time $hold-time k rsft)
|
|
||||||
l-ctl (tap-hold $tap-time $hold-time l rctl)
|
|
||||||
;-alt (tap-hold $tap-time $hold-time ; ralt)
|
|
||||||
)
|
|
||||||
|
|
||||||
(deflayer main
|
|
||||||
esc 1 2 3 4 5 6 7 8 9 0 - = bspc
|
|
||||||
tab q w e r t y u i o p [ ] \
|
|
||||||
caps @a-alt @s-ctl @d-sft @f-met g h @j-met @k-sft @l-ctl @;-alt ' ret
|
|
||||||
lsft z x c v b n m , . / rsft
|
|
||||||
lctl lmet lalt spc ralt rmet rctl
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.languagetool;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.languagetool = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.languagetool = {
|
|
||||||
enable = true;
|
|
||||||
allowOrigin = "*";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.libvirt;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.libvirt = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
libvirtd.enable = true;
|
|
||||||
spiceUSBRedirection.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.${config.user.name}.extraGroups = [ "libvirtd" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ virt-manager ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.services.work-proxy;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.services.work-proxy = {
|
|
||||||
enable = lib.my.mkBoolOpt false;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
services.tinyproxy = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
LogLevel = "Info";
|
|
||||||
Port = 2345;
|
|
||||||
Upstream = [
|
|
||||||
''upstream http wsl:2345 ".microsoftonline.com"''
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.pki.certificateFiles = [
|
|
||||||
"${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
./certs/Foyer-Group-Root-CA.crt
|
|
||||||
./certs/Foyer-Sub-CA.crt
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
JAVAX_NET_SSL_TRUSTSTORE = ./certs/cacerts;
|
|
||||||
JAVA_OPTS = "-Djavax.net.ssl.trustStore=${./certs/cacerts} -Djavax.net.ssl.trustStorePassword=changeit";
|
|
||||||
JAVA_TOOL_OPTIONS = "-Djavax.net.ssl.trustStore=${./certs/cacerts} -Djavax.net.ssl.trustStorePassword=changeit";
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} = {
|
|
||||||
home = {
|
|
||||||
file.".sbt/repositories".text = ''
|
|
||||||
[repositories]
|
|
||||||
local
|
|
||||||
maven-local
|
|
||||||
nexus-maven: https://nexus.foyer.lu/repository/mvn-all/
|
|
||||||
nexus-ivy: https://nexus.foyer.lu/repository/ivy-all/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
|
|
||||||
nexus-ivy-sbt: https://nexus.foyer.lu/repository/ivy-all/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[artifact](-[classifier])-[type].[ext]
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(sbt.override { jre = jdk17; })
|
|
||||||
mongodb-compass
|
|
||||||
chisel
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
91
modules/system.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
{ config, lib, pkgs, nixpkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixUnstable;
|
||||||
|
settings = {
|
||||||
|
extra-sandbox-paths = [
|
||||||
|
"/var/keys/netrc"
|
||||||
|
];
|
||||||
|
substituters = [
|
||||||
|
"http://cache.banditlair.com"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cache.banditlair.com:4zk7iDvzKh6VN+LxzKIGcVPKgL5dLeyEt2ydrgx4o8c="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
'';
|
||||||
|
nixPath = [
|
||||||
|
"nixpkgs=${nixpkgs}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wget
|
||||||
|
inetutils
|
||||||
|
openvpn
|
||||||
|
openfortivpn
|
||||||
|
|
||||||
|
man
|
||||||
|
|
||||||
|
dos2unix
|
||||||
|
|
||||||
|
vim
|
||||||
|
git
|
||||||
|
git-lfs
|
||||||
|
zip
|
||||||
|
unzip
|
||||||
|
|
||||||
|
htop
|
||||||
|
ncdu
|
||||||
|
nload
|
||||||
|
pciutils
|
||||||
|
];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
fonts = {
|
||||||
|
fonts = with pkgs; [
|
||||||
|
corefonts # Microsoft free fonts
|
||||||
|
(nerdfonts.override { fonts = [ "Meslo" ]; })
|
||||||
|
];
|
||||||
|
fontconfig.defaultFonts = {
|
||||||
|
monospace = [ "MesloLGMDZ Nerd Font Mono" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sound.enable = true;
|
||||||
|
hardware.pulseaudio.enable = true;
|
||||||
|
hardware.pulseaudio.support32Bit = true;
|
||||||
|
|
||||||
|
programs.adb.enable = true;
|
||||||
|
|
||||||
|
users.users.froidmpa = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "adbusers" ];
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.ssh.startAgent = true;
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
layout = "fr";
|
||||||
|
desktopManager.xterm.enable = false;
|
||||||
|
windowManager.xmonad.enable = true;
|
||||||
|
displayManager.lightdm = {
|
||||||
|
enable = true;
|
||||||
|
background = "/etc/nixos/configs/files/wallpaper.png";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.udisks2.enable = true;
|
||||||
|
|
||||||
|
systemd.packages = [ pkgs.dconf ];
|
||||||
|
|
||||||
|
# Required for custom GTK themes
|
||||||
|
services.dbus.packages = with pkgs; [ dconf ];
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv7l-linux" ];
|
||||||
|
}
|
||||||
13
modules/virtualisation.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
libvirtd.enable = true;
|
||||||
|
docker.enable = true;
|
||||||
|
};
|
||||||
|
users.users.froidmpa.extraGroups = [ "docker" "libvirtd" ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
docker-compose
|
||||||
|
virt-manager
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
final: prev: { activitywatch-bin = prev.callPackage ./packages/activitywatch.nix { }; }
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchzip,
|
|
||||||
autoPatchelfHook,
|
|
||||||
libGL,
|
|
||||||
freetype,
|
|
||||||
libdrm,
|
|
||||||
fontconfig,
|
|
||||||
harfbuzz,
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "activitywatch-bin";
|
|
||||||
version = "0.12.0";
|
|
||||||
|
|
||||||
src = fetchzip {
|
|
||||||
url = "https://github.com/ActivityWatch/activitywatch/releases/download/v${version}/activitywatch-v${version}-linux-x86_64.zip";
|
|
||||||
sha256 = "sha256-4lfUxJTBpjrsRO+pmW7DNKV69tMr2wiarA5Fy4wPgMk=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
autoPatchelfHook
|
|
||||||
libGL
|
|
||||||
freetype
|
|
||||||
libdrm
|
|
||||||
fontconfig
|
|
||||||
harfbuzz
|
|
||||||
];
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp -r * $out/
|
|
||||||
ln -s $out/aw-qt $out/bin/aw-qt
|
|
||||||
ln -s $out/aw-server/aw-server $out/bin/aw-server
|
|
||||||
ln -s $out/aw-watcher-afk/aw-watcher-afk $out/bin/aw-watcher-afk
|
|
||||||
ln -s $out/aw-watcher-window/aw-watcher-window $out/bin/aw-watcher-window
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://activitywatch.net/";
|
|
||||||
description = "The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.";
|
|
||||||
license = licenses.mpl20;
|
|
||||||
platforms = [ "x86_64-linux" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
18
profiles/base.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./../modules/system.nix
|
||||||
|
./../modules/network.nix
|
||||||
|
./../modules/virtualisation.nix
|
||||||
|
./../modules/belgian-eid.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
time.timeZone = lib.mkDefault "Europe/Amsterdam";
|
||||||
|
|
||||||
|
i18n.defaultLocale = lib.mkDefault "en_US.UTF-8";
|
||||||
|
|
||||||
|
console = {
|
||||||
|
font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
|
||||||
|
keyMap = lib.mkDefault "fr";
|
||||||
|
};
|
||||||
|
}
|
||||||
1
ssh_keys/phfroidmont-laptop.pub
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILu2vaezsTNaTY8X4o2mFOmQguPnSAMOoPZRlW2ACAku froidmpa@froidmpa-laptop-2021-06-30
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk6GUenOaMxf0YquxEPubN5zjrfHvqw76IYXxD9NUo6 phfroidmont@stellaris-2025-09-09
|
|
||||||
219
users/default.nix
Normal file
|
|
@ -0,0 +1,219 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
environment.pathsToLink = [ "/share/zsh" ];
|
||||||
|
home-manager.users.froidmpa = { pkgs, config, ... }: {
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./froidmpa/alacritty.nix
|
||||||
|
./froidmpa/neovim.nix
|
||||||
|
./froidmpa/mpd.nix
|
||||||
|
./froidmpa/dunst.nix
|
||||||
|
./froidmpa/htop.nix
|
||||||
|
./froidmpa/zsh.nix
|
||||||
|
./froidmpa/vscode.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
packageOverrides = pkgs: {
|
||||||
|
ncmpcpp = pkgs.ncmpcpp.override { visualizerSupport = true; };
|
||||||
|
firefox = pkgs.firefox.override { pkcs11Modules = [ pkgs.eid-mw ]; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
windowManager.xmonad = {
|
||||||
|
enable = true;
|
||||||
|
enableContribAndExtras = true;
|
||||||
|
config = ./files/xmonad.hs;
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
keepassxc &
|
||||||
|
'';
|
||||||
|
numlock.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
nextcloud-client.enable = true;
|
||||||
|
udiskie.enable = true;
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSshSupport = false;
|
||||||
|
pinentryFlavor = "gtk2";
|
||||||
|
};
|
||||||
|
stalonetray = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
geometry = "1x1-5+0";
|
||||||
|
background = "#000000";
|
||||||
|
transparent = true;
|
||||||
|
grow_gravity = "E";
|
||||||
|
icon_gravity = "E";
|
||||||
|
icon_size = "24";
|
||||||
|
kludges = "force_icons_size";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
unclutter.enable = true;
|
||||||
|
pasystray.enable = true;
|
||||||
|
screen-locker = {
|
||||||
|
enable = false;
|
||||||
|
inactiveInterval = 5;
|
||||||
|
lockCmd = "${pkgs.i3lock}/bin/i3lock -e -f -c 000000 -i ~/.wallpaper.png";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
gpg.enable = true;
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Paul-Henri Froidmont";
|
||||||
|
userEmail = "git.contact-57n2p@froidmont.org";
|
||||||
|
signing = {
|
||||||
|
key = lib.mkDefault "3AC6F170F01133CE393BCD94BE948AFD7E7873BE";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
# Force IPv4 otherwise git will try to use IPv6 which doesn't play well through a VPN
|
||||||
|
AddressFamily inet
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
rofi = {
|
||||||
|
enable = true;
|
||||||
|
theme = "gruvbox-dark";
|
||||||
|
terminal = "alacritty";
|
||||||
|
};
|
||||||
|
bat.enable = true;
|
||||||
|
jq.enable = true;
|
||||||
|
fzf.enable = true;
|
||||||
|
lesspipe.enable = true;
|
||||||
|
zathura.enable = true;
|
||||||
|
pazi.enable = true;
|
||||||
|
|
||||||
|
broot = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
command-not-found.enable = true;
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme.name = "oomox-gruvmox-dark-medium-default";
|
||||||
|
iconTheme.name = "oomox-gruvmox-dark-medium-default";
|
||||||
|
};
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "gtk";
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
stateVersion = "20.09";
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
EDITOR = "vim";
|
||||||
|
QT_AUTO_SCREEN_SCALE_FACTOR = "0";
|
||||||
|
};
|
||||||
|
|
||||||
|
keyboard = {
|
||||||
|
layout = "fr";
|
||||||
|
options = [ "caps:escape" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".wallpaper.png".source = ./files/wallpaper.png;
|
||||||
|
".xmonad/xmobarrc".source = ./files/xmobarrc;
|
||||||
|
".config/ncmpcpp" = {
|
||||||
|
source = ./files/ncmpcpp;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".xmonad/scripts" = {
|
||||||
|
source = ./files/scripts;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".themes/oomox-gruvmox-dark-medium-default" = {
|
||||||
|
source = ./files/oomox-gruvmox-dark-medium-default;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".config/ranger" = {
|
||||||
|
source = ./files/ranger;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".config/ranger/plugins" = {
|
||||||
|
source = builtins.fetchGit {
|
||||||
|
url = "git://github.com/phfroidmont/ranger_devicons.git";
|
||||||
|
rev = "e02b6a3203411b76616a0e4328245bf8b47c5dcc";
|
||||||
|
};
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
haskellPackages.xmobar
|
||||||
|
i3lock
|
||||||
|
ncmpcpp
|
||||||
|
mpc_cli
|
||||||
|
pulsemixer
|
||||||
|
feh
|
||||||
|
xorg.xbacklight
|
||||||
|
xorg.xinit
|
||||||
|
xorg.xwininfo
|
||||||
|
xorg.xkill
|
||||||
|
scrot
|
||||||
|
numix-gtk-theme
|
||||||
|
|
||||||
|
# Ranger preview utils
|
||||||
|
w3m
|
||||||
|
xclip
|
||||||
|
odt2txt
|
||||||
|
|
||||||
|
firefox
|
||||||
|
brave
|
||||||
|
keepassxc
|
||||||
|
krita
|
||||||
|
element-desktop
|
||||||
|
mpv
|
||||||
|
jellyfin-mpv-shim
|
||||||
|
mumble
|
||||||
|
libreoffice-fresh
|
||||||
|
onlyoffice-bin
|
||||||
|
thunderbird
|
||||||
|
portfolio
|
||||||
|
transmission-remote-gtk
|
||||||
|
monero-gui
|
||||||
|
exodus
|
||||||
|
|
||||||
|
jdk
|
||||||
|
httpie
|
||||||
|
|
||||||
|
rnix-lsp
|
||||||
|
nixpkgs-fmt
|
||||||
|
|
||||||
|
zsh-syntax-highlighting
|
||||||
|
ranger
|
||||||
|
R
|
||||||
|
tldr
|
||||||
|
thefuck
|
||||||
|
atool
|
||||||
|
linuxPackages.perf
|
||||||
|
|
||||||
|
glxinfo
|
||||||
|
steam
|
||||||
|
lutris
|
||||||
|
dolphinEmu
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
4456
users/files/oomox-gruvmox-dark-medium-default/assets/all-assets.svg
Normal file
|
After Width: | Height: | Size: 154 KiB |
|
|
@ -0,0 +1,38 @@
|
||||||
|
checkbox-checked-dark
|
||||||
|
checkbox-checked-insensitive-dark
|
||||||
|
checkbox-checked-insensitive
|
||||||
|
checkbox-checked
|
||||||
|
checkbox-mixed-dark
|
||||||
|
checkbox-mixed-insensitive-dark
|
||||||
|
checkbox-mixed-insensitive
|
||||||
|
checkbox-mixed
|
||||||
|
checkbox-unchecked-dark
|
||||||
|
checkbox-unchecked-insensitive-dark
|
||||||
|
checkbox-unchecked-insensitive
|
||||||
|
checkbox-unchecked
|
||||||
|
grid-selection-checked-dark
|
||||||
|
grid-selection-checked
|
||||||
|
grid-selection-unchecked-dark
|
||||||
|
grid-selection-unchecked
|
||||||
|
menuitem-checkbox-checked-hover
|
||||||
|
menuitem-checkbox-checked-insensitive
|
||||||
|
menuitem-checkbox-checked
|
||||||
|
menuitem-checkbox-mixed-hover
|
||||||
|
menuitem-checkbox-mixed-insensitive
|
||||||
|
menuitem-checkbox-mixed
|
||||||
|
menuitem-radio-checked-hover
|
||||||
|
menuitem-radio-checked-insensitive
|
||||||
|
menuitem-radio-checked
|
||||||
|
pane-handle
|
||||||
|
radio-checked-dark
|
||||||
|
radio-checked-insensitive-dark
|
||||||
|
radio-checked-insensitive
|
||||||
|
radio-checked
|
||||||
|
radio-mixed-dark
|
||||||
|
radio-mixed-insensitive-dark
|
||||||
|
radio-mixed-insensitive
|
||||||
|
radio-mixed
|
||||||
|
radio-unchecked-dark
|
||||||
|
radio-unchecked-insensitive-dark
|
||||||
|
radio-unchecked-insensitive
|
||||||
|
radio-unchecked
|
||||||
4
users/files/oomox-gruvmox-dark-medium-default/assets/change_dpi.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
for f in $@; do
|
||||||
|
rsvg-convert -d 300 -p 300 -f svg $f -o $f.bak ; mv $f.bak $f
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 97.101562 32.648438 C 94.074219 32.746094 91.046875 34.015625 88.898438 36.199219 L 55.304688 68.164062 L 43.816406 55.273438 C 39.714844 49.804688 30.730469 49.21875 25.976562 54.101562 C 21.222656 58.984375 21.875 68.164062 27.277344 72.265625 L 47.136719 93.621094 C 54.949219 101.433594 58.464844 100.390625 66.339844 92.480469 C 66.339844 92.480469 93.425781 59.894531 109.308594 48.894531 C 112.824219 45.574219 114.289062 44.628906 112.433594 40.136719 C 110.613281 35.613281 101.886719 32.488281 97.101562 32.648438 Z M 97.101562 32.648438 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.3 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 14.550781 5.695312 L 118.78125 5.695312 C 123.371094 5.695312 127.117188 9.441406 127.117188 14.03125 L 127.117188 118.75 C 127.117188 123.371094 123.371094 127.082031 118.78125 127.082031 L 14.550781 127.082031 C 9.960938 127.082031 6.21875 123.371094 6.21875 118.75 L 6.21875 14.03125 C 6.21875 9.441406 9.960938 5.695312 14.550781 5.695312 Z M 14.550781 5.695312 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.3;" d="M 97.101562 32.648438 C 94.074219 32.746094 91.046875 34.015625 88.898438 36.199219 L 55.304688 68.164062 L 43.816406 55.273438 C 39.714844 49.804688 30.730469 49.21875 25.976562 54.101562 C 21.222656 58.984375 21.875 68.164062 27.277344 72.265625 L 47.136719 93.621094 C 54.949219 101.433594 58.464844 100.390625 66.339844 92.480469 C 66.339844 92.480469 93.425781 59.894531 109.308594 48.894531 C 112.824219 45.574219 114.289062 44.628906 112.433594 40.136719 C 110.613281 35.613281 101.886719 32.488281 97.101562 32.648438 Z M 97.101562 32.648438 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 14.550781 5.695312 L 118.78125 5.695312 C 123.371094 5.695312 127.117188 9.441406 127.117188 14.03125 L 127.117188 118.75 C 127.117188 123.371094 123.371094 127.082031 118.78125 127.082031 L 14.550781 127.082031 C 9.960938 127.082031 6.21875 123.371094 6.21875 118.75 L 6.21875 14.03125 C 6.21875 9.441406 9.960938 5.695312 14.550781 5.695312 Z M 14.550781 5.695312 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.3;" d="M 97.101562 32.648438 C 94.074219 32.746094 91.046875 34.015625 88.898438 36.199219 L 55.304688 68.164062 L 43.816406 55.273438 C 39.714844 49.804688 30.730469 49.21875 25.976562 54.101562 C 21.222656 58.984375 21.875 68.164062 27.277344 72.265625 L 47.136719 93.621094 C 54.949219 101.433594 58.464844 100.390625 66.339844 92.480469 C 66.339844 92.480469 93.425781 59.894531 109.308594 48.894531 C 112.824219 45.574219 114.289062 44.628906 112.433594 40.136719 C 110.613281 35.613281 101.886719 32.488281 97.101562 32.648438 Z M 97.101562 32.648438 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 97.101562 32.648438 C 94.074219 32.746094 91.046875 34.015625 88.898438 36.199219 L 55.304688 68.164062 L 43.816406 55.273438 C 39.714844 49.804688 30.730469 49.21875 25.976562 54.101562 C 21.222656 58.984375 21.875 68.164062 27.277344 72.265625 L 47.136719 93.621094 C 54.949219 101.433594 58.464844 100.390625 66.339844 92.480469 C 66.339844 92.480469 93.425781 59.894531 109.308594 48.894531 C 112.824219 45.574219 114.289062 44.628906 112.433594 40.136719 C 110.613281 35.613281 101.886719 32.488281 97.101562 32.648438 Z M 97.101562 32.648438 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 33.332031 58.332031 L 100 58.332031 L 100 75 L 33.332031 75 Z M 33.332031 58.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 14.453125 7.292969 L 119.402344 7.292969 C 124.25 7.292969 128.15625 11.101562 128.15625 15.851562 L 128.15625 118.554688 C 128.15625 123.273438 124.25 127.117188 119.402344 127.117188 L 14.453125 127.117188 C 9.601562 127.117188 5.695312 123.273438 5.695312 118.554688 L 5.695312 15.851562 C 5.695312 11.101562 9.601562 7.292969 14.453125 7.292969 Z M 14.453125 7.292969 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.3;" d="M 33.332031 58.332031 L 100 58.332031 L 100 75 L 33.332031 75 Z M 33.332031 58.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 14.453125 7.292969 L 119.402344 7.292969 C 124.25 7.292969 128.15625 11.101562 128.15625 15.851562 L 128.15625 118.554688 C 128.15625 123.273438 124.25 127.117188 119.402344 127.117188 L 14.453125 127.117188 C 9.601562 127.117188 5.695312 123.273438 5.695312 118.554688 L 5.695312 15.851562 C 5.695312 11.101562 9.601562 7.292969 14.453125 7.292969 Z M 14.453125 7.292969 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.3;" d="M 33.332031 58.332031 L 100 58.332031 L 100 75 L 33.332031 75 Z M 33.332031 58.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 33.332031 58.332031 L 100 58.332031 L 100 75 L 33.332031 75 Z M 33.332031 58.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 13.933594 5.175781 L 118.878906 5.175781 C 123.730469 5.175781 127.636719 9.015625 127.636719 13.800781 L 127.636719 117.414062 C 127.636719 122.199219 123.730469 126.042969 118.878906 126.042969 L 13.933594 126.042969 C 9.082031 126.042969 5.175781 122.199219 5.175781 117.414062 L 5.175781 13.800781 C 5.175781 9.015625 9.082031 5.175781 13.933594 5.175781 Z M 13.933594 5.175781 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 13.933594 5.175781 L 118.878906 5.175781 C 123.730469 5.175781 127.636719 9.015625 127.636719 13.800781 L 127.636719 117.414062 C 127.636719 122.199219 123.730469 126.042969 118.878906 126.042969 L 13.933594 126.042969 C 9.082031 126.042969 5.175781 122.199219 5.175781 117.414062 L 5.175781 13.800781 C 5.175781 9.015625 9.082031 5.175781 13.933594 5.175781 Z M 13.933594 5.175781 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 8.332031 L 116.667969 8.332031 C 121.257812 8.332031 125 12.078125 125 16.667969 L 125 116.667969 C 125 121.257812 121.257812 125 116.667969 125 L 16.667969 125 C 12.078125 125 8.332031 121.257812 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.078125 12.078125 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="333pt" height="333pt" viewBox="0 0 333 333" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 20.246094 11.914062 L 316.082031 11.914062 C 320.671875 11.914062 324.414062 15.625 324.414062 20.246094 L 324.414062 316.082031 C 324.414062 320.671875 320.671875 324.414062 316.082031 324.414062 L 20.246094 324.414062 C 15.625 324.414062 11.914062 320.671875 11.914062 316.082031 L 11.914062 20.246094 C 11.914062 15.625 15.625 11.914062 20.246094 11.914062 Z M 20.246094 11.914062 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 242.773438 81.640625 C 235.15625 81.835938 227.636719 85.027344 222.234375 90.527344 L 138.3125 170.441406 L 109.503906 138.183594 C 99.25 124.511719 76.789062 123.046875 64.910156 135.253906 C 53.027344 147.492188 54.6875 170.378906 68.164062 180.695312 L 117.839844 234.015625 C 137.335938 253.546875 146.160156 250.945312 165.851562 231.21875 C 165.851562 231.21875 233.5625 149.773438 273.273438 122.234375 C 282.03125 113.898438 285.710938 111.589844 281.121094 100.324219 C 276.5625 89.03125 254.753906 81.21875 242.773438 81.640625 Z M 242.773438 81.640625 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="333pt" height="333pt" viewBox="0 0 333 333" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 20.246094 11.914062 L 316.082031 11.914062 C 320.671875 11.914062 324.414062 15.625 324.414062 20.246094 L 324.414062 316.082031 C 324.414062 320.671875 320.671875 324.414062 316.082031 324.414062 L 20.246094 324.414062 C 15.625 324.414062 11.914062 320.671875 11.914062 316.082031 L 11.914062 20.246094 C 11.914062 15.625 15.625 11.914062 20.246094 11.914062 Z M 20.246094 11.914062 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#928374;fill-opacity:1;" d="M 242.773438 81.640625 C 235.15625 81.835938 227.636719 85.027344 222.234375 90.527344 L 138.3125 170.441406 L 109.503906 138.183594 C 99.25 124.511719 76.789062 123.046875 64.910156 135.253906 C 53.027344 147.492188 54.6875 170.378906 68.164062 180.695312 L 117.839844 234.015625 C 137.335938 253.546875 146.160156 250.945312 165.851562 231.21875 C 165.851562 231.21875 233.5625 149.773438 273.273438 122.234375 C 282.03125 113.898438 285.710938 111.589844 281.121094 100.324219 C 276.5625 89.03125 254.753906 81.21875 242.773438 81.640625 Z M 242.773438 81.640625 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="333pt" height="333pt" viewBox="0 0 333 333" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 20.246094 11.914062 L 316.082031 11.914062 C 320.671875 11.914062 324.414062 15.625 324.414062 20.246094 L 324.414062 316.082031 C 324.414062 320.671875 320.671875 324.414062 316.082031 324.414062 L 20.246094 324.414062 C 15.625 324.414062 11.914062 320.671875 11.914062 316.082031 L 11.914062 20.246094 C 11.914062 15.625 15.625 11.914062 20.246094 11.914062 Z M 20.246094 11.914062 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="333pt" height="333pt" viewBox="0 0 333 333" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 20.246094 11.914062 L 316.082031 11.914062 C 320.671875 11.914062 324.414062 15.625 324.414062 20.246094 L 324.414062 316.082031 C 324.414062 320.671875 320.671875 324.414062 316.082031 324.414062 L 20.246094 324.414062 C 15.625 324.414062 11.914062 320.671875 11.914062 316.082031 L 11.914062 20.246094 C 11.914062 15.625 15.625 11.914062 20.246094 11.914062 Z M 20.246094 11.914062 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#ebdbb2;fill-opacity:0.30;" d="M 41.667969 0 C 18.585938 0 0 18.585938 0 41.667969 L 0 291.667969 C 0 314.746094 18.585938 333.332031 41.667969 333.332031 L 291.667969 333.332031 C 314.746094 333.332031 333.332031 314.746094 333.332031 291.667969 L 333.332031 41.667969 C 333.332031 18.585938 314.746094 0 291.667969 0 Z M 41.667969 17.121094 L 291.667969 17.121094 C 303.222656 17.121094 316.960938 30.109375 316.960938 41.667969 L 316.960938 291.667969 C 316.960938 303.222656 303.222656 316.960938 291.667969 316.960938 L 41.667969 316.960938 C 30.109375 316.960938 17.121094 303.222656 17.121094 291.667969 L 17.121094 41.667969 C 17.121094 30.109375 30.109375 17.121094 41.667969 17.121094 Z M 41.667969 17.121094 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133pt" height="133pt" viewBox="0 0 133 133" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#fbf1c7;fill-opacity:0.5;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#fbf1c7;fill-opacity:0.15;" d="M 16.667969 0 C 7.421875 0 0 7.421875 0 16.667969 L 0 116.667969 C 0 125.910156 7.421875 133.332031 16.667969 133.332031 L 116.667969 133.332031 C 125.910156 133.332031 133.332031 125.910156 133.332031 116.667969 L 133.332031 16.667969 C 133.332031 7.421875 125.910156 0 116.667969 0 Z M 16.667969 8.332031 L 116.667969 8.332031 C 121.289062 8.332031 125 12.042969 125 16.667969 L 125 116.667969 C 125 121.289062 121.289062 125 116.667969 125 L 16.667969 125 C 12.042969 125 8.332031 121.289062 8.332031 116.667969 L 8.332031 16.667969 C 8.332031 12.042969 12.042969 8.332031 16.667969 8.332031 Z M 16.667969 8.332031 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:#282828;fill-opacity:1;" d="M 97.101562 32.648438 C 94.074219 32.746094 91.046875 34.015625 88.898438 36.199219 L 55.304688 68.164062 L 43.816406 55.273438 C 39.714844 49.804688 30.730469 49.21875 25.976562 54.101562 C 21.222656 58.984375 21.875 68.164062 27.277344 72.265625 L 47.136719 93.621094 C 54.949219 101.433594 58.464844 100.390625 66.339844 92.480469 C 66.339844 92.480469 93.425781 59.894531 109.308594 48.894531 C 112.824219 45.574219 114.289062 44.628906 112.433594 40.136719 C 110.613281 35.613281 101.886719 32.488281 97.101562 32.648438 Z M 97.101562 32.648438 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |