Compare commits

...

62 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
649c734b79 feat(system): add distcc server to every machine 2024-09-09 01:35:53 +03:00
3975280145 fix(system): only mount ~/Public when accessed 2024-09-04 22:36:48 +03:00
65962041e3 chore: update flake inputs 2024-09-03 17:36:09 +03:00
f9e87d2d0a feat(home): add thunderbird module, included in common.nix 2024-09-03 01:28:10 +03:00
31d3e1c2ac feat(system/maidena,system/noma): add bluetooth support 2024-09-02 23:50:10 +03:00
abda1acad9 feat: add new host, noma.nix 2024-09-02 23:40:26 +03:00
4346c1502b chore: add gitignore 2024-08-21 15:38:19 +03:00
42ddf88931 feah(home): add suckless sent tool with pdf patch 2024-08-21 15:30:03 +03:00
7151ae23d7 fix(home): clock/date and spacers on plasma panel 2024-08-17 19:45:31 +03:00
186afc9cd0 feat(home): add power configuration to plasma 2024-08-17 19:44:57 +03:00
155e1512de fix(home): plasma panel configuration 2024-08-17 19:25:05 +03:00
3fa174d961 refactor(flake): discovered function lib.mergeAttrsList, now used in forEachHost 2024-08-17 19:13:24 +03:00
09829c1786 feat(home): change plasma panel 2024-08-17 19:05:40 +03:00
69af85a55e feat(system): change public filesystem ip address 2024-08-17 17:41:50 +03:00
3eea0a9bd4 feat(system): add avahi service 2024-08-17 17:41:03 +03:00
9aa3ab5d41 feat(system): add myself as trusted user for nix 2024-08-16 02:03:02 +03:00
8dd38dd6c0 feat(system): enable tailscale for all hosts 2024-08-16 01:44:46 +03:00
db2758d0fc feat(home): add emacs, enable it for maidena host 2024-08-16 01:44:14 +03:00
c2a85ce5df feat(home): add latex package, full scheme 2024-08-15 16:28:28 +03:00
6dec59555e refactor(flake): modifications for readability 2024-08-15 00:41:37 +03:00
a4e3511154 feat(system): add printer and scanner support by default 2024-08-15 00:31:46 +03:00
bf2392c65b refactor(home): move modules/{program}.nix to modules/{program}/default.nix 2024-08-13 22:52:21 +03:00
c55400247b refactor(home): move neovim config to modules/ 2024-08-13 17:19:02 +03:00
8f9b03ecb0 fix(home): remove firefox containers, somehow fixes console 2024-08-13 17:00:07 +03:00
f7e1b1c86c feat(home): improve default wallpaper 2024-08-13 12:15:17 +03:00
95f82db97b fix: add missing allowUnfree options 2024-08-12 22:24:07 +03:00
de224ad756 feat(home): improve firefox configs and fix plasma integration 2024-08-12 22:22:31 +03:00
b2b5c5e003 feat(home): in dolphin, browse through archives 2024-08-11 17:30:20 +03:00
1763a0a695 feat(home): NUR + firefox plasma integration
Install plasma-integration extension from NUR, add two settings to
enhance experience in KDE Plasma:

- disable media keys due to plasma-integration
- use KDE file picker over default GTK one
2024-08-11 17:29:31 +03:00
df07321782 chore: update flake inputs 2024-08-10 23:38:25 +03:00
26 changed files with 1108 additions and 586 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/result
*.qcow2
.directory

262
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": 1722857853,
"narHash": "sha256-3Zx53oz/MSIyevuWO/SumxABkrIvojnB7g9cimxkhiE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "06939f6b7ec4d4f465bf3132a05367cccbbf64da",
"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": 1723015306,
"narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=",
"lastModified": 1749935160,
"narHash": "sha256-lTLR7AyrrIS/b4frHKb5pw/gcPM0GgoGCURqeiOX9k8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e",
"rev": "8fabeb9c142a303e02270c3a3a0d8e00af9d0dfe",
"type": "github"
},
"original": {
@@ -149,16 +83,16 @@
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"plasma-manager",
"nixpkgs"
]
},
"locked": {
"lastModified": 1722630065,
"narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=",
"lastModified": 1740494361,
"narHash": "sha256-Dd/GhJ9qKmUwuhgt/PAROG8J6YdU2ZjtJI9SQX5sVQI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "afc892db74d65042031a093adb6010c4c3378422",
"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": 1722924007,
"narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "91010a5613ffd7ee23ee9263213157a1c422b705",
"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": 1722813957,
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
"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": 1723192118,
"narHash": "sha256-juQM/w6GY8aHQCBazvyMEPlfnt4pB+ja7WDQOQQYyEY=",
"lastModified": 1749924512,
"narHash": "sha256-IYv0yEFh86c+UnkcjrUAV0UeIE+9vMEeXDIF+YRlooc=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "c46bd820adabaf23acbccbbd226b1941566acb51",
"rev": "e114d442b14f3a299307ca9b0f0eab20e821f419",
"type": "github"
},
"original": {
@@ -269,20 +200,41 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1749934169,
"narHash": "sha256-2oGEmCWq0T2qG7tUaPdUv0jOk09oWTit9NfI6gCScC4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "da2de77056b07a63601c9198708ff02ddab21fcb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1722772237,
"narHash": "sha256-3eCYmzeLngX8eutIsTZAG8DIvT/0DWQQxiszTQz8n0s=",
"lastModified": 1749730855,
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"owner": "NuschtOS",
"repo": "search",
"rev": "aa5f6246565cc9b1e697d2c9d6ed2c842b17fff6",
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"type": "github"
},
"original": {
@@ -293,17 +245,17 @@
},
"plasma-manager": {
"inputs": {
"home-manager": "home-manager_3",
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1723141065,
"narHash": "sha256-6HD3Cx4KofX3jyWpZK1Nt1RmnPs2tD4HQLm3Ytk+htk=",
"lastModified": 1748196248,
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "5ab818b79ba5c6651209cc1c1d19afe6c9046ed4",
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
"type": "github"
},
"original": {
@@ -318,6 +270,7 @@
"nethack": "nethack",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"nur": "nur",
"plasma-manager": "plasma-manager"
}
},
@@ -336,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": 1722330636,
"narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=",
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "768acdb06968e53aa1ee8de207fd955335c754b7",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {

132
flake.nix
View File

@@ -2,73 +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";
};
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, ... } @ inputs:
let
inherit (self) outputs;
inherit (nixpkgs) lib;
outputs =
{
self,
nixpkgs,
home-manager,
nixvim,
nethack,
plasma-manager,
nur,
...
}@inputs:
let
inherit (nixpkgs) lib;
username = "andrey";
hostnames = [ "tokishiko" "maidena" ];
stateVersion = "24.05";
username = "andrey";
hostnames = [
"tokishiko"
"maidena"
"noma"
"tuxedo"
];
stateVersion = "24.05";
makeSystem = hostname: {
"${hostname}" = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./system/common.nix
./system/${hostname}.nix
./hardware/${hostname}.nix
{
system.stateVersion = stateVersion;
networking.hostName = hostname;
}
];
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";
};
}
];
};
};
};
extractModule = { homeManagerModules, ... }: homeManagerModules."${lib.head (lib.attrNames homeManagerModules)}";
homeManagerModules = map extractModule [ nixvim nethack plasma-manager ];
makeHome = hostname: {
"${username}@${hostname}" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = homeManagerModules ++ [
./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;
forEachHost = fn: lib.fold lib.mergeAttrs {} (map fn hostnames);
in {
nixosConfigurations = forEachHost makeSystem;
homeConfigurations = forEachHost makeHome;
};
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
};
}

39
hardware/noma.nix Normal file
View File

@@ -0,0 +1,39 @@
# 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" "usb_storage" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/522d5c82-5a7b-4aa2-8b69-7c7a8b225924";
fsType = "xfs";
};
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/D219-B08E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# 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.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

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

@@ -1,95 +1,94 @@
{ pkgs, ... }:
{
imports = [
./modules/nethack.nix
./modules/firefox.nix
./modules/thunderbird
./modules/nethack
./modules/firefox
];
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:"
];
};
};
nixvim = {
enable = true;
colorschemes.nightfox = {
enable = true;
flavor = "nordfox";
};
plugins = {
guess-indent = {
enable = true;
};
copilot-lua = {
enable = true;
suggestion.autoTrigger = true;
suggestion.keymap = {
accept = "<M-Right>";
acceptLine = "<M-l>";
acceptWord = "<M-w>";
};
};
};
keymaps = [
{
mode = "n";
key = ";";
action = ":";
}
{
mode = "n";
key = "<Esc>";
action = "<Cmd>nohlsearch<CR>";
options = {
silent = true;
};
}
];
};
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; [
telegram-desktop
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
cpufrequtils
steam-run
sent'
gcc
python3
nodejs
lua
wl-clipboard
];
sessionVariables = {
ANI_CLI_PLAYER = "mpv";

View File

@@ -1,6 +1,6 @@
{
imports = [
./modules/hyprland.nix
./modules/plasma.nix
./modules/hyprland
./modules/plasma
];
}

View File

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

View File

@@ -1,97 +0,0 @@
{ pkgs, ... }:
{
programs.firefox = {
enable = true;
profiles.default = {
containersForce = true;
containers = {
social = {
color = "turquoise";
icon = "fence";
id = 1;
};
shopping = {
color = "orange";
icon = "cart";
id = 2;
};
};
search = {
force = true;
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Wiki" = {
urls = [{ template = "https://wiki.nixos.org/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://wiki.nixos.org/favicon.png";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = [ "@nw" ];
};
"MyNixOS" = {
urls = [{ template = "https://mynixos.com/search?q={searchTerms}"; }];
iconUpdateURL = "https://mynixos.com/favicon-light.svg";
definedAliases = [ "@mn" "@mw" ];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.com".metaData.hidden = true;
"eBay".metaData.hidden = true;
};
};
};
policies = {
DisableFirefoxStudies = true;
DisableTelemetry = true;
DisablePocket = true;
DontCheckDefaultBrowser = true;
DownloadDirectory = "\${home}";
EnableTrackingProtection = {
Value = true;
Locked = false;
Cryptomining = true;
EmailTracking = true;
Fingerprinting = true;
Exceptions = [];
};
FirefoxHome = {
SponsoredTopSites = false;
Pocket = false;
SponsoredPocket = false;
};
StartDownloadsInTempDirectory = true;
TranslateEnabled = true;
Preferences = {
"browser.translations.automaticallyPopup" = {
Value = false;
Status = "default";
};
};
};
};
}

View File

@@ -0,0 +1,182 @@
{ lib, pkgs, ... }:
{
programs.firefox = {
enable = true;
profiles.default = {
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
private-relay
yomitan
reddit-enhancement-suite
enhancer-for-youtube
qr-code-address-bar
];
settings = {
"browser.newtabpage.pinned" = [
{
label = "Arch Wiki";
url = "https://wiki.archlinux.org";
}
{
label = "Translate";
url = "https://mozhi.pussthecat.org";
}
{
label = "ChatGPT";
url = "https://chatgpt.com";
}
{
label = "YouTube";
url = "https://youtube.com";
}
{
label = "Reddit";
url = "https://old.reddit.com";
}
{
label = "4chan";
url = "https://www.4chan.org/frames";
}
];
"browser.aboutConfig.showWarning" = false;
"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;
"extensions.autoDisableScopes" = 0;
};
search = {
force = true;
default = "ddg";
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}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = makeShortcuts [
"nixpkgs"
"packages"
"np"
];
};
"NixOS Wiki" = {
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
icon = "https://wiki.nixos.org/favicon.png";
definedAliases = makeShortcuts [
"nixos"
"nw"
];
};
"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"
];
};
};
};
};
policies = {
DontCheckDefaultBrowser = true;
DisableFirefoxStudies = true;
DisableTelemetry = true;
DisablePocket = true;
EnableTrackingProtection = {
Value = true;
Locked = false;
Cryptomining = true;
EmailTracking = true;
Fingerprinting = true;
Exceptions = [ ];
};
FirefoxHome = {
SponsoredTopSites = false;
SponsoredPocket = false;
Pocket = false;
};
StartDownloadsInTempDirectory = true;
};
};
}

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

@@ -0,0 +1,44 @@
{
programs.nixvim = {
enable = true;
colorschemes.nightfox = {
enable = true;
flavor = "nordfox";
};
plugins = {
guess-indent = {
enable = true;
};
copilot-lua = {
enable = true;
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;
};
}
];
};
}

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,119 +0,0 @@
{
programs.plasma = {
enable = true;
overrideConfig = true;
input.touchpads = [{
enable = true;
name = "SynPS/2 Synaptics TouchPad";
vendorId = "0002";
productId = "0007";
disableWhileTyping = false;
naturalScroll = true;
}];
kwin.edgeBarrier = 0;
workspace = {
clickItemTo = "open";
theme = "breeze-dark";
colorScheme = "BreezeDark";
lookAndFeel = "org.kde.breezedark.desktop";
wallpaper = ../resources/wallpaper.png;
};
panels = [
{
screen = "all";
location = "bottom";
hiding = "dodgewindows";
widgets = [
{
kickoff.icon = "nix-snowflake-white";
}
"org.kde.plasma.pager"
{
iconTasks.launchers = [
"applications:systemsettings.desktop"
"applications:org.kde.dolphin.desktop"
"applications:firefox.desktop"
"applications:org.kde.konsole.desktop"
];
}
"org.kde.plasma.marginseparator"
{
systemTray = {};
}
{
digitalClock = {
date.format = "isoDate";
time.format = "24h";
time.showSeconds = "always";
calendar.firstDayOfWeek = "monday";
};
}
"org.kde.plasma.showdesktop"
];
}
];
window-rules = [
{
description = "Konsole";
match.window-class.value = "konsole org.kde.konsole";
apply = {
maximizehoriz = true;
maximizevert = true;
};
}
];
shortcuts = {
kwin = {
"Window Close" = "Alt+Q";
"Switch One Desktop Up" = "Ctrl+Alt+Up";
"Switch One Desktop Down" = "Ctrl+Alt+Down";
"Switch One Desktop to the Left" = "Ctrl+Alt+Left";
"Switch One Desktop to the Right" = "Ctrl+Alt+Right";
"Window One Desktop Up" = "Ctrl+Alt+Shift+Up";
"Window One Desktop Down" = "Ctrl+Alt+Shift+Down";
"Window One Desktop to the Left" = "Ctrl+Alt+Shift+Left";
"Window One Desktop to the Right" = "Ctrl+Alt+Shift+Right";
};
};
configFile = {
dolphinrc.General = {
RememberOpenedTabs = false;
UseTabForSwitchingSplitView = true;
};
kwinrc.TabBox = {
HighlightWindows = false;
MultiScreenMode = 1;
};
kwinrc.Desktops = {
Number = 4;
Rows = 2;
};
kwinrc.Windows = {
DelayFocusInterval = 0;
FocusPolicy = "FocusFollowsMouse";
NextFocusPrefersMouse = true;
FocusStealingPreventionLevel = 0;
};
kxkbrc.Layout = {
LayoutList = "us,ru";
DisplayNames = ",";
VariantList = ",";
Options = "caps:escape_shifted_capslock,grp:win_space_toggle";
ResetOldOptions = true;
};
};
};
}

View File

@@ -0,0 +1,157 @@
{ lib, pkgs, ... }:
{
programs.firefox = {
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
profiles.default = {
extensions.packages = [ pkgs.nur.repos.rycee.firefox-addons.plasma-integration ];
settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"media.hardwaremediakeys.enabled" = false;
};
};
};
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;
}
];
kwin.edgeBarrier = 0;
workspace = {
clickItemTo = "open";
theme = "breeze-dark";
colorScheme = "BreezeDark";
lookAndFeel = "org.kde.breezedark.desktop";
wallpaper = ../../resources/wallpaper.png;
};
panels = [
{
screen = "all";
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";
};
};
workspaces = "org.kde.plasma.pager";
separator = "org.kde.plasma.panelspacer";
in
[
kickoff
workspaces
taskmanager
separator
digital-clock
separator
systray
];
}
];
window-rules = [
{
description = "Konsole";
match.window-class.value = "konsole org.kde.konsole";
apply = {
maximizehoriz = true;
maximizevert = true;
};
}
];
shortcuts = {
kwin = {
"Window Close" = "Alt+Q";
"Switch One Desktop Up" = "Ctrl+Alt+Up";
"Switch One Desktop Down" = "Ctrl+Alt+Down";
"Switch One Desktop to the Left" = "Ctrl+Alt+Left";
"Switch One Desktop to the Right" = "Ctrl+Alt+Right";
"Window One Desktop Up" = "Ctrl+Alt+Shift+Up";
"Window One Desktop Down" = "Ctrl+Alt+Shift+Down";
"Window One Desktop to the Left" = "Ctrl+Alt+Shift+Left";
"Window One Desktop to the Right" = "Ctrl+Alt+Shift+Right";
};
};
configFile = {
dolphinrc.General = {
RememberOpenedTabs = false;
BrowseThroughArchives = true;
UseTabForSwitchingSplitView = true;
};
kwinrc.TabBox = {
HighlightWindows = false;
MultiScreenMode = 1;
};
kwinrc.Desktops = {
Number = 4;
Rows = 2;
};
kwinrc.Windows = {
DelayFocusInterval = 0;
FocusPolicy = "FocusFollowsMouse";
NextFocusPrefersMouse = true;
FocusStealingPreventionLevel = 0;
};
kxkbrc.Layout = {
LayoutList = "us,ru";
DisplayNames = ",";
VariantList = "symbolic,";
Options = "caps:escape_shifted_capslock,grp:win_space_toggle";
ResetOldOptions = true;
};
};
};
gtk.gtk2.force = true;
}

View File

@@ -0,0 +1,12 @@
{
programs.thunderbird = {
enable = true;
settings = {
"privacy.donottrackheader.enabled" = true;
};
profiles.default = {
isDefault = true;
};
};
}

5
home/noma.nix Normal file
View File

@@ -0,0 +1,5 @@
{
imports = [
./modules/plasma
];
}

View File

@@ -0,0 +1,117 @@
From 78a5f5d263c5209d685abbe657bbc5bd3f756994 Mon Sep 17 00:00:00 2001
From: tuckerrrrrrrrrr <tucker1014@hotmail.com>
Date: Sat, 14 Nov 2020 12:54:53 +0100
Subject: [PATCH] Conversion to PDF
Add the ability to convert presentations to PDF. Adds an additional
dependency: cairo.
---
config.def.h | 1 +
config.mk | 7 +++++--
sent.c | 42 ++++++++++++++++++++++++++++++++++++++----
3 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/config.def.h b/config.def.h
index 60eb376..e68a099 100644
--- a/config.def.h
+++ b/config.def.h
@@ -47,6 +47,7 @@ static Shortcut shortcuts[] = {
{ XK_n, advance, {.i = +1} },
{ XK_p, advance, {.i = -1} },
{ XK_r, reload, {0} },
+ { XK_g, pdf, {0} },
};
static Filter filters[] = {
diff --git a/config.mk b/config.mk
index d61c554..9174687 100644
--- a/config.mk
+++ b/config.mk
@@ -7,14 +7,17 @@ VERSION = 1
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
+PKG_CONFIG = pkg-config
+
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# includes and libs
INCS = -I. -I/usr/include -I/usr/include/freetype2 -I${X11INC}
-LIBS = -L/usr/lib -lc -lm -L${X11LIB} -lXft -lfontconfig -lX11
+LIBS = -L/usr/lib -lc -lm -L${X11LIB} -lXft -lfontconfig -lX11 -lcairo
# OpenBSD (uncomment)
-#INCS = -I. -I${X11INC} -I${X11INC}/freetype2
+INCS = -I. -I${X11INC} -I${X11INC}/freetype2 `${PKG_CONFIG} --cflags cairo`
+LIBS += -L/usr/local/lib
# FreeBSD (uncomment)
#INCS = -I. -I/usr/local/include -I/usr/local/include/freetype2 -I${X11INC}
#LIBS = -L/usr/local/lib -lc -lm -L${X11LIB} -lXft -lfontconfig -lX11
diff --git a/sent.c b/sent.c
index 9534fca..dc5cf89 100644
--- a/sent.c
+++ b/sent.c
@@ -19,6 +19,10 @@
#include <X11/Xutil.h>
#include <X11/Xft/Xft.h>
+#include <cairo/cairo.h>
+#include <cairo/cairo-xlib.h>
+#include <cairo/cairo-pdf.h>
+
#include "arg.h"
#include "util.h"
#include "drw.h"
@@ -97,6 +101,7 @@ static void cleanup(int slidesonly);
static void reload(const Arg *arg);
static void load(FILE *fp);
static void advance(const Arg *arg);
+static void pdf();
static void quit(const Arg *arg);
static void resize(int width, int height);
static void run();
@@ -479,6 +480,42 @@ advance(const Arg *arg)
}
}
+void
+pdf()
+{
+ const Arg next = { .i = 1 };
+ Arg first;
+ cairo_surface_t *cs;
+
+ if (!fname)
+ fname = "slides";
+
+ char filename[strlen(fname) + 5];
+ sprintf(filename, "%s.pdf", fname);
+ cairo_surface_t *pdf = cairo_pdf_surface_create(filename, xw.w, xw.h);
+
+ cairo_t *cr = cairo_create(pdf);
+
+ first.i = -idx;
+ advance(&first);
+
+ cs = cairo_xlib_surface_create(xw.dpy, xw.win, xw.vis, xw.w, xw.h);
+ cairo_set_source_surface(cr, cs, 0.0, 0.0);
+ for (int i = 0; i < slidecount; ++i) {
+ cairo_paint(cr);
+ cairo_show_page(cr);
+ cairo_surface_flush(cs);
+ advance(&next);
+ cairo_surface_mark_dirty(cs);
+ }
+ cairo_surface_destroy(cs);
+
+ cairo_destroy(cr);
+ cairo_surface_destroy(pdf);
+ first.i = -(slidecount-1);
+ advance(&first);
+}
+
void
quit(const Arg *arg)
{
--
2.29.2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 KiB

After

Width:  |  Height:  |  Size: 533 KiB

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,36 +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 = "/dev/sda";
boot.loader.grub.device = lib.mkDefault "/dev/sda";
# Networking
networking.networkmanager.enable = true;
services.openssh.enable = true;
# Router shared filesystem
fileSystems."/home/andrey/Public" = {
device = "root@192.168.2.1:/mnt/sda1";
fsType = "sshfs";
options = [
"nodev"
"noatime"
"allow_other"
"reconnect"
"IdentityFile=/home/andrey/.ssh/id_ed25519"
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;
@@ -39,12 +40,15 @@ in
defaultEditor = true;
};
# Nix
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "andrey" ];
experimental-features = [
"nix-command"
"flakes"
];
flake-registry = "";
nix-path = config.nix.nixPath;
};
@@ -54,18 +58,43 @@ 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" ];
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;
programs.system-config-printer.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# Distcc
services.distccd = {
enable = true;
allowedClients = [ "192.168.0.0/24" ];
stats.enable = true;
};
# Programs
programs = {
@@ -73,18 +102,32 @@ in
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;
@@ -104,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,4 +1,6 @@
{
services.distccd.maxJobs = 4;
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {

22
system/noma.nix Normal file
View File

@@ -0,0 +1,22 @@
{
services.distccd.maxJobs = 4;
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
device = "nodev";
};
};
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
};
}

View File

@@ -1,4 +1,5 @@
{
services.distccd.maxJobs = 8;
console.keyMap = "no";
services = {

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
]
);
}