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": {

161
flake.nix
View File

@@ -2,102 +2,107 @@
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, {
nixpkgs, self,
home-manager, nixpkgs,
nixvim, home-manager,
nethack, nixvim,
plasma-manager, nethack,
nur, plasma-manager,
... nur,
} @ inputs: ...
let }@inputs:
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:
let let
extractModules = map inherit (nixpkgs) lib;
(module:
let hm = module.homeManagerModules; username = "andrey";
in hm.${lib.head (lib.attrNames hm)}); 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 in
{ {
"${username}@${hostname}" = home-manager.lib.homeManagerConfiguration nixosConfigurations = forEachHost makeSystem;
{
extraSpecialArgs = { inherit inputs; };
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ nur.overlays.default ];
};
modules = (extractModules [ formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
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;
}
];
};
}; };
forEachHost = fn: lib.mergeAttrsList (map fn hostnames);
in {
nixosConfigurations = forEachHost makeSystem;
homeConfigurations = forEachHost makeHome;
};
} }

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,49 +52,46 @@
}; };
}; };
nixpkgs.config.allowUnfree = true;
home = { home = {
packages = with pkgs; let packages =
sent' = sent.overrideAttrs (oldAttrs: { with pkgs;
buildInputs = oldAttrs.buildInputs ++ [ cairo ]; let
patches = [ sent' = sent.overrideAttrs (oldAttrs: {
./resources/patches/sent-pdf.diff buildInputs = oldAttrs.buildInputs ++ [ cairo ];
]; patches = [
}); ./resources/patches/sent-pdf.diff
in [ ];
texlive.combined.scheme-full });
telegram-desktop in
libreoffice-qt6 [
libqalculate texlive.combined.scheme-full
arduino-cli telegram-desktop
libreoffice-qt6
libqalculate
arduino-cli
gimp gimp
krita krita
inkscape inkscape
ani-cli ani-cli
ytfzf ytfzf
cpufrequtils cpufrequtils
steam-run steam-run
sent' sent'
gcc gcc
python3 python3
nodejs nodejs
lua lua
wl-clipboard wl-clipboard
]; ];
sessionVariables = { sessionVariables = {
ANI_CLI_PLAYER = "mpv"; ANI_CLI_PLAYER = "mpv";
}; };
file = {
".config/nixpkgs/config.nix".text = "{ allowUnfree = true; }";
};
}; };
} }

View File

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

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,59 +59,97 @@
force = true; force = true;
default = "ddg"; default = "ddg";
engines = let engines =
makeShortcuts = let let
prefix = "@"; makeShortcuts =
in map (shortcut: prefix + shortcut); let
prefix = "@";
in
map (shortcut: prefix + shortcut);
hideEngines = let hideEngines =
hideEngine = engine: { let
name = engine; hideEngine = engine: {
value = { name = engine;
metaData.hidden = true; value = {
}; metaData.hidden = true;
}; };
in engines: lib.listToAttrs (map hideEngine engines); };
in (hideEngines [ "google" "bing" "amazondotcom-us" "ebay" ]) // in
{ engines: lib.listToAttrs (map hideEngine engines);
"Arch Wiki" = { in
urls = [{ template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; }]; (hideEngines [
icon = "https://wiki.archlinux.org/favicon.ico"; "google"
definedAliases = makeShortcuts [ "archlinux" "aw" ]; "bing"
}; "amazondotcom-us"
"ebay"
"Nix Packages" = { ])
urls = [{ // {
template = "https://search.nixos.org/packages"; "Arch Wiki" = {
params = [ urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
{ name = "type"; value = "packages"; } icon = "https://wiki.archlinux.org/favicon.ico";
{ name = "channel"; value = "unstable"; } definedAliases = makeShortcuts [
{ name = "query"; value = "{searchTerms}"; } "archlinux"
"aw"
]; ];
}]; };
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; "Nix Packages" = {
definedAliases = makeShortcuts [ "nixpkgs" "packages" "np" ]; urls = [
}; {
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
"NixOS Wiki" = { icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }]; definedAliases = makeShortcuts [
icon = "https://wiki.nixos.org/favicon.png"; "nixpkgs"
definedAliases = makeShortcuts [ "nixos" "nw" ]; "packages"
}; "np"
];
};
"MyNixOS" = { "NixOS Wiki" = {
urls = [{ template = "https://mynixos.com/search?q={searchTerms}"; }]; urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
icon = "https://mynixos.com/favicon-light.svg"; icon = "https://wiki.nixos.org/favicon.png";
definedAliases = makeShortcuts [ "mynixos" "mw" ]; definedAliases = makeShortcuts [
}; "nixos"
"nw"
];
};
"RuTracker" = { "MyNixOS" = {
urls = [{ template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; }]; urls = [ { template = "https://mynixos.com/search?q={searchTerms}"; } ];
icon = "https://rutracker.org/favicon.ico"; icon = "https://mynixos.com/favicon-light.svg";
definedAliases = makeShortcuts [ "rutracker" "rt" ]; 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; 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,26 +51,28 @@ in
}; };
}; };
bind = [ bind =
"SUPER, Return, exec, kitty" [
"SUPER SHIFT, Q, exit" "SUPER, Return, exec, kitty"
"SUPER SHIFT, Q, exit"
"SUPER, V, togglefloating" "SUPER, V, togglefloating"
"SUPER, J, togglesplit" "SUPER, J, togglesplit"
"SUPER, P, pseudo" "SUPER, P, pseudo"
"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

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

View File

@@ -34,20 +34,20 @@
hilite_status = { hilite_status = {
hitpoints = { hitpoints = {
"100%" = "grey"; "100%" = "grey";
"<100%" = "green"; "<100%" = "green";
"<66%" = "yellow"; "<66%" = "yellow";
"<50%" = "orange"; "<50%" = "orange";
"<33%" = "red&bold"; "<33%" = "red&bold";
"<15%" = "red&inverse"; "<15%" = "red&inverse";
}; };
power = { power = {
"100%" = "grey"; "100%" = "grey";
"<100%" = "green"; "<100%" = "green";
"<66%" = "yellow"; "<66%" = "yellow";
"<50%" = "orange"; "<50%" = "orange";
"<33%" = "red&bold"; "<33%" = "red&bold";
}; };
cap = { cap = {
@@ -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; {
name = "SynPS/2 Synaptics TouchPad"; enable = true;
vendorId = "0002"; name = "SynPS/2 Synaptics TouchPad";
productId = "0007"; vendorId = "0002";
disableWhileTyping = false; productId = "0007";
naturalScroll = true; disableWhileTyping = false;
}]; naturalScroll = true;
}
];
kwin.edgeBarrier = 0; kwin.edgeBarrier = 0;
workspace = { workspace = {
@@ -40,54 +44,54 @@
floating = false; floating = false;
height = 44; height = 44;
widgets = let widgets =
kickoff = { let
kickoff.icon = "nix-snowflake-white"; 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";
}; };
};
workspaces = "org.kde.plasma.pager"; taskmanager = {
separator = "org.kde.plasma.panelspacer"; iconTasks.launchers = [
in "applications:systemsettings.desktop"
[ "applications:org.kde.dolphin.desktop"
kickoff "applications:firefox.desktop"
workspaces "applications:org.kde.konsole.desktop"
taskmanager ];
};
separator systray = {
digital-clock systemTray.items.shown = [
separator "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 = [ 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 (
vistafonts with pkgs;
corefonts [
]); vistafonts
corefonts
]
);
} }