modules/lan-mouse: move to the home-manager
This commit is contained in:
parent
9092a13846
commit
df41cd9697
9 changed files with 157 additions and 20 deletions
79
flake.lock
79
flake.lock
|
@ -161,6 +161,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakeCompat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -267,6 +285,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lan-mouse": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713168888,
|
||||
"narHash": "sha256-pNd6KbkLlZtXKQvHWYwQB/Wbqa7lQYVffpSq5uWJqzQ=",
|
||||
"owner": "feschber",
|
||||
"repo": "lan-mouse",
|
||||
"rev": "36855a1a1767f4a777bad580d5a76fec1be5d9d1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "feschber",
|
||||
"repo": "lan-mouse",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lspsaga-nvim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -404,7 +443,7 @@
|
|||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": "rust-overlay"
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694177726,
|
||||
|
@ -635,6 +674,7 @@
|
|||
"flake-utils": "flake-utils_2",
|
||||
"hardware": "hardware",
|
||||
"home-manager": "home-manager_2",
|
||||
"lan-mouse": "lan-mouse",
|
||||
"myneovim": "myneovim",
|
||||
"nil": "nil",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
|
@ -644,6 +684,28 @@
|
|||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": [
|
||||
"lan-mouse",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710987136,
|
||||
"narHash": "sha256-Q8GRdlAIKZ8tJUXrbcRO1pA33AdoPfTUirsSnmGQnOU=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "97596b54ac34ad8184ca1eef44b1ec2e5c2b5f9e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"nil",
|
||||
|
@ -683,6 +745,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tabby-nvim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
10
flake.nix
10
flake.nix
|
@ -23,6 +23,11 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
lan-mouse = {
|
||||
url = "github:feschber/lan-mouse";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
# nix lsp
|
||||
nil = {
|
||||
url = "github:oxalica/nil";
|
||||
|
@ -46,9 +51,7 @@
|
|||
};
|
||||
|
||||
outputs = inputs @ { self, flake-utils, nixpkgs, ... }:
|
||||
let
|
||||
inherit (flake-utils.lib) eachSystem system;
|
||||
in
|
||||
let inherit (flake-utils.lib) eachSystem system; in
|
||||
eachSystem [ system.x86_64-linux ]
|
||||
(system:
|
||||
let
|
||||
|
@ -143,6 +146,7 @@
|
|||
imports = [
|
||||
./modules/home-manager
|
||||
inputs.wired.homeManagerModules.default
|
||||
inputs.lan-mouse.homeManagerModules.default
|
||||
];
|
||||
}
|
||||
];
|
||||
|
|
|
@ -153,7 +153,7 @@ in
|
|||
ltex.enable = mkEnableOption "ltex language server";
|
||||
orgmode.enable = mkEnableOption "orgmode";
|
||||
|
||||
nix.enable = mkEnableOptions "nix";
|
||||
nix.enable = mkEnableOption "nix";
|
||||
rust.enable = mkEnableOption "rust";
|
||||
typescript.enable = mkEnableOption "typescript";
|
||||
vue.enable = mkEnableOption "vue";
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./wired ];
|
||||
imports = [
|
||||
./lan-mouse
|
||||
./wired
|
||||
];
|
||||
}
|
||||
|
|
29
modules/home-manager/services/lan-mouse/default.nix
Normal file
29
modules/home-manager/services/lan-mouse/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.local.services.lan-mouse;
|
||||
|
||||
# See: https://github.com/feschber/lan-mouse/blob/main/src/config.rs#L79
|
||||
lanMouseConfig = pkgs.writeText "config.toml" ''
|
||||
port = ${toString cfg.port}
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.local.services.lan-mouse = with lib; {
|
||||
enable = mkEnableOption "lan-mouse";
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 4242;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.lan-mouse = {
|
||||
enable = true;
|
||||
systemd = true;
|
||||
package = pkgs.unstable.lan-mouse;
|
||||
};
|
||||
|
||||
xdg.configFile."lan-mouse/config.toml".source = lanMouseConfig;
|
||||
};
|
||||
}
|
|
@ -1,11 +1,16 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.local.services.wired;
|
||||
themeCfg = config.local.themes."${config.local.theme.name}";
|
||||
in
|
||||
{
|
||||
services.wired = {
|
||||
enable = true;
|
||||
config = pkgs.substituteAll ({ src = ./wired.ron; } // themeCfg.notification);
|
||||
options.local.services.wired.enable = lib.mkEnableOption "wired";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.wired = {
|
||||
enable = true;
|
||||
config = pkgs.substituteAll ({ src = ./wired.ron; } // themeCfg.notification);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,10 +10,7 @@
|
|||
|
||||
local.system.kernel = lib.mkDefault "stable";
|
||||
|
||||
local.keyboard = {
|
||||
enable = lib.mkDefault true;
|
||||
lan-mouse.enable = lib.mkDefault true;
|
||||
};
|
||||
local.keyboard.enable = lib.mkDefault true;
|
||||
|
||||
local.fonts.enable = lib.mkDefault true;
|
||||
local.sound.enable = lib.mkDefault true;
|
||||
|
|
|
@ -6,13 +6,9 @@ in
|
|||
{
|
||||
options.local.keyboard = with lib; {
|
||||
enable = mkEnableOption "base keyboard configuration";
|
||||
lan-mouse.enable = mkEnableOption "a software KVM switch for sharing a mouse and keyboard with multiple hosts through the network";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages =
|
||||
lib.optional cfg.lan-mouse.enable pkgs.unstable.lan-mouse;
|
||||
|
||||
services.xserver = {
|
||||
xkbModel = "pc105";
|
||||
layout = "us,us";
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
|
||||
users.groups.plugdev = lib.mkIf config.programs.adb.enable { };
|
||||
|
||||
networking.firewall.allowedUDPPorts =
|
||||
let lanMouseCfg = config.home-manager.users.jan.local.services.lan-mouse;
|
||||
in lib.optional lanMouseCfg.enable lanMouseCfg.port;
|
||||
|
||||
home-manager.users.jan = {
|
||||
imports = [
|
||||
./accounts.secret.nix
|
||||
|
@ -63,7 +67,18 @@
|
|||
|
||||
local.programs.terminals.wezterm.enable = lib.mkDefault true;
|
||||
|
||||
local.programs.editors.neovim.enable = lib.mkDefault true;
|
||||
local.programs.editors.neovim = {
|
||||
enable = lib.mkDefault true;
|
||||
defaultEditor = lib.mkDefault true;
|
||||
ltex.enable = lib.mkDefault true;
|
||||
|
||||
nix.enable = lib.mkDefault true;
|
||||
rust.enable = lib.mkDefault true;
|
||||
typescript.enable = lib.mkDefault true;
|
||||
vue.enable = lib.mkDefault true;
|
||||
deno.enable = lib.mkDefault true;
|
||||
python.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
local.programs.file-managers.vifm.enable = lib.mkDefault true;
|
||||
|
||||
|
@ -88,7 +103,18 @@
|
|||
zoxide.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
local.programs.share-files.croc.enable = true;
|
||||
local.programs.share-files.croc.enable = lib.mkDefault true;
|
||||
|
||||
################################################################################
|
||||
# Services
|
||||
################################################################################
|
||||
|
||||
local.services.wired.enable = lib.mkDefault true;
|
||||
|
||||
local.services.lan-mouse = {
|
||||
enable = lib.mkDefault true;
|
||||
port = lib.mkDefault 32000;
|
||||
};
|
||||
|
||||
################################################################################
|
||||
# Packages
|
||||
|
|
Loading…
Reference in a new issue