Compare commits

..

32 Commits

Author SHA1 Message Date
ae9cfa140d chore: update flake inputs 2025-06-15 00:24:31 +03:00
e975931d39 feat(home): add two interface optimization options into about:config in firefox 2025-06-15 00:18:37 +03:00
f6c2eac572 fix(home): plasma module, firefox extensions -> extensions.packages 2025-06-04 01:01:16 +03:00
82eb9ddf97 feat(home): add kde connect to plasma module 2025-06-04 00:42:01 +03:00
af827c485b refactor: apply nixfmt 2025-06-04 00:39:56 +03:00
93debfb780 feat(flake): add nixfmt-tree formatter 2025-06-03 23:47:58 +03:00
91bb55c48f refactor(flake): integrate home-manager into nixos configuration 2025-06-03 23:36:19 +03:00
3e517b1961 fix(home): add plasma gtkrc-2.0 bug fix 2025-06-03 23:35:41 +03:00
cf2c6fc646 chore: update flake inputs 2025-05-30 18:21:54 +03:00
8a7822f0c3 feat(system/tuxedo): add intel igpu drivers (vaapi, qsv) 2025-05-30 01:59:43 +03:00
20380d6123 feat(home): add wl-clipboard for nvim wl-copy to common 2025-05-16 15:31:58 +03:00
5711cfb5a1 feat(home): remove nixvim module (home/modules/neovim), add programming languages for LSPs 2025-05-16 03:01:51 +03:00
9bc74de397 feat(system): add nerd font "fira code" to common 2025-05-16 03:00:31 +03:00
8cae83ba6c feat(system): add unzip to common 2025-05-14 00:40:27 +03:00
f199c178a9 feat(system): add metadata info utils, file and libextractor, to common 2025-05-14 00:38:15 +03:00
628ebbcbff feat(home): add Adwaita GTK icon theme to fix missing icons in apps like inkscape 2025-05-13 23:58:26 +03:00
ec564b9b7e chore: update flake inputs 2025-05-13 18:44:01 +03:00
018ef38ca6 feat(system/tuxedo): add msfonts, unfortunately 2025-05-10 01:32:25 +03:00
5a7c53acbe feat(home/tuxedo): add discord 2025-05-10 01:28:02 +03:00
8b2445c9b4 feat(home): add git delta and credential storing 2025-05-08 23:57:30 +03:00
0f799f0cb3 feat(system/tuxedo): add docker service 2025-05-08 23:56:31 +03:00
d068d5f04f chore: fixed indentation in firefox module 2025-05-08 23:55:58 +03:00
5b8e5215ff feat(tuxedo), chore: update flake inputs, add new host 2025-05-08 14:53:13 +03:00
80a8dbc425 feat(home): add mpriss support for mpv (media buttons) 2024-10-26 12:29:44 +03:00
a7ce77727b chore: update flake inputs 2024-10-02 02:48:25 +03:00
9a921aa73f Merge remote-tracking branch 'refs/remotes/origin/master' 2024-10-02 01:52:35 +03:00
d26c2e9012 change(home/modules/nethack): remove default roles (choose option), change interface settings 2024-10-02 01:51:10 +03:00
644085925b feat(home): add graphics software to all systems 2024-10-02 01:34:27 +03:00
f1279adac4 chore(hardware): reinstall nixos on thinkpad 2024-09-27 01:57:44 +03:00
5a2ba0e314 feat(system): add bluetooth to every system by default 2024-09-27 01:56:15 +03:00
c94b6da250 feat(home): change default keyboard layouts for KDE Plasma 2024-09-24 03:25:23 +03:00
acf85dd34b feat(system): install adb on all devices 2024-09-24 03:24:43 +03:00
16 changed files with 645 additions and 529 deletions

252
flake.lock generated
View File

@@ -1,40 +1,5 @@
{
"nodes": {
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1722113426,
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide",
"repo": "devshell",
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -43,11 +8,32 @@
]
},
"locked": {
"lastModified": 1722555600,
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
@@ -61,11 +47,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -74,58 +60,6 @@
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724857454,
"narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -133,11 +67,11 @@
]
},
"locked": {
"lastModified": 1725180166,
"narHash": "sha256-fzssXuGR/mCeGbzM1ExaTqDz7QDGta3WA4jJsZyRruo=",
"lastModified": 1749935160,
"narHash": "sha256-lTLR7AyrrIS/b4frHKb5pw/gcPM0GgoGCURqeiOX9k8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "471e3eb0a114265bcd62d11d58ba8d3421ee68eb",
"rev": "8fabeb9c142a303e02270c3a3a0d8e00af9d0dfe",
"type": "github"
},
"original": {
@@ -149,16 +83,16 @@
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"plasma-manager",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724435763,
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
"lastModified": 1740494361,
"narHash": "sha256-Dd/GhJ9qKmUwuhgt/PAROG8J6YdU2ZjtJI9SQX5sVQI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
"rev": "74f0a8546e3f2458c870cf90fc4b38ac1f498b17",
"type": "github"
},
"original": {
@@ -167,24 +101,31 @@
"type": "github"
}
},
"home-manager_3": {
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"plasma-manager",
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1714377222,
"narHash": "sha256-UsDsjWCKlWn8vbXi8Zza9Hkq3xyk8fpvFNo2VM5S74E=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2af7c78b7bb9cf18406a193eba13ef9f99388f49",
"lastModified": 1748294338,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"owner": "NuschtOS",
"ref": "v0.0.8",
"repo": "ixx",
"type": "github"
}
},
@@ -204,34 +145,29 @@
"url": "https://git.psf.lt/xezo360hye/nethack"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"nixpkgs": {
"locked": {
"lastModified": 1724561770,
"narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs": {
"nixpkgs_2": {
"locked": {
"lastModified": 1725103162,
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@@ -243,24 +179,19 @@
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
"systems": "systems_2"
},
"locked": {
"lastModified": 1725269752,
"narHash": "sha256-AtZ9fSo2q6UeMoDy6kw6solM1B+BCABbKgCyUclsctg=",
"lastModified": 1749924512,
"narHash": "sha256-IYv0yEFh86c+UnkcjrUAV0UeIE+9vMEeXDIF+YRlooc=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "18b7597e6ca4b98a6c3f20ddc9783165d5998018",
"rev": "e114d442b14f3a299307ca9b0f0eab20e821f419",
"type": "github"
},
"original": {
@@ -270,12 +201,17 @@
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1725367994,
"narHash": "sha256-H0RJ9+pmXnUgdQzj4Hq45khxpkD8jKxgc3qMzxaTFqY=",
"lastModified": 1749934169,
"narHash": "sha256-2oGEmCWq0T2qG7tUaPdUv0jOk09oWTit9NfI6gCScC4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8b7d030200a43ec6b2b794c94b6142709a231203",
"rev": "da2de77056b07a63601c9198708ff02ddab21fcb",
"type": "github"
},
"original": {
@@ -287,17 +223,18 @@
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724584782,
"narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=",
"lastModified": 1749730855,
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"owner": "NuschtOS",
"repo": "search",
"rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087",
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"type": "github"
},
"original": {
@@ -308,17 +245,17 @@
},
"plasma-manager": {
"inputs": {
"home-manager": "home-manager_3",
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725327224,
"narHash": "sha256-+cMfiE+zigDuChOFlhUH3yN7Yll9hr1LRBHsO09pqjY=",
"lastModified": 1748196248,
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "3f1589c38428bd8121fd5deebd86ce4108b29d6e",
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
"type": "github"
},
"original": {
@@ -352,19 +289,34 @@
"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"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724833132,
"narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {

161
flake.nix
View File

@@ -2,102 +2,107 @@
description = "My homebrew NixOS configurations";
inputs = {
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = github:nix-community/home-manager;
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = github:nix-community/nixvim;
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = github:nix-community/plasma-manager;
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nur.url = github:nix-community/NUR;
nethack.url = git+https://git.psf.lt/xezo360hye/nethack?shallow=1;
nur.url = "github:nix-community/NUR";
nethack.url = "git+https://git.psf.lt/xezo360hye/nethack?shallow=1";
};
outputs = {
self,
nixpkgs,
home-manager,
nixvim,
nethack,
plasma-manager,
nur,
...
} @ inputs:
let
inherit (nixpkgs) lib;
username = "andrey";
hostnames = [ "tokishiko" "maidena" "noma" ];
stateVersion = "24.05";
makeSystem = hostname: {
"${hostname}" = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
nur.nixosModules.nur
./system/common.nix
./system/${hostname}.nix
./hardware/${hostname}.nix
{
system.stateVersion = stateVersion;
networking.hostName = hostname;
}
];
};
};
makeHome = hostname:
outputs =
{
self,
nixpkgs,
home-manager,
nixvim,
nethack,
plasma-manager,
nur,
...
}@inputs:
let
extractModules = map
(module:
let hm = module.homeManagerModules;
in hm.${lib.head (lib.attrNames hm)});
inherit (nixpkgs) lib;
username = "andrey";
hostnames = [
"tokishiko"
"maidena"
"noma"
"tuxedo"
];
stateVersion = "24.05";
makeSystem = hostname: {
"${hostname}" = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
home-manager.nixosModules.home-manager
nur.modules.nixos.default
./system/common.nix
./system/${hostname}.nix
./hardware/${hostname}.nix
{
system.stateVersion = stateVersion;
networking.hostName = hostname;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${username} = {
imports =
[
./home/${hostname}.nix
./home/common.nix
]
++ (map
(
module:
let
hm = module.homeManagerModules;
in
hm.${lib.head (lib.attrNames hm)}
)
[
nixvim
nethack
plasma-manager
]
);
home = {
username = username;
homeDirectory = "/home/${username}";
stateVersion = stateVersion;
};
news.display = "show";
};
}
];
};
};
forEachHost = fn: lib.mergeAttrsList (map fn hostnames);
in
{
"${username}@${hostname}" = home-manager.lib.homeManagerConfiguration
{
extraSpecialArgs = { inherit inputs; };
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ nur.overlay ];
};
nixosConfigurations = forEachHost makeSystem;
modules = (extractModules [
nixvim
nethack
plasma-manager
]) ++ [
nur.hmModules.nur
./home/${hostname}.nix
./home/common.nix
{
news.display = "show";
home.username = username;
home.homeDirectory = "/home/${username}";
home.stateVersion = stateVersion;
}
];
};
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
};
forEachHost = fn: lib.mergeAttrsList (map fn hostnames);
in {
nixosConfigurations = forEachHost makeSystem;
homeConfigurations = forEachHost makeHome;
};
}

View File

@@ -10,11 +10,11 @@
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "xhci_pci" "firewire_ohci" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/98ff21ae-1adf-469e-8cea-3bd04cc564ab";
{ device = "/dev/disk/by-uuid/68a22707-e30a-469b-b24b-13fccd128929";
fsType = "xfs";
};

42
hardware/tuxedo.nix Normal file
View File

@@ -0,0 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/67e3bb85-4f70-4b8f-8b88-ad0e0f96e336";
fsType = "ext4";
};
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/8834-14B3";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/f198a128-2b2f-48b9-a804-cce6ab9803de"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp58s0f1.useDHCP = lib.mkDefault true;
# networking.interfaces.tailscale0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp59s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -4,71 +4,94 @@
./modules/thunderbird
./modules/nethack
./modules/firefox
./modules/neovim
./modules/emacs
];
programs = {
home-manager.enable = true;
fastfetch.enable = true;
htop.enable = true;
btop.enable = true;
bash = {
enable = true;
historyControl = [ "ignoreboth" ];
};
git = {
enable = true;
userName = "xezo360hye";
userEmail = "xezo360hye@gmail.com";
delta.enable = true;
extraConfig = {
credential.helper = "store";
init.defaultBranch = "master";
url."https://github.com/".insteadOf = [ "gh:" "github:" ];
url."https://git.psf.lt/".insteadOf = [ "psf:" "gitea:" ];
url."https://github.com/".insteadOf = [
"gh:"
"github:"
];
url."https://git.psf.lt/".insteadOf = [
"psf:"
"gitea:"
];
};
};
mpv = {
enable = true;
config.hwdec = "auto";
scripts = with pkgs.mpvScripts; [
mpris
];
};
};
nixpkgs.config.allowUnfree = true;
gtk = {
enable = true;
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
home = {
packages = with pkgs; let
sent' = sent.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs ++ [ cairo ];
patches = [
./resources/patches/sent-pdf.diff
];
});
in [
texlive.combined.scheme-full
telegram-desktop
libreoffice-qt6
libqalculate
arduino-cli
packages =
with pkgs;
let
sent' = sent.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs ++ [ cairo ];
patches = [
./resources/patches/sent-pdf.diff
];
});
in
[
texlive.combined.scheme-full
telegram-desktop
libreoffice-qt6
libqalculate
arduino-cli
ani-cli
ytfzf
gimp
krita
inkscape
cpufrequtils
steam-run
ani-cli
ytfzf
sent'
];
cpufrequtils
steam-run
sent'
gcc
python3
nodejs
lua
wl-clipboard
];
sessionVariables = {
ANI_CLI_PLAYER = "mpv";
};
file = {
".config/nixpkgs/config.nix".text = "{ allowUnfree = true; }";
};
};
}

View File

@@ -3,15 +3,16 @@
programs.emacs = {
enable = true;
package = pkgs.emacs-gtk;
extraPackages = epkgs: with epkgs; [
doom
extraPackages =
epkgs: with epkgs; [
doom
magit
minimap
rainbow-delimiters
magit
minimap
rainbow-delimiters
company
company-tabnine
];
company
company-tabnine
];
};
}

View File

@@ -4,10 +4,10 @@
enable = true;
profiles.default = {
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
private-relay
libredirect
yomitan
reddit-enhancement-suite
enhancer-for-youtube
@@ -46,6 +46,9 @@
"browser.translations.automaticallyPopup" = false;
"browser.tabs.inTitlebar" = 0;
"devtools.accessibility.enabled" = false;
"browser.eme.ui.enabled" = false;
"services.sync.engine.addons" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
@@ -54,61 +57,99 @@
search = {
force = true;
default = "DuckDuckGo";
default = "ddg";
engines = let
makeShortcuts = let
prefix = "@";
in map (shortcut: prefix + shortcut);
engines =
let
makeShortcuts =
let
prefix = "@";
in
map (shortcut: prefix + shortcut);
hideEngines = let
hideEngine = engine: {
name = engine;
value = {
metaData.hidden = true;
};
};
in engines: lib.listToAttrs (map hideEngine engines);
in (hideEngines [ "Google" "Bing" "Amazon.com" "eBay" ]) //
{
"Arch Wiki" = {
urls = [{ template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://wiki.archlinux.org/favicon.ico";
definedAliases = makeShortcuts [ "archlinux" "aw" ];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "channel"; value = "unstable"; }
{ name = "query"; value = "{searchTerms}"; }
hideEngines =
let
hideEngine = engine: {
name = engine;
value = {
metaData.hidden = true;
};
};
in
engines: lib.listToAttrs (map hideEngine engines);
in
(hideEngines [
"google"
"bing"
"amazondotcom-us"
"ebay"
])
// {
"Arch Wiki" = {
urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
icon = "https://wiki.archlinux.org/favicon.ico";
definedAliases = makeShortcuts [
"archlinux"
"aw"
];
}];
};
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = makeShortcuts [ "nixpkgs" "packages" "np" ];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
"NixOS Wiki" = {
urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://wiki.nixos.org/favicon.png";
definedAliases = makeShortcuts [ "nixos" "nw" ];
};
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = makeShortcuts [
"nixpkgs"
"packages"
"np"
];
};
"MyNixOS" = {
urls = [{ template = "https://mynixos.com/search?q={searchTerms}"; }];
iconUpdateURL = "https://mynixos.com/favicon-light.svg";
definedAliases = makeShortcuts [ "mynixos" "mw" ];
};
"NixOS Wiki" = {
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
icon = "https://wiki.nixos.org/favicon.png";
definedAliases = makeShortcuts [
"nixos"
"nw"
];
};
"RuTracker" = {
urls = [{ template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; }];
iconUpdateURL = "https://rutracker.org/favicon.ico";
definedAliases = makeShortcuts [ "rutracker" "rt" ];
"MyNixOS" = {
urls = [ { template = "https://mynixos.com/search?q={searchTerms}"; } ];
icon = "https://mynixos.com/favicon-light.svg";
definedAliases = makeShortcuts [
"mynixos"
"mw"
];
};
"RuTracker" = {
urls = [ { template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; } ];
icon = "https://rutracker.org/favicon.ico";
definedAliases = makeShortcuts [
"rutracker"
"rt"
];
};
};
};
};
};
@@ -126,7 +167,7 @@
EmailTracking = true;
Fingerprinting = true;
Exceptions = [];
Exceptions = [ ];
};
FirefoxHome = {

View File

@@ -5,7 +5,8 @@
lib,
...
}:
let genFlatList = f: n: builtins.concatLists (builtins.genList f n);
let
genFlatList = f: n: builtins.concatLists (builtins.genList f n);
in
{
programs.kitty = {
@@ -50,26 +51,28 @@ in
};
};
bind = [
"SUPER, Return, exec, kitty"
"SUPER SHIFT, Q, exit"
bind =
[
"SUPER, Return, exec, kitty"
"SUPER SHIFT, Q, exit"
"SUPER, V, togglefloating"
"SUPER, J, togglesplit"
"SUPER, P, pseudo"
"SUPER, V, togglefloating"
"SUPER, J, togglesplit"
"SUPER, P, pseudo"
"ALT CTRL, left, workspace, -1"
"ALT CTRL, right, workspace, +1"
] ++ (
genFlatList
( x: let n = toString (x + 1);
"ALT CTRL, left, workspace, -1"
"ALT CTRL, right, workspace, +1"
]
++ (genFlatList (
x:
let
n = toString (x + 1);
in
[ "SUPER, ${n}, workspace, ${n}"
[
"SUPER, ${n}, workspace, ${n}"
"SUPER SHIFT, ${n}, movetoworkspace, ${n}"
]
)
9
);
) 9);
};
};
}

View File

@@ -14,29 +14,31 @@
copilot-lua = {
enable = true;
suggestion.autoTrigger = true;
suggestion.keymap = {
accept = "<M-a>";
acceptLine = "<M-l>";
acceptWord = "<M-w>";
settings = {
suggestion.autoTrigger = true;
suggestion.keymap = {
accept = "<M-a>";
acceptLine = "<M-l>";
acceptWord = "<M-w>";
};
};
};
};
keymaps = [
{
mode = "n";
key = ";";
action = ":";
}
{
mode = "n";
key = "<Esc>";
action = "<Cmd>nohlsearch<CR>";
options = {
silent = true;
};
}
{
mode = "n";
key = ";";
action = ":";
}
{
mode = "n";
key = "<Esc>";
action = "<Cmd>nohlsearch<CR>";
options = {
silent = true;
};
}
];
};
}

View File

@@ -3,7 +3,7 @@
enable = true;
nethack_options = {
windowtype = "curses";
align_message = "bottom";
align_message = "top";
msg_window = "reverse";
msghistory = 1000;
statuslines = 3;
@@ -24,48 +24,30 @@
autopickup = true;
pickup_burden = "B";
disclose = "+iagcvo";
sortloot = "full";
runmode = "crawl";
sortloot = "none";
runmode = "walk";
boulder = "0";
gender = "male";
};
choose_options = {
wizard.nethack_options = {
race = "elf";
role = "wizard";
pickup_types = ''$!="+?'';
};
tourist.nethack_options = {
role = "tourist";
pickup_types = ''$!="+?'';
};
caveman.nethack_options = {
race = "dwarf";
role = "caveman";
pickup_types = ''$!=%"?()'';
};
pickup_types = ''$!=/?'';
};
hilite_status = {
hitpoints = {
"100%" = "grey";
"100%" = "grey";
"<100%" = "green";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
"<15%" = "red&inverse";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
"<15%" = "red&inverse";
};
power = {
"100%" = "grey";
"100%" = "grey";
"<100%" = "green";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
};
cap = {
@@ -107,40 +89,40 @@
msg_types = {
stop = [
"The .* (grabs|swings itself around) you!"
"You don't feel very well."
"You are turning a little green."
"Your limbs are getting oozy."
"Your skin begins to peel away."
"You are turning into a green slime."
"You are slowing down."
"Your limbs are stiffening."
"It constricts your throat!"
"You find it hard to breathe."
"You're gasping for air."
"Your blood is having trouble reaching your brain."
"You can no longer breathe."
"You're turning blue."
"You faint from lack of food"
"Your consciousness is fading."
"You regain consciousness"
"You don't feel very well."
"You are turning a little green."
"Your limbs are getting oozy."
"Your skin begins to peel away."
"You are turning into a green slime."
"You are slowing down."
"Your limbs are stiffening."
"It constricts your throat!"
"You find it hard to breathe."
"You're gasping for air."
"Your blood is having trouble reaching your brain."
"You can no longer breathe."
"You're turning blue."
"You faint from lack of food"
"Your consciousness is fading."
"You regain consciousness"
"You feel weak"
"You feel weak now"
"You are beginning to feel weak"
"You feel deathly sick"
"You feel (much|even) worse"
"You feel weak"
"You feel weak now"
"You are beginning to feel weak"
"You feel deathly sick"
"You feel (much|even) worse"
"You feel more confident "
"You feel more confident "
"You only feel hungry now"
" needs food, badly!"
"You feel hungry"
"You are beginning to feel hungry"
"You are getting the munchies"
"You still have the munchies"
"The munchies are interfering with your motor capabilities"
"You now have a lesser case of the munchies"
];
"You only feel hungry now"
" needs food, badly!"
"You feel hungry"
"You are beginning to feel hungry"
"You are getting the munchies"
"You still have the munchies"
"The munchies are interfering with your motor capabilities"
"You now have a lesser case of the munchies"
];
hide = [
"You swap places with .*"
@@ -217,17 +199,21 @@
"(mud|buckled|riding|snow|hiking|combat|jungle) boots" = "magenta";
" (Dragonbane|Fire Brand|Frost Brand|Ogresmasher|Trollsbane|Werebane)" = "lightgreen";
" (Demonbane|Excalibur|Grayswandir|Snickersnee|Sunsword)" = "lightgreen";
" (Orb of Detection|Sceptre of Might|Magic Mirror of Merlin|Mitre of Holiness|Tsurugi of Muramasa)" = "lightgreen";
" (Orb of Detection|Sceptre of Might|Magic Mirror of Merlin|Mitre of Holiness|Tsurugi of Muramasa)" =
"lightgreen";
" (Cleaver|Giantslayer|Magicbane|Mjollnir|Vorpal Blade)" = "lightgreen";
" (Heart of Ahriman|Staff of Aesculapius|Eyes of the Overworld|Platinum Yendorian Express Card|Orb of Fate|Eye of the Aethiopica)" = "lightgreen";
" (Heart of Ahriman|Staff of Aesculapius|Eyes of the Overworld|Platinum Yendorian Express Card|Orb of Fate|Eye of the Aethiopica)" =
"lightgreen";
" (Grimtooth|Orcrist|Sting|Stormbringer)" = "lightgreen";
" (Longbow of Diana|Master Key of Thievery)" = "lightgreen";
" (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" = "magenta&bold";
" (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" =
"magenta&bold";
" Amulet of Yendor named" = "magenta&bold";
" cursed.* bag .* holding" = "red&bold";
" cursed.* luck(stone)?($| )" = "red&bold";
" cursed.* unicorn horn" = "red&bold";
" cursed.* (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" = "red&bold";
" cursed.* (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" =
"red&bold";
"cursed tins? .* spinach|tins? .* spinach .* (cursed|C($| ))" = "red";
" load(stone)?($| )" = "red&underline";
" bag .* tricks" = "blue&underline";
@@ -236,8 +222,10 @@
" gold piece" = "yellow";
" valuable" = "brown";
" gems? .* hard" = "yellow";
" ([0-9]+|an?|gems? .*) (uncursed |cursed |blessed )?(dilithium|opal|garnet|jasper|agate|jet|obsidian|jade|citrine|chrysoberyl|amber|amethyst|fluorite|turquoise)(e?s)?( stones?| gems?| crystals?)?( named .*)?$" = "brown";
" ([0-9]+|an?|gems?.*) (uncursed |cursed |blessed )?(diamond|rub(y|ies)|jacinth|sapphire|black opal|emerald|topaz|aquamarine)(e?s)?( stones?| gems?)?( named .*)?$" = "yellow";
" ([0-9]+|an?|gems? .*) (uncursed |cursed |blessed )?(dilithium|opal|garnet|jasper|agate|jet|obsidian|jade|citrine|chrysoberyl|amber|amethyst|fluorite|turquoise)(e?s)?( stones?| gems?| crystals?)?( named .*)?$" =
"brown";
" ([0-9]+|an?|gems?.*) (uncursed |cursed |blessed )?(diamond|rub(y|ies)|jacinth|sapphire|black opal|emerald|topaz|aquamarine)(e?s)?( stones?| gems?)?( named .*)?$" =
"yellow";
" 0%" = "white";
" [1-9]%" = "cyan";
" [12][0-9]%" = "cyan";

View File

@@ -1,10 +1,10 @@
{ lib, pkgs, ... }:
{
programs.firefox = {
nativeMessagingHosts = [ pkgs.plasma-browser-integration ];
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
profiles.default = {
extensions = [ pkgs.nur.repos.rycee.firefox-addons.plasma-integration ];
extensions.packages = [ pkgs.nur.repos.rycee.firefox-addons.plasma-integration ];
settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
@@ -13,28 +13,21 @@
};
};
services.kdeconnect.enable = true;
programs.plasma = {
enable = true;
overrideConfig = true;
input.touchpads = [{
enable = true;
name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002";
productId = "0007";
disableWhileTyping = false;
naturalScroll = true;
}];
powerdevil = let
settings = {
powerButtonAction = "sleep";
};
modes = [ "AC" "battery" "lowBattery" ];
in lib.mergeAttrsList (
map (m: { "${m}" = settings; }) modes
);
input.touchpads = [
{
enable = true;
name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002";
productId = "0007";
disableWhileTyping = false;
naturalScroll = true;
}
];
kwin.edgeBarrier = 0;
workspace = {
@@ -51,56 +44,54 @@
floating = false;
height = 44;
widgets = let
kickoff = {
kickoff.icon = "nix-snowflake-white";
};
taskmanager = {
iconTasks.launchers = [
"applications:systemsettings.desktop"
"applications:org.kde.dolphin.desktop"
"applications:firefox.desktop"
"applications:org.kde.konsole.desktop"
];
};
systray = {
systemTray.items.shown = [
"org.kde.plasma.battery"
];
};
digital-clock = {
digitalClock = {
date.format = "isoDate";
time.format = "24h";
date.position = "besideTime";
calendar.firstDayOfWeek = "monday";
widgets =
let
kickoff = {
kickoff.icon = "nix-snowflake-white";
};
};
workspaces = "org.kde.plasma.pager";
separator = "org.kde.plasma.panelspacer";
desktop = "org.kde.plasma.showdesktop";
in
[
kickoff
workspaces
taskmanager
taskmanager = {
iconTasks.launchers = [
"applications:systemsettings.desktop"
"applications:org.kde.dolphin.desktop"
"applications:firefox.desktop"
"applications:org.kde.konsole.desktop"
];
};
separator
digital-clock
separator
systray = {
systemTray.items.shown = [
"org.kde.plasma.battery"
];
};
systray
desktop
];
digital-clock = {
digitalClock = {
date.format = "isoDate";
time.format = "24h";
date.position = "belowTime";
calendar.firstDayOfWeek = "monday";
};
};
workspaces = "org.kde.plasma.pager";
separator = "org.kde.plasma.panelspacer";
in
[
kickoff
workspaces
taskmanager
separator
digital-clock
separator
systray
];
}
];
window-rules = [
{
description = "Konsole";
@@ -155,10 +146,12 @@
kxkbrc.Layout = {
LayoutList = "us,ru";
DisplayNames = ",";
VariantList = ",";
VariantList = "symbolic,";
Options = "caps:escape_shifted_capslock,grp:win_space_toggle";
ResetOldOptions = true;
};
};
};
gtk.gtk2.force = true;
}

13
home/tuxedo.nix Normal file
View File

@@ -0,0 +1,13 @@
{ lib, pkgs, ... }:
{
imports = [
./modules/plasma
];
home = {
packages = lib.mkAfter [ pkgs.discord ];
file = {
".config/discord/settings.json".text = ''{ "SKIP_HOST_UPDATE": true }'';
};
};
}

View File

@@ -1,39 +1,37 @@
{ inputs, config, pkgs, lib, ... }:
let flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
{
inputs,
config,
pkgs,
lib,
...
}:
let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in
{
# Bootloader
boot.loader.grub.enable = true;
boot.loader.grub.device = lib.mkDefault "/dev/sda";
# Networking
networking.networkmanager.enable = true;
networking.firewall = rec {
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = allowedTCPPortRanges;
};
services.openssh.enable = true;
services.tailscale.enable = true;
# Router shared filesystem
fileSystems."/home/andrey/Public" = {
device = "root@192.168.0.3:/mnt/sda1";
fsType = "sshfs";
options = [
"nodev"
"noatime"
"allow_other"
"reconnect"
"noauto"
"x-systemd.automount"
"IdentityFile=/home/andrey/.ssh/id_ed25519"
];
};
# l10n and i8n
time.timeZone = "Europe/Riga";
i18n.defaultLocale = "en_US.UTF-8";
# Editor
programs.neovim = {
enable = true;
@@ -42,13 +40,15 @@ in
defaultEditor = true;
};
# Nix
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
trusted-users = [ "andrey" ];
experimental-features = [ "nix-command" "flakes" ];
experimental-features = [
"nix-command"
"flakes"
];
flake-registry = "";
nix-path = config.nix.nixPath;
};
@@ -58,23 +58,29 @@ in
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
# Users
users.mutableUsers = false;
users.users.andrey = {
isNormalUser = true;
initialHashedPassword = "$y$j9T$mGZT4otEkrc94e.Ile.P20$BoxfgxCiacs.tYoEp7S5AjcP.aMUBrsaCJYJkBot635";
extraGroups = [ "wheel" "cdrom" "networkmanager" "audio" "dialout" "scanner" "lp" ];
extraGroups = [
"wheel"
"cdrom"
"networkmanager"
"audio"
"dialout"
"scanner"
"lp"
"adbusers"
];
};
security.sudo.execWheelOnly = true;
security.sudo.wheelNeedsPassword = false;
# Printers and scanners
hardware.sane.enable = true;
services.printing.enable = true;
services.printing.drivers = [ pkgs.cnijfilter2 ];
programs.system-config-printer.enable = true;
services.avahi = {
@@ -83,7 +89,6 @@ in
openFirewall = true;
};
# Distcc
services.distccd = {
enable = true;
@@ -91,25 +96,38 @@ in
stats.enable = true;
};
# Programs
programs = {
git = {
enable = true;
config = {
init.defaultBranch = "master";
url."https://github.com/".insteadOf = [ "gh:" "github:" ];
url."https://git.psf.lt/".insteadOf = [ "psf:" "gitea:" ];
url."https://github.com/".insteadOf = [
"gh:"
"github:"
];
url."https://git.psf.lt/".insteadOf = [
"psf:"
"gitea:"
];
};
};
};
# Packages
environment.systemPackages = with pkgs; [
alsa-utils
libextractor
file
unzip
];
hardware.bluetooth = {
enable = true;
settings.General.Enable = "Source,Sink,Media,Socket";
};
# Xorg
security.rtkit.enable = true;
@@ -129,4 +147,11 @@ in
tappingDragLock = false;
};
};
fonts.packages = with pkgs; [
noto-fonts-cjk-sans
noto-fonts-cjk-serif
nerd-fonts.fira-code
];
}

View File

@@ -1,11 +1,6 @@
{
services.distccd.maxJobs = 4;
hardware.bluetooth = {
enable = true;
settings.General.Enable = "Source,Sink,Media,Socket";
};
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {

View File

@@ -12,11 +12,6 @@
};
};
hardware.bluetooth = {
enable = true;
settings.General.Enable = "Source,Sink,Media,Socket";
};
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {

38
system/tuxedo.nix Normal file
View File

@@ -0,0 +1,38 @@
{ lib, pkgs, ... }:
{
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
device = "nodev";
};
};
hardware.graphics.extraPackages = with pkgs; [
intel-media-driver
intel-compute-runtime
intel-media-sdk
];
virtualisation.docker.enable = true;
users.users.andrey.extraGroups = lib.mkAfter [ "docker" ];
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
};
fonts.packages = lib.mkAfter (
with pkgs;
[
vistafonts
corefonts
]
);
}