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": { "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": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@@ -43,11 +8,32 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722555600, "lastModified": 1749398372,
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "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" "type": "github"
}, },
"original": { "original": {
@@ -61,11 +47,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -74,58 +60,6 @@
"type": "github" "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -133,11 +67,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1723015306, "lastModified": 1749935160,
"narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", "narHash": "sha256-lTLR7AyrrIS/b4frHKb5pw/gcPM0GgoGCURqeiOX9k8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", "rev": "8fabeb9c142a303e02270c3a3a0d8e00af9d0dfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -149,16 +83,16 @@
"home-manager_2": { "home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "plasma-manager",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1722630065, "lastModified": 1740494361,
"narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", "narHash": "sha256-Dd/GhJ9qKmUwuhgt/PAROG8J6YdU2ZjtJI9SQX5sVQI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "afc892db74d65042031a093adb6010c4c3378422", "rev": "74f0a8546e3f2458c870cf90fc4b38ac1f498b17",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -167,24 +101,31 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_3": { "ixx": {
"inputs": { "inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [ "nixpkgs": [
"plasma-manager", "nixvim",
"nuschtosSearch",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1714377222, "lastModified": 1748294338,
"narHash": "sha256-UsDsjWCKlWn8vbXi8Zza9Hkq3xyk8fpvFNo2VM5S74E=", "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "nix-community", "owner": "NuschtOS",
"repo": "home-manager", "repo": "ixx",
"rev": "2af7c78b7bb9cf18406a193eba13ef9f99388f49", "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "NuschtOS",
"repo": "home-manager", "ref": "v0.0.8",
"repo": "ixx",
"type": "github" "type": "github"
} }
}, },
@@ -204,34 +145,29 @@
"url": "https://git.psf.lt/xezo360hye/nethack" "url": "https://git.psf.lt/xezo360hye/nethack"
} }
}, },
"nix-darwin": { "nixpkgs": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1722924007, "lastModified": 1749794982,
"narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=", "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "lnl7", "owner": "nixos",
"repo": "nix-darwin", "repo": "nixpkgs",
"rev": "91010a5613ffd7ee23ee9263213157a1c422b705", "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "lnl7", "owner": "nixos",
"repo": "nix-darwin", "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1722813957, "lastModified": 1749794982,
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=", "narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa", "rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -243,24 +179,19 @@
}, },
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1723192118, "lastModified": 1749924512,
"narHash": "sha256-juQM/w6GY8aHQCBazvyMEPlfnt4pB+ja7WDQOQQYyEY=", "narHash": "sha256-IYv0yEFh86c+UnkcjrUAV0UeIE+9vMEeXDIF+YRlooc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "c46bd820adabaf23acbccbbd226b1941566acb51", "rev": "e114d442b14f3a299307ca9b0f0eab20e821f419",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -269,20 +200,41 @@
"type": "github" "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": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1722772237, "lastModified": 1749730855,
"narHash": "sha256-3eCYmzeLngX8eutIsTZAG8DIvT/0DWQQxiszTQz8n0s=", "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "aa5f6246565cc9b1e697d2c9d6ed2c842b17fff6", "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -293,17 +245,17 @@
}, },
"plasma-manager": { "plasma-manager": {
"inputs": { "inputs": {
"home-manager": "home-manager_3", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1723141065, "lastModified": 1748196248,
"narHash": "sha256-6HD3Cx4KofX3jyWpZK1Nt1RmnPs2tD4HQLm3Ytk+htk=", "narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "plasma-manager", "repo": "plasma-manager",
"rev": "5ab818b79ba5c6651209cc1c1d19afe6c9046ed4", "rev": "b7697abe89967839b273a863a3805345ea54ab56",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -318,6 +270,7 @@
"nethack": "nethack", "nethack": "nethack",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixvim": "nixvim", "nixvim": "nixvim",
"nur": "nur",
"plasma-manager": "plasma-manager" "plasma-manager": "plasma-manager"
} }
}, },
@@ -336,19 +289,34 @@
"type": "github" "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": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "nur",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1722330636, "lastModified": 1733222881,
"narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=", "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "768acdb06968e53aa1ee8de207fd955335c754b7", "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,73 +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";
}; };
nethack = { nur.url = "github:nix-community/NUR";
url = git+https://git.psf.lt/xezo360hye/nethack?shallow=1; nethack.url = "git+https://git.psf.lt/xezo360hye/nethack?shallow=1";
};
}; };
outputs = { self, nixpkgs, home-manager, nixvim, nethack, plasma-manager, ... } @ inputs: outputs =
{
self,
nixpkgs,
home-manager,
nixvim,
nethack,
plasma-manager,
nur,
...
}@inputs:
let let
inherit (self) outputs;
inherit (nixpkgs) lib; inherit (nixpkgs) lib;
username = "andrey"; username = "andrey";
hostnames = [ "tokishiko" "maidena" ]; 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
./system/common.nix ./system/common.nix
./system/${hostname}.nix ./system/${hostname}.nix
./hardware/${hostname}.nix ./hardware/${hostname}.nix
{ {
system.stateVersion = stateVersion; system.stateVersion = stateVersion;
networking.hostName = hostname; networking.hostName = hostname;
}
];
};
};
extractModule = { homeManagerModules, ... }: homeManagerModules."${lib.head (lib.attrNames homeManagerModules)}"; home-manager.useGlobalPkgs = true;
homeManagerModules = map extractModule [ nixvim nethack plasma-manager ]; home-manager.useUserPackages = true;
makeHome = hostname: {
"${username}@${hostname}" = home-manager.lib.homeManagerConfiguration { home-manager.users.${username} = {
pkgs = nixpkgs.legacyPackages.x86_64-linux; imports =
modules = homeManagerModules ++ [ [
./home/${hostname}.nix ./home/${hostname}.nix
./home/common.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"; news.display = "show";
home.username = username; };
home.homeDirectory = "/home/${username}";
home.stateVersion = stateVersion;
} }
]; ];
}; };
}; };
forEachHost = fn: lib.fold lib.mergeAttrs {} (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;
}; };
} }

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.availableKernelModules = [ "ehci_pci" "ahci" "xhci_pci" "firewire_ohci" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/98ff21ae-1adf-469e-8cea-3bd04cc564ab"; { device = "/dev/disk/by-uuid/68a22707-e30a-469b-b24b-13fccd128929";
fsType = "xfs"; 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,94 +1,93 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ imports = [
./modules/nethack.nix ./modules/thunderbird
./modules/firefox.nix ./modules/nethack
./modules/firefox
]; ];
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
fastfetch.enable = true; fastfetch.enable = true;
htop.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";
userEmail = "xezo360hye@gmail.com"; userEmail = "xezo360hye@gmail.com";
delta.enable = true;
extraConfig = { extraConfig = {
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:"
};
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;
};
}
]; ];
url."https://git.psf.lt/".insteadOf = [
"psf:"
"gitea:"
];
};
}; };
mpv = { mpv = {
enable = true; enable = true;
config.hwdec = "auto";
scripts = with pkgs.mpvScripts; [
mpris
];
}; };
}; };
gtk = {
nixpkgs.config.allowUnfree = true; enable = true;
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
home = { home = {
packages = with pkgs; [ 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 telegram-desktop
libreoffice-qt6
libqalculate libqalculate
arduino-cli arduino-cli
gimp
krita
inkscape
ani-cli ani-cli
ytfzf ytfzf
cpufrequtils cpufrequtils
steam-run steam-run
sent'
gcc
python3
nodejs
lua
wl-clipboard
]; ];
sessionVariables = { sessionVariables = {

View File

@@ -1,6 +1,6 @@
{ {
imports = [ imports = [
./modules/hyprland.nix ./modules/hyprland
./modules/plasma.nix ./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, 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

@@ -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; enable = true;
nethack_options = { nethack_options = {
windowtype = "curses"; windowtype = "curses";
align_message = "bottom"; align_message = "top";
msg_window = "reverse"; msg_window = "reverse";
msghistory = 1000; msghistory = 1000;
statuslines = 3; statuslines = 3;
@@ -24,30 +24,12 @@
autopickup = true; autopickup = true;
pickup_burden = "B"; pickup_burden = "B";
disclose = "+iagcvo"; disclose = "+iagcvo";
sortloot = "full"; sortloot = "none";
runmode = "crawl"; runmode = "walk";
boulder = "0"; boulder = "0";
gender = "male"; gender = "male";
}; pickup_types = ''$!=/?'';
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 = ''$!=%"?()'';
};
}; };
hilite_status = { hilite_status = {
@@ -217,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";
@@ -236,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

@@ -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 in
{ {
# Bootloader # Bootloader
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda"; boot.loader.grub.device = lib.mkDefault "/dev/sda";
# Networking # Networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
services.openssh.enable = true; networking.firewall = rec {
allowedTCPPortRanges = [
{
# Router shared filesystem from = 1714;
fileSystems."/home/andrey/Public" = { to = 1764;
device = "root@192.168.2.1:/mnt/sda1"; }
fsType = "sshfs";
options = [
"nodev"
"noatime"
"allow_other"
"reconnect"
"IdentityFile=/home/andrey/.ssh/id_ed25519"
]; ];
};
allowedUDPPortRanges = allowedTCPPortRanges;
};
services.openssh.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;
@@ -39,12 +40,15 @@ in
defaultEditor = true; defaultEditor = true;
}; };
# Nix # Nix
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix = { nix = {
settings = { settings = {
experimental-features = [ "nix-command" "flakes" ]; trusted-users = [ "andrey" ];
experimental-features = [
"nix-command"
"flakes"
];
flake-registry = ""; flake-registry = "";
nix-path = config.nix.nixPath; nix-path = config.nix.nixPath;
}; };
@@ -54,18 +58,43 @@ 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" ]; 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
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
programs = { programs = {
@@ -73,18 +102,32 @@ in
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
libextractor
file
unzip
]; ];
hardware.bluetooth = {
enable = true;
settings.General.Enable = "Source,Sink,Media,Socket";
};
# Xorg # Xorg
security.rtkit.enable = true; security.rtkit.enable = true;
@@ -104,4 +147,11 @@ in
tappingDragLock = false; 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 = { services = {
desktopManager.plasma6.enable = true; desktopManager.plasma6.enable = true;
displayManager.sddm = { 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"; console.keyMap = "no";
services = { 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
]
);
}