1

Compare commits

92 Commits
v1.1.0 ... main

Author SHA1 Message Date
Himadri Bhattacharjee
1ab5e1ce77 deps: bump flake
Some checks failed
Test Flake / tests (push) Has been cancelled
2026-04-13 09:03:16 +05:30
Himadri Bhattacharjee
97c762ba5b feat: helper script to toggle touchpad input 2026-04-13 09:02:20 +05:30
Himadri Bhattacharjee
d559e797b8 feat: add haruna to handle mpv vrr screen tearing 2026-04-13 09:01:53 +05:30
Himadri Bhattacharjee
5c9da7152e chore: rename screen rotation script 2026-04-13 09:01:34 +05:30
Himadri Bhattacharjee
d469b95e60 feat: remove redis, was needed for uni project 2026-04-06 18:26:27 +05:30
Himadri Bhattacharjee
0ac73870fd feat: whisper for transcription 2026-04-06 08:47:45 +05:30
Himadri Bhattacharjee
dfb7661051 feat: move bootloader config into separete config 2026-03-31 12:08:01 +05:30
Himadri Bhattacharjee
6b8e55af8d disable virtualization 2026-03-10 12:15:13 +05:30
Himadri Bhattacharjee
93feb65203 feat: librewolf builds again 2026-03-09 19:47:52 +05:30
Himadri Bhattacharjee
bb89923ba5 deps: bump flake 2026-03-09 19:46:03 +05:30
Himadri Bhattacharjee
509f53ce34 deprecate: galaxy book has decent camera 2026-03-09 19:45:58 +05:30
Himadri Bhattacharjee
f0d9babf9d chore: signal-desktop is now built from source
TODO: just use the flatpak version
2026-03-09 19:45:18 +05:30
Himadri Bhattacharjee
dd11d354ab deps: bump flake 2026-02-23 10:38:17 +05:30
Himadri Bhattacharjee
b994574a9c chore: uni project redis TODO: REMOVE AFTER DONE 2026-02-23 10:38:06 +05:30
Himadri Bhattacharjee
646a676db1 feat: libresprite for pixel art 2026-02-23 10:37:33 +05:30
Himadri Bhattacharjee
6d3016b2a2 feat: add harper for spell checking in helix 2026-02-23 10:37:15 +05:30
Himadri Bhattacharjee
0651a52d07 deps: bump flake 2026-02-11 10:23:01 +05:30
Himadri Bhattacharjee
fabfa159b3 chore: remove matrix 2026-02-11 10:22:50 +05:30
Himadri Bhattacharjee
0b53dd9d0c feat: script to rotate screen on kde 2026-02-11 10:20:46 +05:30
Himadri Bhattacharjee
f15c6801f5 fix: remove discover: incompatible with nixos 2026-02-06 17:33:29 +05:30
Himadri Bhattacharjee
08003bc33b feat: merge branch 'early-kms' for TV outputs
Some checks failed
Test Flake / tests (push) Has been cancelled
2026-01-23 15:09:24 +05:30
Himadri Bhattacharjee
c0db7866bb feat: add chromium and signal shortcut 2026-01-23 10:42:31 +05:30
Himadri Bhattacharjee
2b93826e48 deps: bump flake 2026-01-23 10:40:37 +05:30
Himadri Bhattacharjee
794fb8003d feat: add vulkan drivers for both 32 and 64 bit arch 2026-01-23 10:30:30 +05:30
Himadri Bhattacharjee
72058d6588 feat: klassy with window indicator
kde-rounded-corners is unresponsive sometimes
2026-01-23 10:29:40 +05:30
Himadri Bhattacharjee
44ea36fc52 feat: add fluffychat 2026-01-17 15:38:00 +05:30
Himadri Bhattacharjee
0652e19b6d chore: package name change 2026-01-17 15:38:00 +05:30
Himadri Bhattacharjee
1f39847f73 feat: gpu drivers for benchmarking hashcat 2026-01-17 15:38:00 +05:30
Himadri Bhattacharjee
07fc44eb5c feat: lollipop ships with a systemd service now 2026-01-17 15:38:00 +05:30
Himadri Bhattacharjee
164056cd7e deps: update flake for [lollipop](github.com/lavafroth/lollipop) 2026-01-10 17:29:05 +05:30
Himadri Bhattacharjee
13926289d4 wow: firefox is becoming adversarial
fuck you mozilla ceo
2026-01-10 09:56:42 +05:30
Himadri Bhattacharjee
e574884854 chore: mpv override 2026-01-10 09:56:11 +05:30
Himadri Bhattacharjee
23d9a289c4 feat: custom sticky keys with lollipop 2026-01-10 09:54:16 +05:30
Himadri Bhattacharjee
043361807e feat: split sticky keys and locale settings into modules 2026-01-03 08:19:35 +05:30
Himadri Bhattacharjee
528562f340 feat: markdown-lsp: iwe 2025-12-31 16:05:11 +05:30
Himadri Bhattacharjee
f3ec723bc9 deps: bump flake 2025-12-29 15:56:34 +05:30
Himadri Bhattacharjee
141cf65c82 feat: python repl startup file hack 2025-12-29 15:55:25 +05:30
Himadri Bhattacharjee
ddbc5fb974 feat: fuck google 2025-12-29 15:09:27 +05:30
Himadri Bhattacharjee
038317752c fix: address some homedir polluters 2025-12-28 09:00:05 +05:30
Himadri Bhattacharjee
d055854d3b feat: early KMS for systemd-boot to display console over HDMI 2025-12-26 18:40:35 +05:30
Himadri Bhattacharjee
83bd89ccfd chore: bump flake 2025-12-26 18:39:33 +05:30
Himadri Bhattacharjee
ef6cc2642b feat: add search engine shortcuts
- sklearn
- torch
- docs.rs
2025-12-26 18:26:30 +05:30
Himadri Bhattacharjee
c937e0f964 fix: use keyd for sticky keys instead of the broken KDE implementation 2025-12-26 18:25:09 +05:30
Himadri Bhattacharjee
b26ffe9006 feat: enable bluetooth support for kde connect 2025-12-26 18:24:43 +05:30
Himadri Bhattacharjee
c7ac099124 feat: add kdeconnect 2025-12-26 18:24:12 +05:30
Himadri Bhattacharjee
096db8959a feat: add gnome-boxes 2025-12-19 18:36:53 +05:30
Himadri Bhattacharjee
97a19b6a96 deps: bump flake 2025-12-14 07:14:45 +05:30
Himadri Bhattacharjee
f35a04256f fix: direct stylix to use the correct firefox (librewolf) profile 2025-12-14 07:14:39 +05:30
Himadri Bhattacharjee
7f0727a4dd feat: add kiwix for local wikipedia 2025-12-14 07:14:13 +05:30
Himadri Bhattacharjee
15e34250c0 feat: librewolf customizations 2025-12-13 12:56:11 +05:30
Himadri Bhattacharjee
ce2f51a8cd feat: enable ctrl backspace in kitty 2025-12-13 12:55:31 +05:30
Himadri Bhattacharjee
6668057437 deps: bump flake 2025-12-12 17:01:12 +05:30
Himadri Bhattacharjee
512a082cf0 fix: use just the supplied argument for mpv lecture script 2025-12-11 17:41:40 +05:30
Himadri Bhattacharjee
c66aa139d3 feat: add librewolf config declaratively 2025-12-11 17:41:19 +05:30
Himadri Bhattacharjee
3c5e07d585 feat: adds audacity 2025-12-08 16:58:33 +05:30
Himadri Bhattacharjee
ce87bb44dc fix: disable plasma system monitor 2025-12-08 16:58:22 +05:30
Himadri Bhattacharjee
93268f0196 fix: set gdk backend to x11 for drawing tablet to work 2025-12-01 08:58:58 +05:30
Himadri Bhattacharjee
a4a6205634 feat: lecture script accepts a url argument or copies from clipboard 2025-12-01 08:58:35 +05:30
Himadri Bhattacharjee
fbdafdacd4 deps: bump lanzaboote 2025-11-28 16:46:32 +05:30
Himadri Bhattacharjee
365e27b898 feat: set scikit-learn data home inside .cache
DO NOT POLLUTE MY DAMN HOME DIRECTORY
2025-11-15 18:07:07 +05:30
Himadri Bhattacharjee
fe2fa2d922 feat: use oxalica rust overlay for lanzaboote secureboot 2025-11-15 18:06:26 +05:30
Himadri Bhattacharjee
a2e1bc4f06 fix: gh dependabot is not a good script 2025-11-15 18:06:26 +05:30
Himadri Bhattacharjee
7362db58d4 fix: noto-fonts-emoji renamed 2025-11-05 19:23:21 +05:30
Himadri Bhattacharjee
4feff508bc feat: brave backup browser 2025-11-05 19:23:00 +05:30
Himadri Bhattacharjee
ab49ff4acc feat: add gh-coauthor extension 2025-10-26 10:09:46 +05:30
Himadri Bhattacharjee
9ed9f058c6 feat: custom gh extension for dependabot notifications 2025-10-25 15:59:12 +05:30
Himadri Bhattacharjee
6741195ddf deps: bump nix flake 2025-10-25 15:30:28 +05:30
Himadri Bhattacharjee
6b0581b824 feat: remap ctrl+t kitty new tab to open in the working directory 2025-10-25 15:29:46 +05:30
Himadri Bhattacharjee
3d629f21a9 feat: use gh home-manager options directly
adds custom extension to star github repos
2025-10-25 15:28:37 +05:30
Himadri Bhattacharjee
4ce752b479 ci: bump install-nix-action 2025-10-18 06:55:53 +05:30
Himadri Bhattacharjee
b526098a93 docs: update docs 2025-10-17 18:24:05 +05:30
Himadri Bhattacharjee
aa3e496c75 fix: switched to a rooted phone 2025-10-17 18:20:02 +05:30
Himadri Bhattacharjee
dadeea22d8 feat: remove brave 2025-10-17 18:16:32 +05:30
Himadri Bhattacharjee
36a425f378 feat: negate lecture videos for dark mode 2025-10-16 21:20:30 +05:30
Himadri Bhattacharjee
72c40e1a4d fix: set matplotlib to kitcat for images in terminal 2025-10-16 21:20:30 +05:30
Himadri Bhattacharjee
9cec62880a feat: conform to xdg base directories 2025-10-16 19:36:27 +05:30
Himadri Bhattacharjee
c6b5c31df2 feat: nix community is default 2025-10-16 19:36:27 +05:30
Himadri Bhattacharjee
27323df940 feat: karousel focus up shortcut 2025-10-16 18:16:28 +05:30
Himadri Bhattacharjee
8dcc119fdd chore: bye gnome 2025-10-16 18:16:28 +05:30
Himadri Bhattacharjee
d6a0d58bc6 kitty powerline config 2025-10-16 17:40:22 +05:30
Himadri Bhattacharjee
3751336e17 fix: move kde plasma config to kde.nix 2025-10-11 19:39:06 +05:30
Himadri Bhattacharjee
92174ebfb7 chore: remove redundant configs 2025-10-11 19:38:39 +05:30
Himadri Bhattacharjee
15641df1d3 feat: use inputs in config 2025-10-11 19:12:09 +05:30
Himadri Bhattacharjee
46cf436204 kglobalshortcuts 2025-10-09 14:29:08 +05:30
Himadri Bhattacharjee
75fc427a29 docs: add todo to restore binary isolation 2025-10-09 12:31:59 +05:30
Himadri Bhattacharjee
76acf94ddd feat: add more ml libraries 2025-10-09 12:31:48 +05:30
Himadri Bhattacharjee
75d711b652 feat: mpv script for lecture 2025-10-09 12:31:48 +05:30
Himadri Bhattacharjee
d9bcfc7e63 feat: move from konsole to kitty
chore: konsole to kitty
2025-10-09 12:31:48 +05:30
Himadri Bhattacharjee
5ecfcfd8e4 chore: perf is in global package namespace now 2025-10-06 17:29:27 +05:30
Himadri Bhattacharjee
84f2b19ef3 deps: bump flake 2025-10-05 09:41:25 +05:30
Himadri Bhattacharjee
166e574200 chore: remove nvidia and ollama related configurations
for galaxy book 4
2025-10-05 09:41:09 +05:30
Himadri Bhattacharjee
23fa93bad3 feat: new hardware config for samsung galaxy book 4 2025-10-05 09:39:43 +05:30
37 changed files with 1021 additions and 564 deletions

View File

@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
- uses: cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix flake check

View File

@@ -2,17 +2,17 @@
NixOS configuration files personalized for my daily driver and home server.
### Work Computer
## Work Computer
To get started, install NixOS, [enable flakes](https://nixos.wiki/wiki/Flakes#NixOS)
and clone this repository.
- Install NixOS
- [Enable flakes](https://nixos.wiki/wiki/Flakes#NixOS)
- Run the following
```sh
git clone https://github.com/lavafroth/dotfiles
sudo nixos-rebuild switch --flake dotfiles#cafe-nosecureboot
sudo nixos-rebuild switch --flake github:lavafroth/dotfiles#cafe-nosecureboot
```
#### Secureboot
### Secureboot
- Use the preinstalled `sbctl` command to generate your keys
- Clear the manufacturer keys and enroll yours as described [here](https://github.com/nix-community/lanzaboote/blob/master/docs/QUICK_START.md).
@@ -22,28 +22,7 @@ sudo nixos-rebuild switch --flake dotfiles#cafe-nosecureboot
- Run the following to rebuild the system from now on
```sh
sudo nixos-rebuild switch --flake dotfiles
```
### Home Server
Install NixOS with the headless (no GUI) settings. Enable flakes.
Clone this repo, enter the directory and run a rebuild for the host `rahu`.
```sh
git clone https://github.com/lavafroth/dotfiles
sudo nixos-rebuild switch --flake dotfiles#rahu
```
### Android (Nix-on-droid)
I use Nix-on-droid to have Termux with a declarative config. Install
[Nix-on-droid from F-Droid](https://f-droid.org/en/packages/com.termux.nix/) and
enable flakes when prompted. Clone this repo and rebuild the environment.
```sh
git clone https://github.com/lavafroth/dotfiles
nix-on-droid switch --flake dotfiles
sudo nixos-rebuild switch --flake github:lavafroth/dotfiles#cafe
```
### Running blender with CUDA
@@ -51,3 +30,14 @@ nix-on-droid switch --flake dotfiles
```
nix run --impure github:guibou/nixGL -- nix run blender-bin
```
## Home Server
- Install NixOS with the headless (no GUI) settings
- Enable flakes
- Rebuild with this flake
```sh
sudo nixos-rebuild switch --flake github:lavafroth/dotfiles#rahu
```

View File

@@ -1,6 +0,0 @@
{
nix.settings = {
substituters = [ "https://nix-community.cachix.org" ];
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
};
}

View File

@@ -14,12 +14,13 @@
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
packages = [
(pkgs.python311.withPackages (
(pkgs.python313.withPackages (
ps: with ps; [
numpy
ipython
matplotlib
pandas
scikit-learn
seaborn
# kitkat backend to view plots
# directly in the kitty terminal
(ps.buildPythonPackage rec {
@@ -34,14 +35,19 @@
buildInputs = with ps; [
matplotlib
setuptools
build
];
})
]
))
];
MPLBACKEND = "module://kitcat";
MPLBACKEND = "kitcat";
PYTHONSTARTUP = "${pkgs.writeText "pythonstartup.py" ''
import numpy as np
import pandas as pd
import torch
from torch import nn
''}";
};
});
};

194
flake.lock generated
View File

@@ -21,27 +21,28 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1752979451,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
@@ -69,11 +70,11 @@
},
"crane": {
"locked": {
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"lastModified": 1754269165,
"narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"rev": "444e81206df3f7d92780680e45858e31d2f07a08",
"type": "github"
},
"original": {
@@ -85,11 +86,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1756083905,
"narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=",
"lastModified": 1775176642,
"narHash": "sha256-2veEED0Fg7Fsh81tvVDNYR6SzjqQxa7hbi18Jv4LWpM=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808",
"rev": "179704030c5286c729b5b0522037d1d51341022c",
"type": "github"
},
"original": {
@@ -101,11 +102,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
@@ -122,11 +123,11 @@
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"lastModified": 1754091436,
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
"type": "github"
},
"original": {
@@ -143,11 +144,11 @@
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
@@ -197,17 +198,17 @@
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1748186689,
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.2",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
}
},
@@ -218,11 +219,11 @@
]
},
"locked": {
"lastModified": 1757578556,
"narHash": "sha256-w1PGkTGow5XzsjccV364No46rkuGxTqo7m/4cfhnkIk=",
"lastModified": 1775556024,
"narHash": "sha256-j1u/859OVS54rGlsvFqJdwKPEnFYCI+4pyfTiSfv1Xc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b7112b12ea5b8c3aa6af344498ed9ca27dd03ba3",
"rev": "4bdfeff1d9b7473e6e58f73f5809576e8a69e406",
"type": "github"
},
"original": {
@@ -264,37 +265,35 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1737639419,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
"lastModified": 1762205063,
"narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
"rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.2",
"ref": "v0.4.3",
"repo": "lanzaboote",
"type": "github"
}
},
"mustache2konsole": {
"lollipop": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1752990396,
"narHash": "sha256-P8ariIwu7x3Njm6KbTacFsNkxxU5t9B/M2lRGB1I+xo=",
"lastModified": 1770805832,
"narHash": "sha256-YgvI1K+T5orEqST0dn1w5dK14hy0udoImPSmnNijnGo=",
"owner": "lavafroth",
"repo": "mustache2konsole",
"rev": "f63133635d68fde4fd0de3316122be82525718b5",
"repo": "lollipop",
"rev": "78d8926c660ef1d2619ccb35480b7949410de6d3",
"type": "github"
},
"original": {
"owner": "lavafroth",
"repo": "mustache2konsole",
"repo": "lollipop",
"type": "github"
}
},
@@ -328,11 +327,11 @@
]
},
"locked": {
"lastModified": 1757218147,
"narHash": "sha256-IwOwN70HvoBNB2ckaROxcaCvj5NudNc52taPsv5wtLk=",
"lastModified": 1775365369,
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "9b144dc3ef6e42b888c4190e02746aab13b0e97f",
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3",
"type": "github"
},
"original": {
@@ -348,11 +347,11 @@
]
},
"locked": {
"lastModified": 1757320674,
"narHash": "sha256-NfrYMxdv43PioUFJIZ/BSGmMNK+WfVZggWS4VV7x5Oc=",
"lastModified": 1775465320,
"narHash": "sha256-HahcO96mdMe+MM9PZW09qQDURCr4YO2BaRFkEVNbkMU=",
"owner": "Mic92",
"repo": "nix-ld",
"rev": "471df554fda26d37daa53992d4e9c663e5450f91",
"rev": "fc87685c68e399aecf2a9ae8ab046f8dce2fbec4",
"type": "github"
},
"original": {
@@ -389,18 +388,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1757487488,
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
"owner": "nixos",
"lastModified": 1767364772,
"narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
"rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs-docs": {
@@ -435,18 +432,18 @@
"type": "github"
}
},
"nixpkgs-stable": {
"nixpkgs_2": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"lastModified": 1775423009,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -517,11 +514,11 @@
]
},
"locked": {
"lastModified": 1756961635,
"narHash": "sha256-hETvQcILTg5kChjYNns1fD5ELdsYB/VVgVmBtqKQj9A=",
"lastModified": 1775228139,
"narHash": "sha256-ebbeHmg+V7w8050bwQOuhmQHoLOEOfqKzM1KgCTexK4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "6ca27b2654ac55e3f6e0ca434c1b4589ae22b370",
"rev": "601971b9c89e0304561977f2c28fa25e73aa7132",
"type": "github"
},
"original": {
@@ -540,15 +537,14 @@
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
@@ -561,11 +557,11 @@
"inputs": {
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"mustache2konsole": "mustache2konsole",
"lollipop": "lollipop",
"nix-index-database": "nix-index-database",
"nix-ld": "nix-ld",
"nix-on-droid": "nix-on-droid",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"sops-nix": "sops-nix",
"stylix": "stylix"
}
@@ -578,11 +574,11 @@
]
},
"locked": {
"lastModified": 1731897198,
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"lastModified": 1761791894,
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github"
},
"original": {
@@ -614,11 +610,11 @@
]
},
"locked": {
"lastModified": 1757503115,
"narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=",
"lastModified": 1775365543,
"narHash": "sha256-f50qrK0WwZ9z5EdaMGWOTtALgSF7yb7XwuE7LjCuDmw=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c",
"rev": "a4ee2de76efb759fe8d4868c33dec9937897916f",
"type": "github"
},
"original": {
@@ -641,18 +637,17 @@
],
"nur": "nur",
"systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1757360005,
"narHash": "sha256-VwzdFEQCpYMU9mc7BSQGQe5wA1MuTYPJnRc9TQCTMcM=",
"lastModified": 1775429060,
"narHash": "sha256-wbFF5cRxQOCzL/wHOKYm21t5AHPH2Lfp0mVPCOAvEoc=",
"owner": "nix-community",
"repo": "stylix",
"rev": "834a743c11d66ea18e8c54872fbcc72ce48bc57f",
"rev": "d27951a6539951d87f75cf0a7cda8a3a24016019",
"type": "github"
},
"original": {
@@ -676,23 +671,6 @@
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
@@ -712,11 +690,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1754779259,
"narHash": "sha256-8KG2lXGaXLUE0F/JVwLQe7kOVm21IDfNEo0gfga5P4M=",
"lastModified": 1772661346,
"narHash": "sha256-4eu3LqB9tPqe0Vaqxd4wkZiBbthLbpb7llcoE/p5HT0=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "097d751b9e3c8b97ce158e7d141e5a292545b502",
"rev": "13b5b0c299982bb361039601e2d72587d6846294",
"type": "github"
},
"original": {
@@ -728,11 +706,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1754788770,
"narHash": "sha256-LAu5nBr7pM/jD9jwFc6/kyFY4h7Us4bZz7dvVvehuwo=",
"lastModified": 1772934010,
"narHash": "sha256-x+6+4UvaG+RBRQ6UaX+o6DjEg28u4eqhVRM9kpgJGjQ=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "fb2175accef8935f6955503ec9dd3c973eec385c",
"rev": "c3529673a5ab6e1b6830f618c45d9ce1bcdd829d",
"type": "github"
},
"original": {
@@ -744,11 +722,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1755613540,
"narHash": "sha256-zBFrrTxHLDMDX/OYxkCwGGbAhPXLi8FrnLhYLsSOKeY=",
"lastModified": 1772909925,
"narHash": "sha256-jx/5+pgYR0noHa3hk2esin18VMbnPSvWPL5bBjfTIAU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "937bada16cd3200bdbd3a2f5776fc3b686d5cba0",
"rev": "b4d3a1b3bcbd090937ef609a0a3b37237af974df",
"type": "github"
},
"original": {

View File

@@ -8,14 +8,17 @@
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lollipop.url = "github:lavafroth/lollipop";
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
@@ -28,43 +31,25 @@
url = "github:nix-community/nix-on-droid/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
mustache2konsole = {
url = "github:lavafroth/mustache2konsole";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-ld.url = "github:Mic92/nix-ld";
nix-ld.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
inputs@{
{
nixpkgs,
home-manager,
lanzaboote,
sops-nix,
nix-on-droid,
nix-index-database,
stylix,
nix-ld,
mustache2konsole,
lollipop,
...
}:
}@inputs:
let
cafeModules = [
./hosts/default/configuration.nix
./cachix/nix-community.nix
home-manager.nixosModules.home-manager
./hosts/default/stylix.nix
stylix.nixosModules.stylix
nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; }
{ nixpkgs.overlays = [ mustache2konsole.overlays.default ]; }
# uni requires us to use uv for python
# RIP binary isolation lol
nix-ld.nixosModules.nix-ld
lollipop.nixosModules.default
];
secureBootModules = [
@@ -72,12 +57,8 @@
./hosts/default/secureboot.nix
];
system = "x86_64-linux";
specialArgs = {
inherit inputs;
};
specialArgs = { inherit inputs; };
in
{
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
nixosConfigurations = {

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
imports = [
../default/home/helix.nix
../default/home/shell.nix
];
home.stateVersion = "23.11";
}

View File

@@ -1,44 +0,0 @@
{
pkgs,
...
}:
{
environment.packages = with pkgs; [
ouch
fd
diffutils
binutils
coreutils
#tzdata
hostname
man
gitMinimal
rage
nerd-fonts.terminess-ttf
ripgrep
gnused
gnutar
mdcat
openssh
yt-dlp
];
# Backup etc files instead of failing to activate generation if a file already exists in /etc
environment.etcBackupExtension = ".bak";
# Read the changelog before changing this value
system.stateVersion = "23.11";
# Set up nix for flakes
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
user.shell = "${pkgs.fish}/bin/fish";
terminal.font = "${pkgs.nerd-fonts.terminess-ttf}/share/fonts/truetype/NerdFonts/TerminessNerdFont-Regular.ttf";
# Set your time zone
# time.timeZone = "Europe/Berlin";
home-manager.config = ./home.nix;
}

View File

@@ -0,0 +1,21 @@
{
boot = {
# https://wiki.archlinux.org/title/Kernel_mode_setting#Early_KMS_start
# early KMS over HDMI
kernelParams = [
"quiet"
"splash"
"video=HDMI-1:1920x1080@60"
];
initrd.availableKernelModules = [ "i915" ];
loader = {
systemd-boot = {
enable = true;
editor = false;
};
efi.canTouchEfiVariables = true;
};
initrd.systemd.enable = true;
};
}

View File

@@ -1,35 +1,26 @@
{
pkgs,
inputs,
...
}:
{
imports = [
./bootloader.nix
./hardware-configuration.nix
./disable-broken-wifi-card.nix
./filesystem-hardening.nix
./phone-as-webcam.nix
./nvidia.nix
./virtualization.nix
# ./desktops/gnome.nix
./desktops/kde.nix
./locale.nix
# ./phone-as-webcam.nix
# ./virtualization.nix
inputs.home-manager.nixosModules.home-manager
inputs.nix-index-database.nixosModules.nix-index
inputs.stylix.nixosModules.stylix
# uni requires uv for python
# TODO: Restore binary isolation
inputs.nix-ld.nixosModules.nix-ld
];
boot = {
kernelParams = [
"quiet"
"splash"
];
loader = {
systemd-boot = {
enable = true;
editor = false;
};
efi.canTouchEfiVariables = true;
};
initrd.systemd.enable = true;
};
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.h = import ./home;
@@ -39,29 +30,15 @@
hostName = "cafe";
networkmanager.enable = true;
};
# Set your time zone.
time.timeZone = "Asia/Kolkata";
hardware.bluetooth.enable = true;
powerManagement.powertop.enable = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
xdg.portal.enable = true;
hardware.uinput.enable = true;
services = {
# sticky keys
lollipop.enable = true;
# dbus broker is faster
dbus.implementation = "broker";
@@ -77,11 +54,9 @@
pulse.enable = true;
};
# X11
xserver = {
# Enable the X11 windowing system.
enable = true;
# Configure keymap in X11
xkb.layout = "us";
xkb.variant = "";
@@ -118,9 +93,8 @@
"nix-command"
"flakes"
];
services.ollama.enable = true;
services.ollama.acceleration = "cuda";
nix.settings.use-xdg-base-directories = true;
programs.nix-index-database.comma.enable = true;
security = {
rtkit.enable = true;
@@ -155,11 +129,24 @@
ripgrep
sbctl
wl-clipboard
android-studio
transmission_4-qt
hashcat
];
# Make sure opengl is enabled
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
hardware.graphics.extraPackages = with pkgs; [
intel-compute-runtime
intel-media-driver
ocl-icd
vulkan-headers
vulkan-loader
vulkan-validation-layers
libva-vdpau-driver
libvdpau-va-gl
mesa
];
console = {
earlySetup = true;
@@ -171,9 +158,9 @@
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
nerd-fonts.terminess-ttf
];
networking.firewall.enable = true;
system.stateVersion = "24.05";
}

View File

@@ -1,29 +0,0 @@
{ pkgs, ... }:
{
home-manager.users.h = import ../home/gnome.nix;
services.gnome.tinysparql.enable = true;
services.xserver = {
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
environment.gnome.excludePackages = with pkgs; [
evince
epiphany
geary
gnome-text-editor
gnome-tour
yelp
totem
];
# remove this after https://github.com/NixOS/nixpkgs/issues/353990 is fixed
environment.variables = {
GSK_RENDERER = "gl";
};
}

View File

@@ -22,7 +22,11 @@
kdePackages.kwallet-pam
kdePackages.kaccounts-integration
kdePackages.kwrited
kdePackages.konsole
kdePackages.plasma-systemmonitor
kdePackages.discover
];
environment.variables.QT_LOGGING_RULES = "kwin_*.debug=true";
programs.kdeconnect.enable = true;
}

View File

@@ -1,5 +0,0 @@
{
# disable driver for broken internal wifi card
# remove this module if your wifi card works fine
boot.blacklistedKernelModules = [ "rtw88_8822ce" ];
}

View File

@@ -5,27 +5,25 @@
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/ecfc8e2d-92d4-4e1e-8580-26e0ae743adf";
{ device = "/dev/disk/by-uuid/a6ba5c7b-220d-40ff-a719-634ef5b958e5";
fsType = "f2fs";
};
boot.initrd.luks.devices."luks-4e3dc0a6-6427-4990-a2ab-4ca2e2ac0678".device = "/dev/disk/by-uuid/4e3dc0a6-6427-4990-a2ab-4ca2e2ac0678";
boot.initrd.luks.devices."luks-37dbb353-1315-4317-8895-b34284160671".device = "/dev/disk/by-uuid/37dbb353-1315-4317-8895-b34284160671";
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/2BE4-5D8E";
{ device = "/dev/disk/by-uuid/CB6B-E61C";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
@@ -35,9 +33,9 @@
# 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.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,6 +1,6 @@
{ config, pkgs, ... }: {
{ pkgs, ... }: {
home.packages = with pkgs; [
hyperfine
linuxPackages_latest.perf
perf
];
}

View File

@@ -2,8 +2,194 @@
{
home.packages = with pkgs; [
arti
librewolf
ungoogled-chromium
brave
ungoogled-chromium
];
# https://nix-community.github.io/stylix/options/modules/firefox.html
stylix.targets.librewolf.profileNames = [ "default" ];
# librewolf styling
home.file.".librewolf/default/chrome/userChrome.css".source = ./sources/userChrome.css;
programs.librewolf = {
enable = true;
settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"ui.key.menuAccessKeyFocuses" = false;
"sidebar.revamp" = true;
"sidebar.verticalTabs" = true;
"sidebar.revamp.round-content-area" = true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.ml.enable" = false;
"browser.uiCustomization.state" = ''
{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["sponsorblocker_ajay_app-browser-action","ublock0_raymondhill_net-browser-action"],"nav-bar":["back-button","forward-button","urlbar-container","vertical-spacer","unified-extensions-button","dearrow_ajay_app-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":[],"vertical-tabs":["tabbrowser-tabs"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","screenshot-button","ublock0_raymondhill_net-browser-action","sponsorblocker_ajay_app-browser-action","dearrow_ajay_app-browser-action"],"dirtyAreaCache":["nav-bar","TabsToolbar","vertical-tabs","toolbar-menubar","PersonalToolbar","unified-extensions-area"],"currentVersion":23,"newElementCount":3}
'';
};
profiles.eep = {
id = 1;
settings = {
"network.proxy.http" = "localhost";
"network.proxy.http_port" = 4444;
"network.proxy.ssl" = "localhost";
"network.proxy.ssl_port" = 4444;
"network.proxy.type" = 1; # manual proxy
"media.peerconnection.ice.proxy_only" = true;
"browser.urlbar.autoFill" = false;
"browser.fixup.fallback-to-https" = false;
"network.stricttransportsecurity.preloadlist" = false;
"browser.fixup.domainsuffixwhitelist.i2p" = true;
"dom.security.https_only_mode_ever_enabled" = false;
};
bookmarks.force = true;
bookmarks.settings = [
{
name = "router";
url = "http://localhost:7070/";
}
];
};
profiles.arti = {
id = 2;
settings = {
"network.proxy.socks" = "localhost";
"network.proxy.socks_port" = 9150;
"network.proxy.type" = 1; # manual proxy
"network.proxy.socks5_remote_dns" = true;
};
};
profiles.default.search = {
force = true;
default = "ddg";
privateDefault = "ddg";
engines = {
"udm14" = {
urls = [
{
template = "https://google.com/search";
params = [
{
name = "udm";
value = "14";
}
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@udm14" ];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nixpkgs" ];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nixopts" ];
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nixwiki" ];
};
"sklearn" = {
urls = [
{
template = "https://scikit-learn.org/stable/search.html";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@sklearn" ];
};
"torch" = {
urls = [
{
template = "https://docs.pytorch.org/docs/2.9/search.html";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@torch" ];
};
"docs.rs" = {
urls = [
{
template = "https://docs.rs/releases/search";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@docsrs" ];
};
};
};
};
}

View File

@@ -11,7 +11,6 @@
./browsers.nix
./gaming.nix
./git.nix
# ./gnome.nix
./golang.nix
./graphics.nix
./helix.nix
@@ -23,18 +22,29 @@
./video-editing.nix
./media-playback.nix
./mpv.nix
./konsole-stylix.nix
];
xdg.enable = true;
home = {
sessionVariables = {
# these mfs pollute my home directory
# some unfixable offenders include .mozilla, .librewolf
# .adb and .ghidra
SCIKIT_LEARN_DATA = "${config.xdg.cacheHome}/sklearn-data";
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
NH_FLAKE = "${config.xdg.userDirs.publicShare}/dotfiles";
GDBHISTFILE = "${config.xdg.dataHome}/gdb/history";
HISTFILE="${config.xdg.stateHome}/bash/history";
KERAS_HOME="${config.xdg.stateHome}/keras";
ANDROID_USER_HOME="${config.xdg.dataHome}/android";
W3M_DIR="${config.xdg.dataHome}/w3m";
# Remove when https://github.com/flxzt/rnote/issues/1543 gets fixed.
# causes the drawing tablet input to not get recognized.
GDK_BACKEND="x11";
GNUPGHOME = "${config.xdg.dataHome}/gnupg";
GOPATH = "${config.xdg.userDirs.publicShare}/go";
@@ -46,6 +56,9 @@
JULIAUP_DEPOT_PATH = "${config.xdg.dataHome}/julia";
CARGO_HOME = "${config.xdg.dataHome}/cargo";
PSQL_HISTORY = "${config.xdg.stateHome}/psql_history";
PYTHON_HISTORY = "${config.xdg.stateHome}/python_history";
SQLITE_HISTORY="${config.xdg.stateHome}/sqlite_history";
};
sessionPath = [
@@ -55,9 +68,34 @@
stateVersion = "24.05";
packages = with pkgs; [
kiwix
kiwix-tools
harper
tesseract
signal-desktop-bin
rusty-man
whisper-cpp
signal-desktop
(pkgs.writeShellScriptBin "lecture" ''
mpv --speed=1.5 --start=00:00:14 --cache-pause-wait=14 --script-opts='skipsilence-enabled=yes,skipsilence-threshold_db=-18' --vf=sub,negate "$1"
'')
(pkgs.writeShellScriptBin "transcribe" ''
MODEL=$1
WAVFILE="/tmp/whisper.wav"
if test ! -f "$WAVFILE"; then
${pkgs.notify-desktop}/bin/notify-desktop "Recording audio" "Re-trigger the shortcut to transcribe"
nohup pw-record $WAVFILE &
disown -a
exit
fi
${pkgs.busybox}/bin/fuser -k -INT "$WAVFILE"
${pkgs.notify-desktop}/bin/notify-desktop "Starting transcription" "using model $MODEL"
${pkgs.whisper-cpp}/bin/whisper-cli -m "$MODEL" -f "$WAVFILE" --output-txt
cat /tmp/whisper.wav.txt | wl-copy
rm "$WAVFILE"
${pkgs.notify-desktop}/bin/notify-desktop "Transcription finished" "You may paste from the clipboard"
'')
];
};
@@ -71,5 +109,28 @@
enable = true;
enableFishIntegration = true;
};
kitty = {
enable = true;
settings = {
confirm_os_window_close = 0;
enable_audio_bell = false;
window_padding_width = "6 10";
cursor_shape = "block";
cursor_trail = 1;
cursor_trail_decay = "0.1 0.3";
cursor_trail_start_threshold = 0;
shell_integration = "no-cursor";
font_size = 13.0;
tab_bar_margin_height = "8.0 0.0";
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
};
keybindings = {
"ctrl+t" = "new_tab_with_cwd";
"ctrl+shift+t" = "";
"ctrl+backspace" = "send_text all \\x17";
};
};
};
}

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env sh
# inspired by https://sethmlarson.dev/easy-github-co-authored-by
test $1 && gh api "/users/$1" | jq -r '"Co-authored-by: \(.name // .login) <\(.id)+\(.login)@users.noreply.github.com>"'

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
test "$@" && gh api -X PUT "/user/starred/$1"

View File

@@ -1,27 +1,50 @@
{ config, pkgs, ... }:
let
githubHelper = "${pkgs.gh}/bin/gh auth git-credential";
in
{
programs.git = {
enable = true;
userName = "Himadri Bhattacharjee";
userEmail = "107522312+lavafroth@users.noreply.github.com";
delta.enable = true;
programs = {
extraConfig = {
credential."https://github.com".helper = githubHelper;
credential."https://gist.github.com".helper = githubHelper;
gpg.format = "ssh";
gh = {
enable = true;
extensions = [
(pkgs.stdenv.mkDerivation rec {
name = "gh-star";
pname = name;
src = ./gh-extensions;
installPhase = ''
mkdir -p $out/bin
cp $src/${name}.sh $out/bin/${name}
chmod +x $out/bin/${name}
'';
})
(pkgs.stdenv.mkDerivation rec {
name = "gh-coauthor";
pname = name;
src = ./gh-extensions;
installPhase = ''
mkdir -p $out/bin
cp $src/${name}.sh $out/bin/${name}
chmod +x $out/bin/${name}
'';
})
];
};
signing.signByDefault = true;
signing.key = "${config.home.homeDirectory}/.ssh/id_ed25519";
git = {
enable = true;
settings = {
user.name = "Himadri Bhattacharjee";
user.email = "107522312+lavafroth@users.noreply.github.com";
gpg.format = "ssh";
};
signing.signByDefault = true;
signing.key = "${config.home.homeDirectory}/.ssh/id_ed25519";
};
delta.enable = true;
jujutsu.enable = true;
};
home.packages = with pkgs; [
gh
jujutsu
];
}

View File

@@ -1,149 +0,0 @@
{ pkgs, ... }:
{
home.packages =
with pkgs.gnomeExtensions;
[
blur-my-shell
user-themes
caffeine
paperwm
pano
]
++ (with pkgs; [
adw-gtk3
gnome-secrets
papers
celluloid
fractal
]);
# the above two get merged
home.programs.helix.settings.theme = "adwaita-dark";
# Refer to https://hoverbear.org/blog/declarative-gnome-configuration-in-nixos/
dconf.settings = {
"org/gnome/calculator" = {
button-mode = "programming";
show-thousands = true;
base = 10;
};
# Enable dark theme using adw-gtk3 to make GTK3 apps look coherent
"org/gnome/desktop/interface" = {
gtk-theme = "adw-gtk3-dark";
color-scheme = "prefer-dark";
};
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Super>q" ];
};
"org/gnome/shell".enabled-extensions = [
"quick-settings-tweaks@qwreey"
"caffeine@patapon.info"
"blur-my-shell@aunetx"
"paperwm@paperwm.github.com"
];
"org/gnome/mutter".dynamic-workspaces = true;
"org/gnome/shell".favorite-apps = [
"org.gnome.Console.desktop"
"librewolf.desktop"
"org.gnome.Nautilus.desktop"
"org.gnome.World.Secrets.desktop"
"signal-desktop.desktop"
"net.lutris.Lutris.desktop"
];
"org/gnome/desktop/app-folders/folders/Office" = {
name = "Office";
apps = [
"startcenter.desktop"
"base.desktop"
"writer.desktop"
"calc.desktop"
"impress.desktop"
"draw.desktop"
"math.desktop"
];
};
"org/gnome/desktop/app-folders/folders/SoundAndVideo" = {
name = "Sound & Video";
apps = [
"tenacity.desktop"
"com.github.iwalton3.jellyfin-media-player.desktop"
"io.github.celluloid_player.Celluloid.desktop"
"org.kde.kdenlive.desktop"
"org.gnome.Music.desktop"
];
};
"org/gnome/desktop/app-folders/folders/Programming" = {
name = "Programming";
apps = [
"jupyterlab.desktop"
"jupyter-notebook.desktop"
"Helix.desktop"
"ghidra.desktop"
];
};
"org/gnome/desktop/app-folders/folders/Graphics" = {
name = "Graphics";
apps = [
"org.kde.krita.desktop"
"gimp.desktop"
"com.github.flxzt.rnote.desktop"
"io.gitlab.theevilskeleton.Upscaler.desktop"
"org.inkscape.Inkscape.desktop"
];
};
"org/gnome/desktop/app-folders/folders/System" = {
name = "System";
apps = [
"org.gnome.Settings.desktop"
"org.gnome.SystemMonitor.desktop"
"org.gnome.DiskUtility.desktop"
"org.gnome.baobab.desktop"
"org.gnome.seahorse.Application.desktop"
"org.gnome.Logs.desktop"
];
};
"org/gnome/desktop/app-folders/folders/AltProfiles" = {
name = "Alt Profiles";
apps = [
"torbrowser.desktop"
"google-profile.desktop"
"github-profile.desktop"
];
};
"org/gnome/desktop/app-folders".folder-children = [
"Utilities"
"Office"
"Programming"
"Graphics"
"AltProfiles"
"System"
"SoundAndVideo"
];
"org/gnome/desktop/input-sources".xkb-options = [
"terminate:ctrl_alt_bksp"
"lv3:ralt_switch"
"caps:swapescape"
];
# notebooks with touchpads
"org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
# disable hot corners
"org/gnome/desktop/interface".enable-hot-corners = false;
"org/gnome/desktop/peripherals/touchpad".click-method = "areas";
"org/gnome/Console".custom-font = "Space Grotesk";
};
}

View File

@@ -3,6 +3,7 @@
home.packages = with pkgs; [
krita
inkscape
libresprite
# blender
];
}

View File

@@ -3,7 +3,11 @@
enable = true;
settings = {
editor.idle-timeout = 0;
editor.cursor-shape.insert = "bar";
editor.cursor-shape = {
insert = "bar";
normal = "underline";
select = "underline";
};
keys.normal."X" = [
"extend_line_up"
"extend_to_line_bounds"

View File

@@ -2,11 +2,39 @@
{
home.packages = with pkgs; [
keepassxc
haruna
kdePackages.kde-gtk-config
kdePackages.kclock
kdePackages.alligator
kdePackages.karousel
kde-rounded-corners
notify-desktop
klassy
(pkgs.writeShellScriptBin "rotate-screen" ''
#!/usr/bin/env sh
case $(${pkgs.kdePackages.libkscreen}/bin/kscreen-doctor --json | ${pkgs.jq}/bin/jq .outputs[0].rotation) in
1) direction=left ;;
2) direction=inverted ;;
4) direction=right ;;
8) direction=none ;;
esac
${pkgs.kdePackages.libkscreen}/bin/kscreen-doctor output.eDP-1.rotation.$direction
'')
(pkgs.writeShellScriptBin "toggle-touchpad" ''
touchpad=$(awk '$0 ~ /touchpad/I { split(FILENAME, path, "/") } END { print path[5] }' /sys/class/input/event*/device/name)
device=/org/kde/KWin/InputDevice/$touchpad
get_property=org.freedesktop.DBus.Properties.Get
interface=org.kde.KWin.InputDevice
if test $(qdbus org.kde.KWin $device $get_property $interface enabled) = true; then
toggle=false
else
toggle=true
fi
qdbus org.kde.KWin $device $interface.enabled $toggle
'')
];
home.file.".config/kglobalshortcutsrc".source = ./sources/kglobalshortcutsrc;
home.file.".config/kwinrc".source = ./sources/kwinrc;
}

View File

@@ -1,10 +0,0 @@
{
pkgs,
lib,
...
}:
{
home.activation.konsolerc = lib.hm.dag.entryAfter [ "stylixLookAndFeel" ] ''
${pkgs.mustache2konsole}/bin/mustache2konsole $HOME/.config/stylix/palette.json > $HOME/.local/share/konsole/Stylix.colorscheme
'';
}

View File

@@ -4,10 +4,8 @@
enable = true;
package = (
pkgs.mpv-unwrapped.wrapper {
mpv = pkgs.mpv-unwrapped.override {
waylandSupport = true;
};
pkgs.mpv.override {
# waylandSupport = true;
scripts = with pkgs.mpvScripts; [
mpris

View File

@@ -2,6 +2,6 @@
{
home.packages = with pkgs; [
nixd
nixfmt-rfc-style
nixfmt
];
}

View File

@@ -3,6 +3,7 @@
home.packages = with pkgs; [
mdcat
typst
iwe
rnote
];
}

View File

@@ -1,5 +0,0 @@
[window]
padding = { x = 8, y = 8 }
[keyboard]
bindings = [ { key = "t", mods = "Control", action = "SpawnNewInstance" } ]

View File

@@ -0,0 +1,407 @@
[ActivityManager]
_k_friendly_name=Activity Manager
switch-to-activity-b675b342-771e-4285-a7d0-8b586756ffa3=none,none,Switch to activity "Default"
[KDE Keyboard Layout Switcher]
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,
_k_friendly_name=Keyboard Layout Switcher
[kaccess]
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
_k_friendly_name=Accessibility
[kmix]
_k_friendly_name=Audio Volume
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
decrease_volume=Volume Down,Volume Down,Decrease Volume
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
increase_volume=Volume Up,Volume Up,Increase Volume
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
mute=Volume Mute,Volume Mute,Mute
[ksmserver]
Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out
Reboot=none,,Reboot
Reboot Without Confirmation=none,,Reboot Without Confirmation
Shut Down=none,,Shut Down
_k_friendly_name=Session Management
[kwin]
Activate Window Demanding Attention=none,Meta+Ctrl+A,Activate Window Demanding Attention
Cycle Overview=none,none,Cycle through Overview and Grid View
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
Decrease Opacity=none,,Decrease Opacity of Active Window by 5%
Edit Tiles=Meta+T,Meta+T,Toggle Tiles Editor
Expose=Ctrl+F9,Meta+F9\tCtrl+F9,Toggle Present Windows (Current desktop)
ExposeAll=Ctrl+F10\tLaunch (C),Meta+F10\tLaunch (C)\tCtrl+F10,Toggle Present Windows (All desktops)
ExposeClass=Ctrl+F7,Meta+F7\tCtrl+F7,Toggle Present Windows (Window class)
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
Grid View=none,Meta+G,Toggle Grid View
Increase Opacity=none,,Increase Opacity of Active Window by 5%
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,Kill Window
Move Tablet to Next LogicalOutput=none,none,Move the tablet to the next output
Move Tablet to Next Output=none,none,Move the tablet to the next output
MoveMouseToCenter=Meta+F6,Meta+F6,Move Mouse to Center
MoveMouseToFocus=Meta+F5,Meta+F5,Move Mouse to Focus
MoveZoomDown=none,Meta+Ctrl+Down,Move Down
MoveZoomLeft=none,Meta+Ctrl+Left,Move Left
MoveZoomRight=none,Meta+Ctrl+Right,Move Right
MoveZoomUp=none,Meta+Ctrl+Up,Move Up
Overview=none,Meta+W,Toggle Overview
Setup Window Shortcut=none,,Setup Window Shortcut
Show Desktop=Meta+G,Meta+D,Peek at Desktop
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Switch One Desktop Up
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Switch One Desktop to the Left
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Switch One Desktop to the Right
Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,Switch to Window Below
Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,Switch to Window to the Left
Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,Switch to Window to the Right
Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,Switch to Window Above
Switch to Desktop 1=Ctrl+F1,Meta+F1\tCtrl+F1,Switch to Desktop 1
Switch to Desktop 10=none,,Switch to Desktop 10
Switch to Desktop 11=none,,Switch to Desktop 11
Switch to Desktop 12=none,,Switch to Desktop 12
Switch to Desktop 13=none,,Switch to Desktop 13
Switch to Desktop 14=none,,Switch to Desktop 14
Switch to Desktop 15=none,,Switch to Desktop 15
Switch to Desktop 16=none,,Switch to Desktop 16
Switch to Desktop 17=none,,Switch to Desktop 17
Switch to Desktop 18=none,,Switch to Desktop 18
Switch to Desktop 19=none,,Switch to Desktop 19
Switch to Desktop 2=Ctrl+F2,Meta+F2\tCtrl+F2,Switch to Desktop 2
Switch to Desktop 20=none,,Switch to Desktop 20
Switch to Desktop 21=,,Switch to Desktop 21
Switch to Desktop 22=,,Switch to Desktop 22
Switch to Desktop 23=,,Switch to Desktop 23
Switch to Desktop 24=,,Switch to Desktop 24
Switch to Desktop 25=,,Switch to Desktop 25
Switch to Desktop 3=Ctrl+F3,Meta+F3\tCtrl+F3,Switch to Desktop 3
Switch to Desktop 4=Ctrl+F4,Meta+F4\tCtrl+F4,Switch to Desktop 4
Switch to Desktop 5=none,,Switch to Desktop 5
Switch to Desktop 6=none,,Switch to Desktop 6
Switch to Desktop 7=none,,Switch to Desktop 7
Switch to Desktop 8=none,,Switch to Desktop 8
Switch to Desktop 9=none,,Switch to Desktop 9
Switch to Next Desktop=none,,Switch to Next Desktop
Switch to Next Screen=none,,Switch to Next Screen
Switch to Previous Desktop=none,,Switch to Previous Desktop
Switch to Previous Screen=none,,Switch to Previous Screen
Switch to Screen 0=none,,Switch to Screen 0
Switch to Screen 1=none,,Switch to Screen 1
Switch to Screen 2=none,,Switch to Screen 2
Switch to Screen 3=none,,Switch to Screen 3
Switch to Screen 4=none,,Switch to Screen 4
Switch to Screen 5=none,,Switch to Screen 5
Switch to Screen 6=none,,Switch to Screen 6
Switch to Screen 7=none,,Switch to Screen 7
Switch to Screen Above=none,,Switch to Screen Above
Switch to Screen Below=none,,Switch to Screen Below
Switch to Screen to the Left=none,,Switch to Screen to the Left
Switch to Screen to the Right=none,,Switch to Screen to the Right
Toggle Night Color=none,none,Suspend/Resume Night Light
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
Walk Through Windows=Meta+Tab\tAlt+Tab,Meta+Tab\tAlt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Meta+Shift+Tab\tAlt+Shift+Tab,Meta+Shift+Tab\tAlt+Shift+Tab,Walk Through Windows (Reverse)
Walk Through Windows Alternative=none,none,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=none,none,Walk Through Windows Alternative (Reverse)
Walk Through Windows of Current Application=Alt+`,Meta+`\tAlt+`,Walk Through Windows of Current Application
Walk Through Windows of Current Application (Reverse)=Meta+~\tAlt+~,Meta+~\tAlt+~,Walk Through Windows of Current Application (Reverse)
Walk Through Windows of Current Application Alternative=none,none,Walk Through Windows of Current Application Alternative
Walk Through Windows of Current Application Alternative (Reverse)=none,none,Walk Through Windows of Current Application Alternative (Reverse)
Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others
Window Close=Alt+F4\tMeta+Q,Alt+F4,Close Window
Window Custom Quick Tile Bottom=none,,Custom Quick Tile Window to the Bottom
Window Custom Quick Tile Left=none,,Custom Quick Tile Window to the Left
Window Custom Quick Tile Right=none,,Custom Quick Tile Window to the Right
Window Custom Quick Tile Top=none,,Custom Quick Tile Window to the Top
Window Fullscreen=none,,Make Window Fullscreen
Window Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically
Window Lower=none,,Lower Window
Window Maximize=Meta+PgUp,Meta+PgUp,Maximize Window
Window Maximize Horizontal=none,,Maximize Window Horizontally
Window Maximize Vertical=none,,Maximize Window Vertically
Window Minimize=Meta+PgDown,Meta+PgDown,Minimize Window
Window Move=none,,Move Window
Window Move Center=none,,Move Window to the Center
Window No Border=none,,Toggle Window Titlebar and Frame
Window On All Desktops=none,,Keep Window on All Desktops
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,Window One Desktop Down
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,Window One Desktop Up
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
Window One Screen Down=none,,Move Window One Screen Down
Window One Screen Up=none,,Move Window One Screen Up
Window One Screen to the Left=none,,Move Window One Screen to the Left
Window One Screen to the Right=none,,Move Window One Screen to the Right
Window Operations Menu=Alt+F3,Alt+F3,Window Menu
Window Pack Down=none,,Move Window Down
Window Pack Left=none,,Move Window Left
Window Pack Right=none,,Move Window Right
Window Pack Up=none,,Move Window Up
Window Quick Tile Bottom=Meta+Down,Meta+Down,Quick Tile Window to the Bottom
Window Quick Tile Bottom Left=none,,Quick Tile Window to the Bottom Left
Window Quick Tile Bottom Right=none,,Quick Tile Window to the Bottom Right
Window Quick Tile Left=Meta+Left,Meta+Left,Quick Tile Window to the Left
Window Quick Tile Right=Meta+Right,Meta+Right,Quick Tile Window to the Right
Window Quick Tile Top=Meta+Up,Meta+Up,Quick Tile Window to the Top
Window Quick Tile Top Left=none,,Quick Tile Window to the Top Left
Window Quick Tile Top Right=none,,Quick Tile Window to the Top Right
Window Raise=none,,Raise Window
Window Resize=none,,Resize Window
Window Shade=none,none,Shade Window
Window Shrink Horizontal=none,,Shrink Window Horizontally
Window Shrink Vertical=none,,Shrink Window Vertically
Window to Desktop 1=none,,Window to Desktop 1
Window to Desktop 10=none,,Window to Desktop 10
Window to Desktop 11=none,,Window to Desktop 11
Window to Desktop 12=none,,Window to Desktop 12
Window to Desktop 13=none,,Window to Desktop 13
Window to Desktop 14=none,,Window to Desktop 14
Window to Desktop 15=none,,Window to Desktop 15
Window to Desktop 16=none,,Window to Desktop 16
Window to Desktop 17=none,,Window to Desktop 17
Window to Desktop 18=none,,Window to Desktop 18
Window to Desktop 19=none,,Window to Desktop 19
Window to Desktop 2=none,,Window to Desktop 2
Window to Desktop 20=none,,Window to Desktop 20
Window to Desktop 21=,,Window to Desktop 21
Window to Desktop 22=,,Window to Desktop 22
Window to Desktop 23=,,Window to Desktop 23
Window to Desktop 24=,,Window to Desktop 24
Window to Desktop 25=,,Window to Desktop 25
Window to Desktop 3=none,,Window to Desktop 3
Window to Desktop 4=none,,Window to Desktop 4
Window to Desktop 5=none,,Window to Desktop 5
Window to Desktop 6=none,,Window to Desktop 6
Window to Desktop 7=none,,Window to Desktop 7
Window to Desktop 8=none,,Window to Desktop 8
Window to Desktop 9=none,,Window to Desktop 9
Window to Next Desktop=none,,Window to Next Desktop
Window to Next Screen=none,Meta+Shift+Right,Move Window to Next Screen
Window to Previous Desktop=none,,Window to Previous Desktop
Window to Previous Screen=none,Meta+Shift+Left,Move Window to Previous Screen
Window to Screen 0=none,,Move Window to Screen 0
Window to Screen 1=none,,Move Window to Screen 1
Window to Screen 2=none,,Move Window to Screen 2
Window to Screen 3=none,,Move Window to Screen 3
Window to Screen 4=none,,Move Window to Screen 4
Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7
_k_friendly_name=KWin
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture
karousel-column-move-end=Meta+Ctrl+Shift+End,none,Karousel: Move column to end
karousel-column-move-left=Meta+Ctrl+A,none,Karousel: Move column left
karousel-column-move-right=Meta+Ctrl+D,none,Karousel: Move column right
karousel-column-move-start=Meta+Ctrl+Shift+Home,none,Karousel: Move column to start
karousel-column-move-to-column-1=Meta+Ctrl+Shift+1,none,Karousel: Move column to position 1
karousel-column-move-to-column-10=none,none,Karousel: Move column to position 10
karousel-column-move-to-column-11=none,none,Karousel: Move column to position 11
karousel-column-move-to-column-12=none,none,Karousel: Move column to position 12
karousel-column-move-to-column-2=Meta+Ctrl+Shift+2,none,Karousel: Move column to position 2
karousel-column-move-to-column-3=Meta+Ctrl+Shift+3,none,Karousel: Move column to position 3
karousel-column-move-to-column-4=Meta+Ctrl+Shift+4,none,Karousel: Move column to position 4
karousel-column-move-to-column-5=Meta+Ctrl+Shift+5,none,Karousel: Move column to position 5
karousel-column-move-to-column-6=Meta+Ctrl+Shift+6,none,Karousel: Move column to position 6
karousel-column-move-to-column-7=Meta+Ctrl+Shift+7,none,Karousel: Move column to position 7
karousel-column-move-to-column-8=Meta+Ctrl+Shift+8,none,Karousel: Move column to position 8
karousel-column-move-to-column-9=Meta+Ctrl+Shift+9,none,Karousel: Move column to position 9
karousel-column-move-to-desktop-1=Meta+Ctrl+Shift+F1,none,Karousel: Move column to desktop 1
karousel-column-move-to-desktop-10=Meta+Ctrl+Shift+F10,none,Karousel: Move column to desktop 10
karousel-column-move-to-desktop-11=Meta+Ctrl+Shift+F11,none,Karousel: Move column to desktop 11
karousel-column-move-to-desktop-12=Meta+Ctrl+Shift+F12,none,Karousel: Move column to desktop 12
karousel-column-move-to-desktop-2=Meta+Ctrl+Shift+F2,none,Karousel: Move column to desktop 2
karousel-column-move-to-desktop-3=Meta+Ctrl+Shift+F3,none,Karousel: Move column to desktop 3
karousel-column-move-to-desktop-4=Meta+Ctrl+Shift+F4,none,Karousel: Move column to desktop 4
karousel-column-move-to-desktop-5=Meta+Ctrl+Shift+F5,none,Karousel: Move column to desktop 5
karousel-column-move-to-desktop-6=Meta+Ctrl+Shift+F6,none,Karousel: Move column to desktop 6
karousel-column-move-to-desktop-7=Meta+Ctrl+Shift+F7,none,Karousel: Move column to desktop 7
karousel-column-move-to-desktop-8=Meta+Ctrl+Shift+F8,none,Karousel: Move column to desktop 8
karousel-column-move-to-desktop-9=Meta+Ctrl+Shift+F9,none,Karousel: Move column to desktop 9
karousel-column-toggle-stacked=Meta+X,none,Karousel: Toggle stacked layout for focused column
karousel-column-width-decrease=Meta+Ctrl+-,none,Karousel: Decrease column width
karousel-column-width-increase=Meta+Ctrl++,none,Karousel: Increase column width
karousel-columns-squeeze-left=none,none,Karousel: Squeeze left column onto the screen
karousel-columns-squeeze-right=none,none,Karousel: Squeeze right column onto the screen
karousel-columns-width-equalize=Meta+Ctrl+X,none,Karousel: Equalize widths of visible columns
karousel-cycle-preset-widths=Meta+R,none,Karousel: Cycle through preset column widths
karousel-cycle-preset-widths-reverse=Meta+Shift+R,none,Karousel: Cycle through preset column widths in reverse
karousel-focus-1=none,none,Karousel: Move focus to column 1
karousel-focus-10=none,none,Karousel: Move focus to column 10
karousel-focus-11=none,none,Karousel: Move focus to column 11
karousel-focus-12=none,none,Karousel: Move focus to column 12
karousel-focus-2=none,none,Karousel: Move focus to column 2
karousel-focus-3=none,none,Karousel: Move focus to column 3
karousel-focus-4=none,none,Karousel: Move focus to column 4
karousel-focus-5=none,none,Karousel: Move focus to column 5
karousel-focus-6=none,none,Karousel: Move focus to column 6
karousel-focus-7=Meta+7,none,Karousel: Move focus to column 7
karousel-focus-8=Meta+8,none,Karousel: Move focus to column 8
karousel-focus-9=Meta+9,none,Karousel: Move focus to column 9
karousel-focus-down=Meta+S,none,Karousel: Move focus down
karousel-focus-end=Meta+End,none,Karousel: Move focus to end
karousel-focus-left=Meta+A,none,Karousel: Move focus left
karousel-focus-next=none,none,Karousel: Move focus to the next window in grid
karousel-focus-previous=none,none,Karousel: Move focus to the previous window in grid
karousel-focus-right=Meta+D,none,Karousel: Move focus right
karousel-focus-start=Meta+Home,none,Karousel: Move focus to start
karousel-focus-up=Meta+W,none,Karousel: Move focus up
karousel-grid-scroll-end=Meta+Alt+End,none,Karousel: Scroll to end
karousel-grid-scroll-focused=Meta+Alt+Return,none,Karousel: Center focused window
karousel-grid-scroll-left=Meta+Alt+PgUp,none,Karousel: Scroll left
karousel-grid-scroll-left-column=Meta+Alt+A,none,Karousel: Scroll one column to the left
karousel-grid-scroll-right=Meta+Alt+PgDown,none,Karousel: Scroll right
karousel-grid-scroll-right-column=Meta+Alt+D,none,Karousel: Scroll one column to the right
karousel-grid-scroll-start=Meta+Alt+Home,none,Karousel: Scroll to start
karousel-screen-switch=Meta+Ctrl+Return,none,Karousel: Move Karousel grid to the current screen
karousel-tail-move-to-desktop-1=Meta+Ctrl+Alt+Shift+F1,none,Karousel: Move this and all following columns to desktop 1
karousel-tail-move-to-desktop-10=Meta+Ctrl+Alt+Shift+F10,none,Karousel: Move this and all following columns to desktop 10
karousel-tail-move-to-desktop-11=Meta+Ctrl+Alt+Shift+F11,none,Karousel: Move this and all following columns to desktop 11
karousel-tail-move-to-desktop-12=Meta+Ctrl+Alt+Shift+F12,none,Karousel: Move this and all following columns to desktop 12
karousel-tail-move-to-desktop-2=Meta+Ctrl+Alt+Shift+F2,none,Karousel: Move this and all following columns to desktop 2
karousel-tail-move-to-desktop-3=Meta+Ctrl+Alt+Shift+F3,none,Karousel: Move this and all following columns to desktop 3
karousel-tail-move-to-desktop-4=Meta+Ctrl+Alt+Shift+F4,none,Karousel: Move this and all following columns to desktop 4
karousel-tail-move-to-desktop-5=Meta+Ctrl+Alt+Shift+F5,none,Karousel: Move this and all following columns to desktop 5
karousel-tail-move-to-desktop-6=Meta+Ctrl+Alt+Shift+F6,none,Karousel: Move this and all following columns to desktop 6
karousel-tail-move-to-desktop-7=Meta+Ctrl+Alt+Shift+F7,none,Karousel: Move this and all following columns to desktop 7
karousel-tail-move-to-desktop-8=Meta+Ctrl+Alt+Shift+F8,none,Karousel: Move this and all following columns to desktop 8
karousel-tail-move-to-desktop-9=Meta+Ctrl+Alt+Shift+F9,none,Karousel: Move this and all following columns to desktop 9
karousel-window-move-down=Meta+Shift+S,none,Karousel: Move window down
karousel-window-move-end=Meta+Shift+End,none,Karousel: Move window to end
karousel-window-move-left=Meta+Shift+A,none,Karousel: Move window left
karousel-window-move-next=none,none,Karousel: Move window to the next position in grid
karousel-window-move-previous=none,none,Karousel: Move window to the previous position in grid
karousel-window-move-right=Meta+Shift+D,none,Karousel: Move window right
karousel-window-move-start=Meta+Shift+Home,none,Karousel: Move window to start
karousel-window-move-to-column-1=Meta+Shift+1,none,Karousel: Move window to column 1
karousel-window-move-to-column-10=none,none,Karousel: Move window to column 10
karousel-window-move-to-column-11=none,none,Karousel: Move window to column 11
karousel-window-move-to-column-12=none,none,Karousel: Move window to column 12
karousel-window-move-to-column-2=Meta+Shift+2,none,Karousel: Move window to column 2
karousel-window-move-to-column-3=Meta+Shift+3,none,Karousel: Move window to column 3
karousel-window-move-to-column-4=Meta+Shift+4,none,Karousel: Move window to column 4
karousel-window-move-to-column-5=Meta+Shift+5,none,Karousel: Move window to column 5
karousel-window-move-to-column-6=Meta+Shift+6,none,Karousel: Move window to column 6
karousel-window-move-to-column-7=Meta+Shift+7,none,Karousel: Move window to column 7
karousel-window-move-to-column-8=Meta+Shift+8,none,Karousel: Move window to column 8
karousel-window-move-to-column-9=Meta+Shift+9,none,Karousel: Move window to column 9
karousel-window-move-up=Meta+Shift+W,none,Karousel: Move window up
karousel-window-toggle-floating=Meta+F,none,Karousel: Toggle floating
view_actual_size=Meta+0,Meta+0,Zoom to Actual Size
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out
[kwin][Global Shortcuts]
_k_friendly_name=
[mediacontrol]
_k_friendly_name=Media Controller
mediavolumedown=none,,Media volume down
mediavolumeup=none,,Media volume up
nextmedia=Media Next,Media Next,Media playback next
pausemedia=Media Pause,Media Pause,Pause media playback
playmedia=none,,Play media playback
playpausemedia=Media Play,Media Play,Play/Pause media playback
previousmedia=Media Previous,Media Previous,Media playback previous
seekbackwardmedia=Media Rewind,Media Rewind,Media playback seek backward 5s
seekbackwardmedialong=,,Media playback seek backward 30s
seekforwardmedia=Media Fast Forward,Media Fast Forward,Media playback seek forward 5s
seekforwardmedialong=,,Media playback seek forward 30s
stopmedia=Media Stop,Media Stop,Stop media playback
[org_kde_powerdevil]
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
Hibernate=Hibernate,Hibernate,Hibernate
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
PowerDown=Power Down,Power Down,Power Down
PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
[plasmashell]
Slideshow Wallpaper Next Image=none,,Next Wallpaper Image
_k_friendly_name=plasmashell
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,Activate Application Launcher
activate task manager entry 1=none,Meta+1,Activate Task Manager Entry 1
activate task manager entry 10=none,,Activate Task Manager Entry 10
activate task manager entry 2=none,Meta+2,Activate Task Manager Entry 2
activate task manager entry 3=none,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=none,Meta+4,Activate Task Manager Entry 4
activate task manager entry 5=none,Meta+5,Activate Task Manager Entry 5
activate task manager entry 6=none,Meta+6,Activate Task Manager Entry 6
activate task manager entry 7=none,Meta+7,Activate Task Manager Entry 7
activate task manager entry 8=none,Meta+8,Activate Task Manager Entry 8
activate task manager entry 9=none,Meta+9,Activate Task Manager Entry 9
clear-history=Meta+Shift+V,,Clear Clipboard History
clipboard_action=none,Meta+Ctrl+X,Automatic Action Popup Menu
cycle-panels=Meta+Alt+P,Meta+Alt+P,Move keyboard focus between panels
cycleNextAction=none,,Next History Item
cyclePrevAction=none,,Previous History Item
edit_clipboard=none,,Edit Contents…
manage activities=none,Meta+Q,Show Activity Switcher
next activity=none,none,Walk through activities
previous activity=none,none,Walk through activities (Reverse)
repeat_action=none,,Manually Invoke Action on Current Clipboard
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
show-barcode=none,,Show Barcode…
show-on-mouse-pos=Meta+V,Meta+V,Show Clipboard Items at Mouse Position
stop current activity=none,Meta+S,Stop Current Activity
switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb
[services][brave-browser.desktop]
_launch=Meta+6
[services][kitty.desktop]
_launch=Meta+1
[services][librewolf.desktop]
_launch=Meta+2
[services][net.local.kitty.desktop]
_launch=Meta+M
[services][net.local.spectacle.desktop]
_launch=Meta+Shift+H
[services][net.local.transcribe.desktop]
_launch=Meta+`
[services][org.kde.dolphin.desktop]
_launch=Meta+3
[services][org.kde.konsole.desktop]
_launch=none
[services][org.kde.krunner.desktop]
_launch=Alt+Space
[services][org.kde.spectacle.desktop]
CurrentMonitorScreenShot=
OpenWithoutScreenshot=
RecordRegion=none
_launch=Print
[services][org.keepassxc.KeePassXC.desktop]
_launch=Meta+4
[services][signal.desktop]
_launch=Meta+5

View File

@@ -0,0 +1,52 @@
[Desktops]
Id_1=893a4e8b-78c1-4811-8277-832c9b08010c
Number=1
Rows=1
[Effect-overview]
BorderActivate=9
[Plugins]
blurEnabled=true
contrastEnabled=true
karouselEnabled=true
kwin4_effect_geometry_changeEnabled=true
kwin4_effect_shapecornersEnabled=false
logoutEnabled=false
screenedgeEnabled=false
translucencyEnabled=true
windowapertureEnabled=false
zoomEnabled=false
[Round-Corners]
ActiveOutlineUseCustom=false
ActiveOutlineUsePalette=true
DisableOutlineTile=false
DisableRoundMaximize=false
DisableRoundTile=false
InactiveOutlineThickness=2
InactiveOutlineUseCustom=false
InactiveOutlineUsePalette=true
InactiveSecondOutlineThickness=0
OutlineThickness=2
SecondOutlineThickness=0
[Script-karousel]
gapsOuterBottom=8
gapsOuterLeft=8
gapsOuterRight=8
gapsOuterTop=8
gestureScroll=true
gestureScrollInvert=true
presetWidths=33%, 50%, 67%, 100%
[Xwayland]
Scale=1
[org.kde.kdecoration2]
BorderSize=Tiny
BorderSizeAuto=false
ButtonsOnLeft=MFS
ButtonsOnRight=HAI_X
library=org.kde.klassy
theme=Klassy

View File

@@ -0,0 +1 @@
/* Remove close button*/ .titlebar-buttonbox-container { display: none; }

View File

@@ -2,6 +2,6 @@
home.packages = with pkgs; [
ffmpeg-full
kdePackages.kdenlive
tenacity
audacity
];
}

17
hosts/default/locale.nix Normal file
View File

@@ -0,0 +1,17 @@
{
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
time.timeZone = "Asia/Kolkata";
}

View File

@@ -1,36 +0,0 @@
{config, pkgs, ...} :{
boot.kernelModules = [ "nvidia_uvm" ];
hardware.nvidia = {
# Modesetting is needed for most wayland compositors
modesetting.enable = true;
# I use proprietary CUDA garbage with direnv on a
# per-directory basis. So should you.
open = true;
# Disable the nvidia settings menu
nvidiaSettings = false;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# NVIDIA drivers are unfree.
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (pkgs.lib.getName pkg) [
"nvidia-x11"
];
services.xserver.videoDrivers = [ "nvidia" ];
# GPU screen recorder: akin to shadowplay on windows
environment.systemPackages = with pkgs; [
(runCommand "gpu-screen-recorder-gtk"
{
nativeBuildInputs = [ pkgs.makeWrapper ];
} ''
mkdir -p $out/bin
makeWrapper ${pkgs.gpu-screen-recorder-gtk}/bin/gpu-screen-recorder-gtk $out/bin/gpu-screen-recorder-gtk \
--prefix LD_LIBRARY_PATH : ${pkgs.libglvnd}/lib \
--prefix LD_LIBRARY_PATH : ${config.boot.kernelPackages.nvidia_x11}/lib
'')
];
}

View File

@@ -19,7 +19,7 @@
sansSerif = serif;
emoji = {
package = pkgs.noto-fonts-emoji;
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
sizes = {

View File

@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
# virtualisation = {
# libvirtd = {
# enable = true;
virtualisation = {
libvirtd = {
enable = true;
# qemu = {
# package = pkgs.qemu_kvm;
# runAsRoot = true;
@@ -18,12 +18,12 @@
# };
# };
# };
# spiceUSBRedirection.enable = true;
# };
# environment.systemPackages = [
# pkgs.gnome-boxes
# ];
};
spiceUSBRedirection.enable = true;
};
environment.systemPackages = [
pkgs.gnome-boxes
];
virtualisation.podman.enable = true;
# virtualisation.waydroid.enable = true;