Compare commits

...

22 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
12 changed files with 460 additions and 308 deletions

74
flake.lock generated
View File

@@ -8,11 +8,11 @@
]
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
@@ -67,11 +67,11 @@
]
},
"locked": {
"lastModified": 1746661235,
"narHash": "sha256-TAm/SnOT8AD3YKYOdjtg5Nmf/hCKEwc0USHBIoXV8qo=",
"lastModified": 1749935160,
"narHash": "sha256-lTLR7AyrrIS/b4frHKb5pw/gcPM0GgoGCURqeiOX9k8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ec71b5162848e6369bdf2be8d2f1dd41cded88e8",
"rev": "8fabeb9c142a303e02270c3a3a0d8e00af9d0dfe",
"type": "github"
},
"original": {
@@ -115,16 +115,16 @@
]
},
"locked": {
"lastModified": 1737371634,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
"lastModified": 1748294338,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.7",
"ref": "v0.0.8",
"repo": "ixx",
"type": "github"
}
@@ -147,11 +147,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1746461020,
"narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@@ -163,11 +163,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1746461020,
"narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@@ -183,14 +183,15 @@
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch"
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1746650585,
"narHash": "sha256-9WZtcSn1/UkYK4UNXkcLCnVR7aIVI83VweqVlCf06OA=",
"lastModified": 1749924512,
"narHash": "sha256-IYv0yEFh86c+UnkcjrUAV0UeIE+9vMEeXDIF+YRlooc=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "6597afe2097ba07fdf515a541a2a02a7e06768cd",
"rev": "e114d442b14f3a299307ca9b0f0eab20e821f419",
"type": "github"
},
"original": {
@@ -206,11 +207,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1746658175,
"narHash": "sha256-3T7nq2pMvbm6Jf7v2ow6WX0seR4wxnvqIkCkxDQ4PeM=",
"lastModified": 1749934169,
"narHash": "sha256-2oGEmCWq0T2qG7tUaPdUv0jOk09oWTit9NfI6gCScC4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "f80f80517b5a2d37b4cec14e13c7cbc04d3c1c16",
"rev": "da2de77056b07a63601c9198708ff02ddab21fcb",
"type": "github"
},
"original": {
@@ -229,11 +230,11 @@
]
},
"locked": {
"lastModified": 1745046075,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
"lastModified": 1749730855,
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"owner": "NuschtOS",
"repo": "search",
"rev": "066afe8643274470f4a294442aadd988356a478f",
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"type": "github"
},
"original": {
@@ -250,11 +251,11 @@
]
},
"locked": {
"lastModified": 1742765550,
"narHash": "sha256-2vVIh2JrL6GAGfgCeY9e6iNKrBjs0Hw3bGQEAbwVs68=",
"lastModified": 1748196248,
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "b70be387276e632fe51232887f9e04e2b6ef8c16",
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
"type": "github"
},
"original": {
@@ -288,6 +289,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"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [

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" "tuxedo" ];
stateVersion = "24.05";
makeSystem = hostname: {
"${hostname}" = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
nur.modules.nixos.default
./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.overlays.default ];
};
nixosConfigurations = forEachHost makeSystem;
modules = (extractModules [
nixvim
nethack
plasma-manager
]) ++ [
nur.modules.homeManager.default
./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

@@ -4,7 +4,6 @@
./modules/thunderbird
./modules/nethack
./modules/firefox
./modules/neovim
];
programs = {
@@ -12,21 +11,27 @@
fastfetch.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:"
];
};
};
@@ -39,43 +44,54 @@
};
};
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
gimp
krita
inkscape
gimp
krita
inkscape
ani-cli
ytfzf
ani-cli
ytfzf
cpufrequtils
steam-run
cpufrequtils
steam-run
sent'
];
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

@@ -7,7 +7,7 @@
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
private-relay
yomitan
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;
@@ -56,59 +59,97 @@
force = true;
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" "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" ];
};
"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}"; }];
icon = "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}"; }];
icon = "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}"; }];
icon = "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,31 +14,31 @@
copilot-lua = {
enable = true;
settings = {
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

@@ -34,20 +34,20 @@
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 = {
@@ -199,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";
@@ -218,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

@@ -4,7 +4,7 @@
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,17 +13,21 @@
};
};
services.kdeconnect.enable = true;
programs.plasma = {
enable = true;
input.touchpads = [{
enable = true;
name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002";
productId = "0007";
disableWhileTyping = false;
naturalScroll = true;
}];
input.touchpads = [
{
enable = true;
name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002";
productId = "0007";
disableWhileTyping = false;
naturalScroll = true;
}
];
kwin.edgeBarrier = 0;
workspace = {
@@ -40,54 +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 = "belowTime";
calendar.firstDayOfWeek = "monday";
widgets =
let
kickoff = {
kickoff.icon = "nix-snowflake-white";
};
};
workspaces = "org.kde.plasma.pager";
separator = "org.kde.plasma.panelspacer";
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
];
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";
@@ -148,4 +152,6 @@
};
};
};
gtk.gtk2.force = true;
}

View File

@@ -1,5 +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,23 +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;
# l10n and i8n
time.timeZone = "Europe/Riga";
i18n.defaultLocale = "en_US.UTF-8";
# Editor
programs.neovim = {
enable = true;
@@ -26,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;
};
@@ -42,19 +58,26 @@ 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" "adbusers" ];
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;
@@ -73,32 +96,39 @@ 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;
services = {
@@ -121,5 +151,7 @@ in
fonts.packages = with pkgs; [
noto-fonts-cjk-sans
noto-fonts-cjk-serif
nerd-fonts.fira-code
];
}

View File

@@ -1,3 +1,4 @@
{ lib, pkgs, ... }:
{
boot.loader = {
efi = {
@@ -10,6 +11,15 @@
};
};
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 = {
@@ -17,4 +27,12 @@
wayland.enable = true;
};
};
fonts.packages = lib.mkAfter (
with pkgs;
[
vistafonts
corefonts
]
);
}