Compare commits

...

8 Commits

11 changed files with 398 additions and 307 deletions

42
flake.lock generated
View File

@@ -8,11 +8,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1749398372,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -67,11 +67,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748529677, "lastModified": 1749935160,
"narHash": "sha256-MJEX3Skt5EAIs/aGHD8/aXXZPcceMMHheyIGSjvxZN0=", "narHash": "sha256-lTLR7AyrrIS/b4frHKb5pw/gcPM0GgoGCURqeiOX9k8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "da282034f4d30e787b8a10722431e8b650a907ef", "rev": "8fabeb9c142a303e02270c3a3a0d8e00af9d0dfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -147,11 +147,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1748370509, "lastModified": 1749794982,
"narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4faa5f5321320e49a78ae7848582f684d64783e9", "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -163,11 +163,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1748370509, "lastModified": 1749794982,
"narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4faa5f5321320e49a78ae7848582f684d64783e9", "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -187,11 +187,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1748521000, "lastModified": 1749924512,
"narHash": "sha256-EnXH5PIrZBoe8U09hPQr2kOuPTZSqAJy78DqUVLmWXg=", "narHash": "sha256-IYv0yEFh86c+UnkcjrUAV0UeIE+9vMEeXDIF+YRlooc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "a9e45072d82374dd3f0d971795e7d7f99e5bc6c2", "rev": "e114d442b14f3a299307ca9b0f0eab20e821f419",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -207,11 +207,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1748558601, "lastModified": 1749934169,
"narHash": "sha256-k3Cc3xmWYiNmVeZ5MKImLw5wxydiB43gdFHj67O11hE=", "narHash": "sha256-2oGEmCWq0T2qG7tUaPdUv0jOk09oWTit9NfI6gCScC4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "1cca4d2115773d20a960bbafa44ee2fa5b0fb908", "rev": "da2de77056b07a63601c9198708ff02ddab21fcb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -230,11 +230,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748298102, "lastModified": 1749730855,
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=", "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f", "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

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

View File

@@ -11,13 +11,11 @@
fastfetch.enable = true; fastfetch.enable = true;
btop.enable = true; btop.enable = true;
bash = { bash = {
enable = true; enable = true;
historyControl = [ "ignoreboth" ]; historyControl = [ "ignoreboth" ];
}; };
git = { git = {
enable = true; enable = true;
userName = "xezo360hye"; userName = "xezo360hye";
@@ -26,8 +24,14 @@
extraConfig = { extraConfig = {
credential.helper = "store"; credential.helper = "store";
init.defaultBranch = "master"; init.defaultBranch = "master";
url."https://github.com/".insteadOf = [ "gh:" "github:" ]; url."https://github.com/".insteadOf = [
url."https://git.psf.lt/".insteadOf = [ "psf:" "gitea:" ]; "gh:"
"github:"
];
url."https://git.psf.lt/".insteadOf = [
"psf:"
"gitea:"
];
}; };
}; };
@@ -48,17 +52,18 @@
}; };
}; };
nixpkgs.config.allowUnfree = true;
home = { home = {
packages = with pkgs; let packages =
with pkgs;
let
sent' = sent.overrideAttrs (oldAttrs: { sent' = sent.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs ++ [ cairo ]; buildInputs = oldAttrs.buildInputs ++ [ cairo ];
patches = [ patches = [
./resources/patches/sent-pdf.diff ./resources/patches/sent-pdf.diff
]; ];
}); });
in [ in
[
texlive.combined.scheme-full texlive.combined.scheme-full
telegram-desktop telegram-desktop
libreoffice-qt6 libreoffice-qt6
@@ -88,9 +93,5 @@
sessionVariables = { sessionVariables = {
ANI_CLI_PLAYER = "mpv"; ANI_CLI_PLAYER = "mpv";
}; };
file = {
".config/nixpkgs/config.nix".text = "{ allowUnfree = true; }";
};
}; };
} }

View File

@@ -3,7 +3,8 @@
programs.emacs = { programs.emacs = {
enable = true; enable = true;
package = pkgs.emacs-gtk; package = pkgs.emacs-gtk;
extraPackages = epkgs: with epkgs; [ extraPackages =
epkgs: with epkgs; [
doom doom
magit magit

View File

@@ -46,6 +46,9 @@
"browser.translations.automaticallyPopup" = false; "browser.translations.automaticallyPopup" = false;
"browser.tabs.inTitlebar" = 0; "browser.tabs.inTitlebar" = 0;
"devtools.accessibility.enabled" = false;
"browser.eme.ui.enabled" = false;
"services.sync.engine.addons" = false; "services.sync.engine.addons" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
@@ -56,57 +59,95 @@
force = true; force = true;
default = "ddg"; default = "ddg";
engines = let engines =
makeShortcuts = let let
makeShortcuts =
let
prefix = "@"; prefix = "@";
in map (shortcut: prefix + shortcut); in
map (shortcut: prefix + shortcut);
hideEngines = let hideEngines =
let
hideEngine = engine: { hideEngine = engine: {
name = engine; name = engine;
value = { value = {
metaData.hidden = true; metaData.hidden = true;
}; };
}; };
in engines: lib.listToAttrs (map hideEngine engines); in
in (hideEngines [ "google" "bing" "amazondotcom-us" "ebay" ]) // engines: lib.listToAttrs (map hideEngine engines);
{ in
(hideEngines [
"google"
"bing"
"amazondotcom-us"
"ebay"
])
// {
"Arch Wiki" = { "Arch Wiki" = {
urls = [{ template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; }]; urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
icon = "https://wiki.archlinux.org/favicon.ico"; icon = "https://wiki.archlinux.org/favicon.ico";
definedAliases = makeShortcuts [ "archlinux" "aw" ]; definedAliases = makeShortcuts [
"archlinux"
"aw"
];
}; };
"Nix Packages" = { "Nix Packages" = {
urls = [{ urls = [
{
template = "https://search.nixos.org/packages"; template = "https://search.nixos.org/packages";
params = [ params = [
{ name = "type"; value = "packages"; } {
{ name = "channel"; value = "unstable"; } name = "type";
{ name = "query"; value = "{searchTerms}"; } value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
]; ];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = makeShortcuts [ "nixpkgs" "packages" "np" ]; definedAliases = makeShortcuts [
"nixpkgs"
"packages"
"np"
];
}; };
"NixOS Wiki" = { "NixOS Wiki" = {
urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }]; urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
icon = "https://wiki.nixos.org/favicon.png"; icon = "https://wiki.nixos.org/favicon.png";
definedAliases = makeShortcuts [ "nixos" "nw" ]; definedAliases = makeShortcuts [
"nixos"
"nw"
];
}; };
"MyNixOS" = { "MyNixOS" = {
urls = [{ template = "https://mynixos.com/search?q={searchTerms}"; }]; urls = [ { template = "https://mynixos.com/search?q={searchTerms}"; } ];
icon = "https://mynixos.com/favicon-light.svg"; icon = "https://mynixos.com/favicon-light.svg";
definedAliases = makeShortcuts [ "mynixos" "mw" ]; definedAliases = makeShortcuts [
"mynixos"
"mw"
];
}; };
"RuTracker" = { "RuTracker" = {
urls = [{ template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; }]; urls = [ { template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; } ];
icon = "https://rutracker.org/favicon.ico"; icon = "https://rutracker.org/favicon.ico";
definedAliases = makeShortcuts [ "rutracker" "rt" ]; definedAliases = makeShortcuts [
"rutracker"
"rt"
];
}; };
}; };
}; };
@@ -126,7 +167,7 @@
EmailTracking = true; EmailTracking = true;
Fingerprinting = true; Fingerprinting = true;
Exceptions = []; Exceptions = [ ];
}; };
FirefoxHome = { FirefoxHome = {

View File

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

View File

@@ -199,17 +199,21 @@
"(mud|buckled|riding|snow|hiking|combat|jungle) boots" = "magenta"; "(mud|buckled|riding|snow|hiking|combat|jungle) boots" = "magenta";
" (Dragonbane|Fire Brand|Frost Brand|Ogresmasher|Trollsbane|Werebane)" = "lightgreen"; " (Dragonbane|Fire Brand|Frost Brand|Ogresmasher|Trollsbane|Werebane)" = "lightgreen";
" (Demonbane|Excalibur|Grayswandir|Snickersnee|Sunsword)" = "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"; " (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"; " (Grimtooth|Orcrist|Sting|Stormbringer)" = "lightgreen";
" (Longbow of Diana|Master Key of Thievery)" = "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"; " Amulet of Yendor named" = "magenta&bold";
" cursed.* bag .* holding" = "red&bold"; " cursed.* bag .* holding" = "red&bold";
" cursed.* luck(stone)?($| )" = "red&bold"; " cursed.* luck(stone)?($| )" = "red&bold";
" cursed.* unicorn horn" = "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"; "cursed tins? .* spinach|tins? .* spinach .* (cursed|C($| ))" = "red";
" load(stone)?($| )" = "red&underline"; " load(stone)?($| )" = "red&underline";
" bag .* tricks" = "blue&underline"; " bag .* tricks" = "blue&underline";
@@ -218,8 +222,10 @@
" gold piece" = "yellow"; " gold piece" = "yellow";
" valuable" = "brown"; " valuable" = "brown";
" gems? .* hard" = "yellow"; " 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 )?(dilithium|opal|garnet|jasper|agate|jet|obsidian|jade|citrine|chrysoberyl|amber|amethyst|fluorite|turquoise)(e?s)?( stones?| gems?| crystals?)?( named .*)?$" =
" ([0-9]+|an?|gems?.*) (uncursed |cursed |blessed )?(diamond|rub(y|ies)|jacinth|sapphire|black opal|emerald|topaz|aquamarine)(e?s)?( stones?| gems?)?( named .*)?$" = "yellow"; "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"; " 0%" = "white";
" [1-9]%" = "cyan"; " [1-9]%" = "cyan";
" [12][0-9]%" = "cyan"; " [12][0-9]%" = "cyan";

View File

@@ -4,7 +4,7 @@
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ]; nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
profiles.default = { profiles.default = {
extensions = [ pkgs.nur.repos.rycee.firefox-addons.plasma-integration ]; extensions.packages = [ pkgs.nur.repos.rycee.firefox-addons.plasma-integration ];
settings = { settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1; "widget.use-xdg-desktop-portal.file-picker" = 1;
@@ -13,17 +13,21 @@
}; };
}; };
services.kdeconnect.enable = true;
programs.plasma = { programs.plasma = {
enable = true; enable = true;
input.touchpads = [{ input.touchpads = [
{
enable = true; enable = true;
name = "SynPS/2 Synaptics TouchPad"; name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002"; vendorId = "0002";
productId = "0007"; productId = "0007";
disableWhileTyping = false; disableWhileTyping = false;
naturalScroll = true; naturalScroll = true;
}]; }
];
kwin.edgeBarrier = 0; kwin.edgeBarrier = 0;
workspace = { workspace = {
@@ -40,7 +44,8 @@
floating = false; floating = false;
height = 44; height = 44;
widgets = let widgets =
let
kickoff = { kickoff = {
kickoff.icon = "nix-snowflake-white"; kickoff.icon = "nix-snowflake-white";
}; };
@@ -87,7 +92,6 @@
} }
]; ];
window-rules = [ window-rules = [
{ {
description = "Konsole"; description = "Konsole";
@@ -148,4 +152,6 @@
}; };
}; };
}; };
gtk.gtk2.force = 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 in
{ {
# Bootloader # Bootloader
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.device = lib.mkDefault "/dev/sda"; boot.loader.grub.device = lib.mkDefault "/dev/sda";
# Networking # Networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.firewall = rec {
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = allowedTCPPortRanges;
};
services.openssh.enable = true; services.openssh.enable = true;
services.tailscale.enable = true; services.tailscale.enable = true;
# l10n and i8n # l10n and i8n
time.timeZone = "Europe/Riga"; time.timeZone = "Europe/Riga";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
# Editor # Editor
programs.neovim = { programs.neovim = {
enable = true; enable = true;
@@ -26,13 +40,15 @@ in
defaultEditor = true; defaultEditor = true;
}; };
# Nix # Nix
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix = { nix = {
settings = { settings = {
trusted-users = [ "andrey" ]; trusted-users = [ "andrey" ];
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [
"nix-command"
"flakes"
];
flake-registry = ""; flake-registry = "";
nix-path = config.nix.nixPath; nix-path = config.nix.nixPath;
}; };
@@ -42,19 +58,26 @@ in
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
}; };
# Users # Users
users.mutableUsers = false; users.mutableUsers = false;
users.users.andrey = { users.users.andrey = {
isNormalUser = true; isNormalUser = true;
initialHashedPassword = "$y$j9T$mGZT4otEkrc94e.Ile.P20$BoxfgxCiacs.tYoEp7S5AjcP.aMUBrsaCJYJkBot635"; 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.execWheelOnly = true;
security.sudo.wheelNeedsPassword = false; security.sudo.wheelNeedsPassword = false;
# Printers and scanners # Printers and scanners
hardware.sane.enable = true; hardware.sane.enable = true;
services.printing.enable = true; services.printing.enable = true;
@@ -73,20 +96,24 @@ in
stats.enable = true; stats.enable = true;
}; };
# Programs # Programs
programs = { programs = {
git = { git = {
enable = true; enable = true;
config = { config = {
init.defaultBranch = "master"; init.defaultBranch = "master";
url."https://github.com/".insteadOf = [ "gh:" "github:" ]; url."https://github.com/".insteadOf = [
url."https://git.psf.lt/".insteadOf = [ "psf:" "gitea:" ]; "gh:"
"github:"
];
url."https://git.psf.lt/".insteadOf = [
"psf:"
"gitea:"
];
}; };
}; };
}; };
# Packages # Packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alsa-utils alsa-utils
@@ -97,13 +124,11 @@ in
unzip unzip
]; ];
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
settings.General.Enable = "Source,Sink,Media,Socket"; settings.General.Enable = "Source,Sink,Media,Socket";
}; };
# Xorg # Xorg
security.rtkit.enable = true; security.rtkit.enable = true;
services = { services = {

View File

@@ -28,8 +28,11 @@
}; };
}; };
fonts.packages = lib.mkAfter (with pkgs; [ fonts.packages = lib.mkAfter (
with pkgs;
[
vistafonts vistafonts
corefonts corefonts
]); ]
);
} }