Compare commits
21 Commits
Specialisa
...
637def6ca3
| Author | SHA1 | Date | |
|---|---|---|---|
| 637def6ca3 | |||
| 6e682b315b | |||
| f9c152688a | |||
| e8a125b43f | |||
| 66ef4b89af | |||
| 69aaea8526 | |||
| 48378c963d | |||
| 0305851bf4 | |||
| 1b97c15215 | |||
| 2b29515874 | |||
| 7a0ea8c4f1 | |||
| feb65868cc | |||
| aed49644e9 | |||
| 2e7dec981e | |||
| af99945a42 | |||
| 7b51a603c4 | |||
| e0daa8743d | |||
| 6bb20b177b | |||
| 4daef71117 | |||
| 54bd19fbc0 | |||
| b0b59b2413 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.directory
|
||||
268
flake.lock
generated
268
flake.lock
generated
@ -1,5 +1,28 @@
|
||||
{
|
||||
"nodes": {
|
||||
"alejandra": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"flakeCompat": "flakeCompat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744324181,
|
||||
"narHash": "sha256-Oi1n2ncF4/AWeY6X55o2FddIRICokbciqFYK64XorYk=",
|
||||
"owner": "kamadorueda",
|
||||
"repo": "alejandra",
|
||||
"rev": "3e2a85506627062313e131bf8a85315f3387c8e0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "kamadorueda",
|
||||
"ref": "4.0.0",
|
||||
"repo": "alejandra",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
@ -38,11 +61,11 @@
|
||||
"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": {
|
||||
@ -68,14 +91,36 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"alejandra",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730615655,
|
||||
"narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1758112371,
|
||||
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
|
||||
"lastModified": 1764724327,
|
||||
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
|
||||
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -87,16 +132,16 @@
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -105,6 +150,43 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakeCompat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -124,18 +206,20 @@
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1744584021,
|
||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1764524476,
|
||||
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||
"type": "github"
|
||||
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "48.1",
|
||||
"ref": "gnome-49",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"grub2-themes": {
|
||||
@ -163,16 +247,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758463745,
|
||||
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||
"lastModified": 1765217760,
|
||||
"narHash": "sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||
"rev": "e5b1f87841810fc24772bf4389f9793702000c9b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -185,11 +269,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752603129,
|
||||
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
|
||||
"lastModified": 1762964643,
|
||||
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
|
||||
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -210,11 +294,11 @@
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763967518,
|
||||
"narHash": "sha256-Gt0QlWp3r5JF+w2iZMbbot58UIR66fPH8LuHRxmHjsA=",
|
||||
"lastModified": 1765258158,
|
||||
"narHash": "sha256-d35lpzPLgL8gVruRAFt/KPwXQh7a19wR1AzQJHjyyuo=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "69c6216ddacf8a708e4c6e51273772226fab3bc2",
|
||||
"rev": "7546342de11138550fcadf104b5257f6534886e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -243,11 +327,11 @@
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1763964256,
|
||||
"narHash": "sha256-TNtOfYXppR5ln5Go8ncQFMs5+xa3LqJWkaQq22ymAcI=",
|
||||
"lastModified": 1765256153,
|
||||
"narHash": "sha256-tHey91LxQM6pgnTfguw0jqN45xj8X/0Vu71RPGkGSKg=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "79e41d7d88de44356b48400515076bf5593544e8",
|
||||
"rev": "83a733e08512d9a6ff5332ef53acc0e8e635c2ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -273,11 +357,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1761933221,
|
||||
"narHash": "sha256-rNHeoG3ZrA94jczyLSjxCtu67YYPYIlXXr0uhG3wNxM=",
|
||||
"lastModified": 1764440730,
|
||||
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "7467f155fcba189eb088a7601f44fbef7688669b",
|
||||
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -288,11 +372,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1760692209,
|
||||
"narHash": "sha256-ZUD6NfQFwkWTHi2vao4Zn35guHMHuByCRDE7Jz+nWj4=",
|
||||
"lastModified": 1765271087,
|
||||
"narHash": "sha256-u38f0e122QdMNWcgUVEzjDklxOauP/k0bEYNMg+Eeac=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88ee2ac331edc3ce9f9df92aaf824592473ed868",
|
||||
"rev": "adf3274db725a05e8c2722e1ca62c781cea33cd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -304,57 +388,55 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1763622513,
|
||||
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
|
||||
"lastModified": 1764983851,
|
||||
"narHash": "sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
|
||||
"rev": "d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1760423683,
|
||||
"narHash": "sha256-Tb+NYuJhWZieDZUxN6PgglB16yuqBYQeMJyYBGCXlt8=",
|
||||
"lastModified": 1764950072,
|
||||
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a493e93b4a259cd9fea8073f89a7ed9b1c5a1da2",
|
||||
"rev": "f61125a668a320878494449750330ca58b78c557",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"quickshell": [
|
||||
"quickshell"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762462253,
|
||||
"narHash": "sha256-WAgPlZkOpYNE/vgo4yNf5HnviFnYe8g0hQ7QsJFkXgU=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "c6a9db6d8493d1fe5c1d533e13e628ff0d62a3ee",
|
||||
"lastModified": 1771135771,
|
||||
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -370,11 +452,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758998580,
|
||||
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
|
||||
"lastModified": 1764773531,
|
||||
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
|
||||
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -393,11 +475,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762784320,
|
||||
"narHash": "sha256-odsk96Erywk5hs0dhArF38zb7Oe0q6LZ70gXbxAPKno=",
|
||||
"lastModified": 1763909441,
|
||||
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "7911a0f8a44c7e8b29d031be3149ee8943144321",
|
||||
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -413,11 +495,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761897390,
|
||||
"narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=",
|
||||
"lastModified": 1764663772,
|
||||
"narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
|
||||
"owner": "outfoxxed",
|
||||
"repo": "quickshell",
|
||||
"rev": "fc704e6b5d445899a1565955268c91942a4f263f",
|
||||
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -428,19 +510,37 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"alejandra": "alejandra",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"noctalia": "noctalia",
|
||||
"nixvim": "nixvim",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"quickshell": "quickshell",
|
||||
"stylix": "stylix",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1730555913,
|
||||
"narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
@ -448,7 +548,7 @@
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@ -462,16 +562,16 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763740035,
|
||||
"narHash": "sha256-h33/8bTP5ww1oKwrXgK2fuJPsNlWPzdG4jsvUlr6qqM=",
|
||||
"lastModified": 1765047449,
|
||||
"narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "stylix",
|
||||
"rev": "206e6ee4d11adcc80d8cbe612e14e08641474fc8",
|
||||
"rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "master",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
@ -542,11 +642,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757716333,
|
||||
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
|
||||
"lastModified": 1763914658,
|
||||
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
|
||||
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -558,11 +658,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757811970,
|
||||
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
|
||||
"lastModified": 1764465359,
|
||||
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
|
||||
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -574,11 +674,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757811247,
|
||||
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
|
||||
"lastModified": 1764464512,
|
||||
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
|
||||
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -607,11 +707,11 @@
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1763704521,
|
||||
"narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=",
|
||||
"lastModified": 1765201946,
|
||||
"narHash": "sha256-7zkEUqmeWToaTGp29YI7HUN7qiSCauNB2ep0TpB1Jwk=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad",
|
||||
"rev": "2f9981ad0890739980d09cd2a18293a1d47d0f01",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -628,11 +728,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760675007,
|
||||
"narHash": "sha256-uzFK9GgP/6TiPyXmSXeNQld3pG1zeWsPfi+ut/vrkrI=",
|
||||
"lastModified": 1765175766,
|
||||
"narHash": "sha256-M4zs4bVUv0UNuVGspwwlcGs5FpCDt52LQBA5a9nj5Lg=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "11308e8294b68cda466145d5982996c489c126bc",
|
||||
"rev": "5126a8426773dc213a8c0f0d646aca116194dab6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
31
flake.nix
31
flake.nix
@ -2,11 +2,11 @@
|
||||
description = "NixOS configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-25.05";
|
||||
home-manager.url = "github:nix-community/home-manager/master";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
plasma-manager = {
|
||||
@ -19,7 +19,7 @@
|
||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
#stylix.url = "github:nix-community/stylix/";
|
||||
stylix.url = "github:nix-community/stylix/release-25.05"; #Had to use branch or it would not build corrently
|
||||
stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently
|
||||
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
quickshell = {
|
||||
@ -32,10 +32,14 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
alejandra = {
|
||||
url = "github:kamadorueda/alejandra/4.0.0";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.quickshell.follows = "quickshell";
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
@ -43,17 +47,15 @@
|
||||
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, home-manager, plasma-manager, nixos-hardware, stylix, niri, zen-browser, grub2-themes, nix-flatpak, ... }:
|
||||
outputs = inputs@{ nixpkgs, alejandra, home-manager, plasma-manager, nixos-hardware, stylix, niri, zen-browser, grub2-themes, nix-flatpak, ... }:
|
||||
let
|
||||
username = "cookiez";
|
||||
hostname = "nixos";
|
||||
version = "25.05";
|
||||
project = "NixOS";
|
||||
version = "26.05"; #DO NOT change to "unstable" as it is not a valid option for all cascading uses of this variable
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
hyprlandEnabled = false;
|
||||
plasmaEnabled = false;
|
||||
|
||||
framework13 = true;
|
||||
in
|
||||
{
|
||||
@ -65,16 +67,13 @@
|
||||
inherit username;
|
||||
inherit version;
|
||||
inherit system;
|
||||
inherit project;
|
||||
inherit alejandra;
|
||||
host = hostname;
|
||||
};
|
||||
modules = [
|
||||
./modules
|
||||
#grub2-themes.nixosModules.default
|
||||
#nix-flatpak.nixosModules.nix-flatpak
|
||||
#stylix.nixosModules.stylix
|
||||
#Conditional Modules!
|
||||
] ++ (if hyprlandEnabled then [ ./hyprland/hyprland.nix ] else [ ]) ++ [
|
||||
] ++ (if plasmaEnabled then [ ./plasma/plasma.nix ] else [ ]) ++ [
|
||||
] ++ (if framework13 then [ nixos-hardware.nixosModules.framework-13-7040-amd ] else [ ]) ++ [
|
||||
];
|
||||
};
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
#to show logs of services run: journalctl --user-unit={service-name} --user
|
||||
|
||||
systemd.user.services.autostart-noctalia = {
|
||||
enable = false;
|
||||
description = "automatically start noctalia shell";
|
||||
|
||||
after = [ "graphical-session.target" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = [ "qs -c noctalia-shell" ];
|
||||
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
{pkgs, inputs, ...}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
|
||||
settings = {
|
||||
# bind = [
|
||||
# "SUPER, Space, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window"
|
||||
# ];
|
||||
#So hyprland doesnt break after a rebuild...
|
||||
#exec = [ "systemctl --user restart hyprland-session.target" ];
|
||||
};
|
||||
|
||||
extraConfig = builtins.readFile ./hyprland.conf;
|
||||
|
||||
};
|
||||
}
|
||||
@ -1,310 +0,0 @@
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = wofi --show drun
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
#USE autostart.nix INSTEAD OF THIS!!!
|
||||
|
||||
#exec = [ "systemctl --user restart hyprland-session.target" ];
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
# exec-once = qs -c noctalia-shell
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
# ecosystem {
|
||||
# enforce_permissions = 1
|
||||
# }
|
||||
|
||||
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
|
||||
#
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = de
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
#Custom Ones
|
||||
bind = $mainMod, Space, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, Enter, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
#bind = $mainMod, M, exit,
|
||||
#bind = $mainMod, E, exec, $fileManager
|
||||
#bind = $mainMod, V, togglefloating,
|
||||
#bind = $mainMod, R, exec, $menu
|
||||
#bind = $mainMod, P, pseudo, # dwindle
|
||||
#bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
#bind = $mainMod, S, togglespecialworkspace, magic
|
||||
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
@ -1,64 +0,0 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./autostart.nix
|
||||
../modules/noctalia
|
||||
../modules/hyprlock
|
||||
../modules/hyprpaper
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
(waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
})
|
||||
)
|
||||
hyprland
|
||||
dunst
|
||||
libnotify
|
||||
hyprpaper
|
||||
sway #Sway Wayland compositor
|
||||
#kitty #Terminal (Already Included by default)
|
||||
rofi-wayland #Search bar (Meta + Space)
|
||||
yazi
|
||||
hyprlock
|
||||
];
|
||||
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
|
||||
hyprlock = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
#waybar.enable = true;
|
||||
#rofi.enable = true;
|
||||
};
|
||||
|
||||
|
||||
#services.xserver.enable = true;
|
||||
#services.xserver.displayManager.sddm.enable = true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
#sound.enable = true;
|
||||
#security.rtkit.enable = true;
|
||||
#services.pipewire = {
|
||||
# enable = true;
|
||||
# alsa.enable = true;
|
||||
# #alsa.support3Bbit = true;
|
||||
# pulse.enable = true;
|
||||
# jack.enable = true;
|
||||
#};
|
||||
}
|
||||
@ -1,18 +1,11 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
#Access Internet using:
|
||||
#nmcli device wifi list
|
||||
#nmcli device wifi connect <ssid> password <password>
|
||||
# or if no password (open wifi)
|
||||
#nmcli device wifi connect <ssid>
|
||||
|
||||
#Nix flake file limit: ulimit -n 500000
|
||||
|
||||
{ inputs, config, pkgs, lib, username, host, version, system, ... }:
|
||||
{ inputs, config, pkgs, lib, username, project, host, version, system, ... }:
|
||||
{
|
||||
# in configuration.nix
|
||||
#Assign Swap to the PC
|
||||
#swapDevices = [{
|
||||
# device = "/swapfile";
|
||||
@ -29,13 +22,18 @@
|
||||
./firefox.nix
|
||||
./boot-splash.nix
|
||||
./zsh.nix
|
||||
./neovim.nix
|
||||
./packages.nix
|
||||
#./portainer.nix
|
||||
./neovim
|
||||
./packages
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader = {
|
||||
boot = {
|
||||
kernelParams = [ "quiet" "splash" ];
|
||||
initrd = {
|
||||
verbose = false;
|
||||
kernelModules = [ "amdgpu" ];
|
||||
};
|
||||
loader = {
|
||||
systemd-boot.enable = false;
|
||||
efi.canTouchEfiVariables = true;
|
||||
#boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
@ -46,15 +44,9 @@
|
||||
#devices = [ "nodev" ];
|
||||
efiSupport = true;
|
||||
useOSProber = true;
|
||||
#splashImage =
|
||||
# extraConfig = ''
|
||||
# menuentry "NixOS - Default" {
|
||||
# set hidden=1
|
||||
# }
|
||||
# '';
|
||||
configurationLimit = 5;
|
||||
};
|
||||
|
||||
|
||||
grub2-theme = {
|
||||
enable = true;
|
||||
theme = "whitesur";
|
||||
@ -63,36 +55,46 @@
|
||||
|
||||
timeout = 10;
|
||||
};
|
||||
};
|
||||
|
||||
#Ensure there is a grub_bios partition: (gparted)
|
||||
#Create a new parititon. File System: Unformatted - Size: ~5 Mib
|
||||
#Apply
|
||||
#Manage flags -> Add bios_grub
|
||||
|
||||
networking.hostName = host;
|
||||
networking = {
|
||||
|
||||
# Enable networking
|
||||
networkmanager.enable = true;
|
||||
|
||||
extraHosts = ''
|
||||
100.89.141.79 tail-rpi
|
||||
'';
|
||||
|
||||
hostName = host;
|
||||
# Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
# proxy.default = "http://user:password@proxy:port/";
|
||||
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Open ports in the firewall.
|
||||
# firewall.allowedTCPPorts = [ ... ];
|
||||
# firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# firewall.enable = false;
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.${username} = ./home.nix;
|
||||
backupFileExtension = "backup"; # Automatically backs up conflicting files during activation
|
||||
extraSpecialArgs = { inherit inputs username version system host; };
|
||||
extraSpecialArgs = { inherit inputs username project version system host; };
|
||||
sharedModules = [ inputs.plasma-manager.homeModules.plasma-manager ];
|
||||
};
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
networking.extraHosts = ''
|
||||
100.89.141.79 tail-rpi
|
||||
'';
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
@ -119,6 +121,16 @@
|
||||
#loadModels = [ ... ];
|
||||
};
|
||||
|
||||
open-webui = {
|
||||
enable = true;
|
||||
package = pkgs.open-webui;
|
||||
#environment = {
|
||||
# DATA_DIR = "/var/lib/open-webui"; # System-wide writable dir
|
||||
# OLLAMA_API_BASE_URL = "http://127.0.0.1:11434";
|
||||
#};
|
||||
#openFirewall = true;
|
||||
};
|
||||
|
||||
fprintd.enable = true;
|
||||
fprintd.tod.enable = true;
|
||||
fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
||||
@ -139,6 +151,31 @@
|
||||
];
|
||||
};
|
||||
|
||||
# security.rtkit.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
pipewire.wireplumber = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
"10-bluez-monitor.properties" = {
|
||||
"bluez5.msbc-support" = false;
|
||||
"bluez5.hfphsp-support" = false;
|
||||
"bluez5.hfphsp-backend" = "none"; # Key addition: no backend
|
||||
"bluez5.roles" = [ "a2dp_sink" ];
|
||||
};
|
||||
"11-bluetooth-policy" = {
|
||||
"wireplumber.settings" = {
|
||||
"bluetooth.autoswitch-to-headset-profile" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#Enable CUPS to print documents.
|
||||
printing.enable = true;
|
||||
|
||||
@ -153,7 +190,7 @@
|
||||
meslo-lgs-nf
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
noto-fonts-color-emoji
|
||||
inter
|
||||
];
|
||||
|
||||
@ -168,29 +205,37 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
steam.enable = true;
|
||||
|
||||
ssh.askPassword = lib.mkForce "${pkgs.kdePackages.ksshaskpass}/bin/ksshaskpass";
|
||||
|
||||
#In order for dynamically linked executables to work
|
||||
programs.nix-ld.enable = true;
|
||||
|
||||
programs.ssh.askPassword = lib.mkForce "${pkgs.kdePackages.ksshaskpass}/bin/ksshaskpass";
|
||||
|
||||
programs.steam.enable = true;
|
||||
nix-ld.enable = true;
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "de";
|
||||
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware = {
|
||||
#Enables proprietary, redistributable firmware so hardware devices function properly
|
||||
enableRedistributableFirmware = true;
|
||||
|
||||
hardware.graphics = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
# Mesa should be enabled by default for Vulkan, but you can be explicit
|
||||
enable32Bit = true; # For 32-bit applications
|
||||
extraPackages = with pkgs; [
|
||||
rocmPackages.clr.icd
|
||||
rocmPackages.rocm-smi
|
||||
];
|
||||
};
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
cpu.amd.updateMicrocode = true;
|
||||
|
||||
hardware.bluetooth = {
|
||||
amdgpu.opencl.enable = true;
|
||||
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
@ -211,23 +256,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# security.rtkit.enable = true;
|
||||
# services.pipewire = {
|
||||
# enable = true;
|
||||
# alsa.enable = true;
|
||||
# alsa.support32Bit = true;
|
||||
# pulse.enable = true;
|
||||
# # If you want to use JACK applications, uncomment this
|
||||
# #jack.enable = true;
|
||||
#
|
||||
# # use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# # no need to redefine it in your config for now)
|
||||
# #media-session.enable = true;
|
||||
# };
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${username} = {
|
||||
@ -239,15 +268,45 @@
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
|
||||
environment.etc."gitconfig".text = ''
|
||||
#podman = {
|
||||
# enable = true;
|
||||
# dockerCompat = true;
|
||||
#};
|
||||
|
||||
waydroid.enable = true;
|
||||
};
|
||||
|
||||
environment = {
|
||||
etc."gitconfig".text = ''
|
||||
[init]
|
||||
defaultBranch = main
|
||||
'';
|
||||
|
||||
variables = {
|
||||
EDITOR = "nvim";
|
||||
# XKB_DEFAULT_LAYOUT = "de";
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
|
||||
TERMINAL = "kitty";
|
||||
};
|
||||
};
|
||||
|
||||
#So no user in the group Wheel has to input the password in order to use sudo
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
security = {
|
||||
sudo.wheelNeedsPassword = false;
|
||||
|
||||
pam.services = {
|
||||
login.fprintAuth = true;
|
||||
sudo.fprintAuth = true;
|
||||
kde.fprintAuth = false;
|
||||
hyprlock = {};
|
||||
};
|
||||
};
|
||||
|
||||
#Allow Nix Commands
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
@ -255,31 +314,6 @@
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "nvim";
|
||||
# XKB_DEFAULT_LAYOUT = "de";
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
|
||||
TERMINAL = "kitty";
|
||||
};
|
||||
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
|
||||
@ -2,16 +2,10 @@
|
||||
{
|
||||
imports = [
|
||||
./configuration.nix
|
||||
#./firefox.nix
|
||||
#./boot-splash.nix
|
||||
#./zsh.nix
|
||||
#./neovim.nix
|
||||
#./packages.nix
|
||||
|
||||
#./hardware-configuration.nix
|
||||
#../plasma/plasma.nix
|
||||
#../hyprland/hyprland.nix
|
||||
#../niri/niri.nix
|
||||
../plasma
|
||||
../niri
|
||||
];
|
||||
|
||||
specialisation = {
|
||||
@ -19,44 +13,30 @@
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
../plasma/plasma.nix
|
||||
../plasma
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
environment.etc."nixos-tags".text = "plasma";
|
||||
};
|
||||
};
|
||||
|
||||
"hyprland" = {
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
../hyprland/hyprland.nix
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
environment.etc."nixos-tags".text = "hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
"minimal" = {
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
./minimal.nix
|
||||
];
|
||||
|
||||
environment.etc."nixos-tags".text = "minimal";
|
||||
};
|
||||
};
|
||||
# "minimal" = {
|
||||
# inheritParentConfig = false;
|
||||
# configuration = {
|
||||
# imports = [
|
||||
# ./minimal.nix
|
||||
# ];
|
||||
#
|
||||
# environment.etc."nixos-tags".text = "minimal";
|
||||
# };
|
||||
# };
|
||||
|
||||
"niri" = {
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
../niri/niri.nix
|
||||
../niri
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{ pkgs, username, ...}:
|
||||
{ pkgs, username, project, ...}:
|
||||
{
|
||||
xdg = {
|
||||
desktopEntries.youtube = {
|
||||
@ -15,6 +15,24 @@
|
||||
noDisplay = true;
|
||||
};
|
||||
|
||||
desktopEntries."discord" = {
|
||||
categories = [ "Network" "InstantMessaging" "Chat" ];
|
||||
exec = "vesktop %U";
|
||||
genericName = "Internet Messenger";
|
||||
icon = "/home/${username}/${project}/other/discord.app.png";
|
||||
name = "Discord";
|
||||
type = "Application";
|
||||
};
|
||||
|
||||
desktopEntries."vesktop" = {
|
||||
noDisplay = true;
|
||||
categories = [ "Network" "InstantMessaging" "Chat" ];
|
||||
exec = "vesktop %U";
|
||||
genericName = "Internet Messenger";
|
||||
name = "Vesktop";
|
||||
type = "Application";
|
||||
};
|
||||
|
||||
desktopEntries.kitty = {
|
||||
name = "kitty";
|
||||
genericName = "Terminal emulator";
|
||||
@ -23,7 +41,7 @@
|
||||
terminal = false;
|
||||
categories = [ "System" "TerminalEmulator" ];
|
||||
|
||||
icon = "/home/${username}/NixOS/other/kitty.app.png";
|
||||
icon = "/home/${username}/${project}/other/kitty.app.png";
|
||||
};
|
||||
|
||||
desktopEntries."org.kde.kinfocenter" = {
|
||||
@ -62,7 +80,7 @@
|
||||
};
|
||||
|
||||
desktopEntries."nixos-manual" = {
|
||||
name = "NixOS Manual";
|
||||
name = "${project} Manual";
|
||||
noDisplay = true;
|
||||
};
|
||||
|
||||
|
||||
18
modules/firefox-home.nix
Normal file
18
modules/firefox-home.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{ username, ... }:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
"${username}" = {
|
||||
extensions.force = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services."firefox-autostart" = {
|
||||
serviceConfig = {
|
||||
ExecStart = "";
|
||||
ExecStop = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -12,6 +12,10 @@
|
||||
in
|
||||
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
./firefox-home.nix
|
||||
];
|
||||
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
@ -70,6 +74,7 @@
|
||||
#(extension "react-devtools" "@react-devtools")
|
||||
(extension "keepa" "amptra@keepa.com")
|
||||
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
|
||||
(extension "darkreader" "addon@darkreader.org")
|
||||
];
|
||||
|
||||
/* ---- PREFERENCES ---- */
|
||||
|
||||
@ -1,11 +1,18 @@
|
||||
{ lib, inputs, config, pkgs, username, host, version, ... }:
|
||||
{ lib, inputs, config, pkgs, username, project, host, version, ... }:
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
home.packages = [
|
||||
(import ./ncli.nix { inherit pkgs host; backupFiles = [ ".config/mimeapps.list.backup" ]; })
|
||||
(import ./ncli.nix { inherit pkgs host project; backupFiles = [
|
||||
".gtkrc-2.0.backup"
|
||||
".config/gtk-3.0/gtk.css.backup"
|
||||
".config/gtk-3.0/settings.ini.backup"
|
||||
".config/gtk-4.0/gtk.css.backup"
|
||||
".config/gtk-4.0/settings.ini.backup"
|
||||
".config/niri/config.kdl"
|
||||
]; })
|
||||
];
|
||||
|
||||
imports = [
|
||||
@ -31,6 +38,14 @@
|
||||
home-manager = { enable = true; };
|
||||
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
#enableZshIntegration = true;
|
||||
#options = [
|
||||
# "--cmd cd"
|
||||
#];
|
||||
};
|
||||
|
||||
kitty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
@ -44,17 +59,18 @@
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Cookiez";
|
||||
userEmail = "jaden-puerkenauer@web.de";
|
||||
|
||||
extraConfig = {
|
||||
settings = {
|
||||
user = {
|
||||
name = "Cookiez";
|
||||
email = "jaden-puerkenauer@web.de";
|
||||
init.defaultBranch = "main";
|
||||
credentials.helper = "store";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
zen-browser = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
#package = inputs.zen-browser.packages.${pkgs.system}.default;
|
||||
profiles = {
|
||||
${username} = {
|
||||
|
||||
@ -9,5 +9,6 @@
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
hyprlock
|
||||
];
|
||||
}
|
||||
|
||||
@ -9,5 +9,6 @@
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
hyprpaper
|
||||
];
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{pkgs, inputs, username, ...}:
|
||||
{pkgs, inputs, username, project, ...}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
@ -6,15 +6,21 @@
|
||||
|
||||
services = {
|
||||
hyprpaper = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
|
||||
settings = {
|
||||
preload = [
|
||||
"/home/${username}/NixOS/other/wallpaper2.png"
|
||||
#"/home/${username}/${project}/other/wallpaper1.png"
|
||||
#"/home/${username}/${project}/other/wallpaper2.png"
|
||||
#"/home/${username}/${project}/other/wallpaper3.png"
|
||||
"/home/${username}/${project}/other/wallpaper4.png"
|
||||
];
|
||||
|
||||
wallpaper = [
|
||||
"eDP-1,/home/${username}/NixOS/other/wallpaper2.png"
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper1.png"
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper2.png"
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper3.png"
|
||||
"eDP-1,/home/${username}/${project}/other/wallpaper4.png"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
pkgs,
|
||||
host,
|
||||
backupFiles ? [ ".config/mimeapps.list.backup" ],
|
||||
project,
|
||||
...
|
||||
}: let
|
||||
backupFilesString = pkgs.lib.strings.concatStringsSep " " backupFiles;
|
||||
@ -11,7 +12,7 @@ in
|
||||
set -euo pipefail
|
||||
|
||||
# --- Configuration ---
|
||||
PROJECT="NixOS"
|
||||
PROJECT="${project}"
|
||||
HOST="${host}"
|
||||
BACKUP_FILES_STR="${backupFilesString}"
|
||||
VERSION="2.0.0"
|
||||
@ -19,6 +20,9 @@ in
|
||||
|
||||
read -r -a BACKUP_FILES <<< "$BACKUP_FILES_STR"
|
||||
|
||||
# --- Read Colors file ---
|
||||
source /$HOME/$PROJECT/other/colors.sh
|
||||
|
||||
# --- Helper Functions ---
|
||||
print_help() {
|
||||
echo "NixOS CLI Utility -- version $VERSION"
|
||||
@ -126,7 +130,7 @@ in
|
||||
rebuild)
|
||||
handle_backups
|
||||
geno=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||
echo "Starting NixOS rebuild for current host: $HOST on generation: $geno"
|
||||
echo -e "Starting NixOS rebuild for current host: $HOST on generation: $YELLOW$geno$NOCOLOR"
|
||||
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
||||
|
||||
current=""
|
||||
@ -144,7 +148,7 @@ in
|
||||
fi
|
||||
|
||||
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||
echo "Running on new generation: $geno -> $genn"
|
||||
echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR"
|
||||
|
||||
else
|
||||
echo "✗ Rebuild failed for $HOST" >&2
|
||||
@ -154,7 +158,7 @@ in
|
||||
update)
|
||||
handle_backups
|
||||
geno=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||
echo "Updating flake and rebuilding system for current host: $HOST on generation: $geno"
|
||||
echo -e "Updating flake and rebuilding system for current host: $HOST on generation: $YELLOW$geno$NOCOLOR"
|
||||
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
||||
|
||||
echo "Updating flake..."
|
||||
@ -187,7 +191,7 @@ in
|
||||
fi
|
||||
|
||||
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||
echo "Running on new generation: $geno -> $genn"
|
||||
echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR"
|
||||
|
||||
else
|
||||
echo "✗ Update and rebuild failed for $HOST" >&2
|
||||
@ -259,7 +263,7 @@ in
|
||||
;;
|
||||
trim)
|
||||
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance."
|
||||
read -p "Enter (y/Y) to run now or enter to exit (y/N): " -n 1 -r
|
||||
read -p "Enter to run now or enter to exit (y/N): " -n 1 -r
|
||||
echo # move to a new line
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Running fstrim..."
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
# ...
|
||||
extraPackages = with pkgs.vimPlugins; [
|
||||
lazy-nvim
|
||||
LazyVim
|
||||
|
||||
bufferline-nvim
|
||||
# stylua
|
||||
# ripgrep
|
||||
];
|
||||
|
||||
extraLuaConfig =
|
||||
let
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
LazyVim
|
||||
bufferline-nvim
|
||||
cmp-buffer
|
||||
cmp-nvim-lsp
|
||||
cmp-path
|
||||
cmp_luasnip
|
||||
conform-nvim
|
||||
dashboard-nvim
|
||||
dressing-nvim
|
||||
flash-nvim
|
||||
friendly-snippets
|
||||
gitsigns-nvim
|
||||
indent-blankline-nvim
|
||||
lualine-nvim
|
||||
neo-tree-nvim
|
||||
neoconf-nvim
|
||||
neodev-nvim
|
||||
noice-nvim
|
||||
nui-nvim
|
||||
nvim-cmp
|
||||
nvim-lint
|
||||
nvim-lspconfig
|
||||
nvim-notify
|
||||
nvim-spectre
|
||||
nvim-treesitter
|
||||
nvim-treesitter-context
|
||||
nvim-treesitter-textobjects
|
||||
nvim-ts-autotag
|
||||
nvim-ts-context-commentstring
|
||||
nvim-web-devicons
|
||||
persistence-nvim
|
||||
plenary-nvim
|
||||
telescope-fzf-native-nvim
|
||||
telescope-nvim
|
||||
todo-comments-nvim
|
||||
tokyonight-nvim
|
||||
trouble-nvim
|
||||
vim-illuminate
|
||||
vim-startuptime
|
||||
which-key-nvim
|
||||
{ name = "LuaSnip"; path = luasnip; }
|
||||
{ name = "catppuccin"; path = catppuccin-nvim; }
|
||||
];
|
||||
|
||||
mkEntryFromDrv = drv:
|
||||
if lib.isDerivation drv then { name = "${lib.getName drv}"; path = drv; }
|
||||
else drv;
|
||||
|
||||
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
|
||||
in
|
||||
''
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
vim.opt.shiftwidth = 2
|
||||
|
||||
vim.opt.mousescroll = "ver:0,hor:0"
|
||||
|
||||
vim.opt.rtp:prepend("${pkgs.vimPlugins.lazy-nvim}")
|
||||
|
||||
require("lazy").setup({
|
||||
defaults = { lazy = true },
|
||||
dev = {
|
||||
path = "${lazyPath}",
|
||||
patterns = { "" },
|
||||
fallback = true,
|
||||
},
|
||||
spec = {
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
{ "nvim-telescope/telescope-fzf-native.nvim", enabled = true },
|
||||
{ "williamboman/mason-lspconfig.nvim", enabled = false },
|
||||
{ "williamboman/mason.nvim", enabled = false },
|
||||
{ import = "plugins" },
|
||||
{ "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } },
|
||||
},
|
||||
})
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
@ -10,7 +10,7 @@
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./neovim-home.nix
|
||||
./home.nix
|
||||
];
|
||||
|
||||
|
||||
122
modules/neovim/home.nix
Normal file
122
modules/neovim/home.nix
Normal file
@ -0,0 +1,122 @@
|
||||
{ inputs, config, lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nixvim.homeModules.nixvim
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
|
||||
waylandSupport = true;
|
||||
|
||||
# Basic options
|
||||
opts = {
|
||||
autoindent = true;
|
||||
clipboard = "unnamedplus";
|
||||
shiftwidth = 2;
|
||||
mousescroll = "ver:0,hor:0";
|
||||
|
||||
expandtab = true; # Always insert spaces, never hard tab characters
|
||||
tabstop = 2; # Make hard tabs display as 2 columns (matches shiftwidth)
|
||||
softtabstop = 2; # Backspace deletes 2 spaces at a time
|
||||
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
|
||||
cursorline = true; # Highlights the entire current line
|
||||
cursorlineopt = "both"; # Highlights both the line AND the line number
|
||||
|
||||
termguicolors = true;
|
||||
};
|
||||
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
flavour = "mocha";
|
||||
term_colors = true;
|
||||
|
||||
styles = {
|
||||
booleans = [ "bold" "italic" ];
|
||||
conditionals = [ "bold" ];
|
||||
functions = [ "bold" ];
|
||||
keywords = [ "italic" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
mode = "v";
|
||||
key = ">";
|
||||
action = ">gv";
|
||||
options.desc = "Indent and keep selection";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<";
|
||||
action = "<gv";
|
||||
options.desc = "Unindent and keep selection";
|
||||
}
|
||||
];
|
||||
|
||||
plugins = {
|
||||
# Statusline at the bottom of the screen
|
||||
lualine.enable = true;
|
||||
# Tab bar at the top of the screen
|
||||
bufferline.enable = true;
|
||||
# File type icons used by many UI plugins (Dependency)
|
||||
web-devicons.enable = true;
|
||||
# Replaces the default cmdline, messages, and popupmenu with a nicer UI
|
||||
noice.enable = true;
|
||||
# Popup notification manager
|
||||
notify.enable = true;
|
||||
treesitter = {
|
||||
# Syntax parsing for accurate highlighting and code understanding
|
||||
enable = true;
|
||||
settings = {
|
||||
highlight.enable = true;
|
||||
indent.enable = true;
|
||||
};
|
||||
};
|
||||
# Shows the current function/class context pinned at the top of the buffer
|
||||
treesitter-context.enable = true;
|
||||
# Text objects based on treesitter nodes (e.g. select a function body)
|
||||
treesitter-textobjects.enable = true;
|
||||
# Auto-closes and renames HTML/JSX tags using treesitter
|
||||
ts-autotag.enable = true;
|
||||
# Adds indentation guide lines to every indent level
|
||||
indent-blankline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
indent = {
|
||||
char = "│";
|
||||
tab_char = "│"; # Explicitly define the tab indent guide character
|
||||
};
|
||||
scope = {
|
||||
enabled = true;
|
||||
};
|
||||
whitespace = {
|
||||
remove_blankline_trail = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
# Highlights and searches TODO/FIXME/HACK comments
|
||||
todo-comments.enable = true;
|
||||
nvim-autopairs = {
|
||||
enable = true;
|
||||
settings = {
|
||||
check_ts = true; # Use treesitter to avoid pairing inside strings/comments
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
];
|
||||
|
||||
# Additional Lua configuration
|
||||
extraConfigLua = ''
|
||||
-- Custom Lua config here
|
||||
vim.opt.cpoptions:append('I')
|
||||
'';
|
||||
};
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
inputs.noctalia.packages.${system}.default
|
||||
];
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
{pkgs, inputs, ...}:
|
||||
{
|
||||
imports = [
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
|
||||
programs = {
|
||||
noctalia-shell = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,130 +0,0 @@
|
||||
{config, pkgs, libs, inputs, nix-flatpak, ...}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
#Essentials (CLI Only)
|
||||
wget #A tool for quickly downloading things from the Web
|
||||
micro-with-xclip #Micro text editor with xclip for clipboard
|
||||
thefuck #Error correction in case commands are wrong. Type: 'fuck'
|
||||
jdk23 #Java Development Kit 23
|
||||
python312 #Python 3.12
|
||||
python312Packages.pip #Pip for Python 3.12
|
||||
python312Packages.cmake #The CMake tool to manage project build configurations
|
||||
fastfetch #A utility to see information about your machine
|
||||
btop #A replacement for htop to see your machines resources
|
||||
git #Git ... no need to explain
|
||||
efibootmgr
|
||||
zip #A utility for ZIP archives
|
||||
unzip #A utility for ZIP archives
|
||||
rar #A utility for RAR archives
|
||||
gnutar #A utility for .tar archives
|
||||
cron #A tool to set up commands to run scheduled
|
||||
tmux #A tool to let command windows contiune to run in the background
|
||||
home-manager #A package to also edit the user Configuration, like with nix
|
||||
konsave #A package to transfer the look and feel of KDE Plasma to other machines
|
||||
ocs-url
|
||||
kdePackages.plasma-workspace
|
||||
kdePackages.kdialog
|
||||
openssh #SSH
|
||||
zoxide #Alternatice to cd, browse files
|
||||
fzf-zsh #Search for file names
|
||||
coreutils-full
|
||||
multipath-tools
|
||||
docker
|
||||
docker-compose
|
||||
plymouth
|
||||
mesa
|
||||
fprintd
|
||||
nh
|
||||
|
||||
#Programming
|
||||
#jetbrains.pycharm-community #The PyCharm IDE to edit Python code
|
||||
jetbrains.idea-community #The IntelliJ IDE to edit Java code
|
||||
#jetbrains.clion #The CLion IDE to edit and compile c/c++ code
|
||||
#racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite)
|
||||
rustup #Rust Programming Toolchain
|
||||
#go #Go Programming Language
|
||||
gcc
|
||||
pkg-config
|
||||
vscode #Editor for all kinds of programms
|
||||
nodejs_22
|
||||
|
||||
#Hochschule
|
||||
postgresql
|
||||
dbeaver-bin
|
||||
sqlite
|
||||
|
||||
#Desktop Applications
|
||||
drawio
|
||||
jetbrains.datagrip
|
||||
ryubing
|
||||
vlc
|
||||
#steam
|
||||
#heroic
|
||||
lutris
|
||||
#putty Need to find alternative as it sucks on linux
|
||||
mission-center
|
||||
trayscale
|
||||
spotify
|
||||
rpi-imager
|
||||
kdePackages.yakuake
|
||||
#atlauncher
|
||||
discord
|
||||
wineWowPackages.stagingFull
|
||||
winetricks
|
||||
#whatsapp-for-linux
|
||||
#obs-studio
|
||||
#i2p
|
||||
gparted #Disk partition Manager
|
||||
#rustdesk
|
||||
realvnc-vnc-viewer
|
||||
eddie #AirVPN desktop client
|
||||
chromium #For Youtube app to work
|
||||
kdePackages.bluez-qt
|
||||
moonlight-qt
|
||||
kitty
|
||||
wmctrl #To Force windows into fullscreen
|
||||
kdePackages.dolphin
|
||||
persepolis #Download Manager
|
||||
libreoffice-still
|
||||
kdePackages.kservice
|
||||
qbittorrent
|
||||
|
||||
#CLI tools
|
||||
pdftk
|
||||
yt-dlp
|
||||
tailscale
|
||||
speedtest-cli
|
||||
#duplicati
|
||||
#ollama
|
||||
cloudflare-warp
|
||||
ddrescue
|
||||
texliveFull #LaTeX PDF maker
|
||||
lazygit
|
||||
gtypist
|
||||
powertop
|
||||
file
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"dotnet-sdk-6.0.428"
|
||||
"dotnet-runtime-6.0.36"
|
||||
];
|
||||
|
||||
# services.flatpak = {
|
||||
# enable = false;
|
||||
#
|
||||
# remotes = [
|
||||
# {
|
||||
# name = "flathub";
|
||||
# location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
# }
|
||||
# ];
|
||||
# packages = [
|
||||
# {
|
||||
# appId = "org.vinegarhq.Sober";
|
||||
# origin = "flathub";
|
||||
# #commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6";
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
}
|
||||
22
modules/packages/cli.nix
Normal file
22
modules/packages/cli.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{config, pkgs, libs, inputs, ...}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
#CLI tools
|
||||
pdftk #PDF toolkit
|
||||
yt-dlp #YouTube and others video downloader
|
||||
tailscale #VPN
|
||||
speedtest-cli #Internet speed tester
|
||||
#duplicati
|
||||
ollama-rocm
|
||||
open-webui
|
||||
cloudflare-warp
|
||||
ddrescue
|
||||
texliveFull #LaTeX PDF maker
|
||||
lazygit #Git CLI tool with TUI
|
||||
gtypist #Typing tutor
|
||||
powertop #Power consumption monitor and optimizer
|
||||
file #File type identifier
|
||||
hashcat #Password recovery/cracking tool
|
||||
packwiz #A Minecraft modpack editor
|
||||
];
|
||||
}
|
||||
9
modules/packages/default.nix
Normal file
9
modules/packages/default.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./desktop.nix
|
||||
./cli.nix
|
||||
./essentials.nix
|
||||
./flatpak.nix
|
||||
];
|
||||
}
|
||||
59
modules/packages/desktop.nix
Normal file
59
modules/packages/desktop.nix
Normal file
@ -0,0 +1,59 @@
|
||||
{config, pkgs, libs, inputs, ...}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
#Programming
|
||||
jetbrains.pycharm-community #The PyCharm IDE to edit Python code
|
||||
jetbrains.idea-community #The IntelliJ IDE to edit Java code
|
||||
jetbrains.clion #The CLion IDE to edit and compile c/c++ code
|
||||
jetbrains.datagrip #The DataGrip IDE to manage Databases
|
||||
#jetbrains-toolbox
|
||||
#racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite)
|
||||
rustup #Rust Programming Toolchain
|
||||
#go #Go Programming Language
|
||||
gcc #C/C++ Compiler
|
||||
pkg-config
|
||||
vscode #Editor for all kinds of programms
|
||||
nodejs_22 #NodeJS for JavaScript programming
|
||||
|
||||
#Hochschule
|
||||
postgresql #Database system
|
||||
dbeaver-bin #Database Management Tool
|
||||
sqlite #Lightweight Database system
|
||||
|
||||
#Desktop Applications
|
||||
drawio
|
||||
ryubing #Nintendo Switch Emulator
|
||||
vlc #VLC Media Player
|
||||
lutris #Gaming Platform
|
||||
mission-center #For a Task Manager like GUI
|
||||
trayscale #Tailscale unofficial GUI
|
||||
spotify #Spotify Music Client
|
||||
rpi-imager #Raspberry Pi Imager
|
||||
atlauncher #Minecraft Launcher
|
||||
#discord
|
||||
vesktop #Aternative for discord on Wayland
|
||||
wineWowPackages.stagingFull
|
||||
winetricks
|
||||
wasistlos #Whatsapp
|
||||
#obs-studio #Screen Recorder
|
||||
gparted #Disk partition Manager
|
||||
#rustdesk #Remote Desktop Client
|
||||
realvnc-vnc-viewer #VNC Remote Desktop Client
|
||||
eddie #AirVPN desktop client
|
||||
chromium #Chromium browser for Youtube app to work
|
||||
moonlight-qt #Game Streaming Client
|
||||
kitty #Kitty Terminal Emulator
|
||||
wmctrl #To Force windows into fullscreen
|
||||
kdePackages.dolphin #KDE File Browser
|
||||
libreoffice-still #Office Suite
|
||||
kdePackages.kservice
|
||||
qbittorrent #Torrent Client
|
||||
waydroid #Android emulator on Linux
|
||||
gimp2-with-plugins #Image Editor
|
||||
kdePackages.filelight #Disk Usage Analyzer
|
||||
filezilla
|
||||
audacity
|
||||
freecad
|
||||
];
|
||||
}
|
||||
50
modules/packages/essentials.nix
Normal file
50
modules/packages/essentials.nix
Normal file
@ -0,0 +1,50 @@
|
||||
{config, pkgs, libs, inputs, system, alejandra, ...}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
#Essentials (CLI Only)
|
||||
wget #A tool for quickly downloading things from the Web
|
||||
javaPackages.compiler.openjdk25 #Java Development Kit 25
|
||||
python312 #Python 3.12
|
||||
python312Packages.pip #Pip for Python 3.12
|
||||
python312Packages.cmake #The CMake tool to manage project build configurations
|
||||
fastfetch #A utility to see information about your machine
|
||||
btop #A replacement for htop to see your machines resources
|
||||
git #Git ... no need to explain
|
||||
efibootmgr #A tool to manage UEFI boot entries
|
||||
zip #A utility for ZIP archives
|
||||
unzip #A utility for ZIP archives
|
||||
rar #A utility for RAR archives
|
||||
gnutar #A utility for .tar archives
|
||||
cron #A tool to set up commands to run scheduled
|
||||
tmux #A tool to let command windows contiune to run in the background
|
||||
home-manager #A package to also edit the user Configuration, like with nix
|
||||
konsave #A package to transfer the look and feel of KDE Plasma to other machines
|
||||
openssh #SSH
|
||||
zoxide #Alternatice to cd, browse files
|
||||
fzf-zsh #Search for file names
|
||||
coreutils-full #Full set of coreutils, including some missing ones
|
||||
multipath-tools
|
||||
docker #Docker ... no need to explain
|
||||
docker-compose #Docker Compose for docker
|
||||
plymouth #Boot Splash screen
|
||||
mesa #Graphics drivers
|
||||
fprintd #Fingerprint reader support
|
||||
nh
|
||||
whois #To find out domain information
|
||||
networkmanagerapplet #For managing network manager connections
|
||||
zoxide #Alternative to cd, browse files
|
||||
pocl #Portable OpenCL implementation
|
||||
clinfo #OpenCL info tool
|
||||
rocmPackages.rocm-runtime #AMD ROCm runtime
|
||||
ripgrep #Alternative to grep search for text in files
|
||||
pipewire #Multimedia handling
|
||||
distrobox
|
||||
dbus
|
||||
cifs-utils
|
||||
samba
|
||||
kdePackages.ksshaskpass
|
||||
ntfs3g
|
||||
appimage-run
|
||||
alejandra.defaultPackage.${system}
|
||||
];
|
||||
}
|
||||
20
modules/packages/flatpak.nix
Normal file
20
modules/packages/flatpak.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{config, pkgs, libs, inputs, nix-flatpak, ...}:
|
||||
{
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
|
||||
remotes = [
|
||||
{
|
||||
name = "flathub";
|
||||
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
}
|
||||
];
|
||||
packages = [
|
||||
{
|
||||
appId = "org.vinegarhq.Sober";
|
||||
origin = "flathub";
|
||||
#commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
{
|
||||
containers.portainer = {
|
||||
autoStart = true;
|
||||
privateNetwork = true;
|
||||
|
||||
config = { pkgs, ... }: {
|
||||
services.docker.enable = true;
|
||||
|
||||
systemd.services.portainer = {
|
||||
description = "Portainer Container Manager";
|
||||
after = [ "docker.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.docker}/bin/docker run \
|
||||
-d \
|
||||
--name portainer \
|
||||
-p 9000:9000 \
|
||||
-p 9443:9443 \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data \
|
||||
portainer/portainer-ce:latest
|
||||
'';
|
||||
ExecStop = "${pkgs.docker}/bin/docker stop portainer";
|
||||
Restart = "unless-stopped";
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 9000 9443 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{ pkgs, inputs, username, ... }:
|
||||
{
|
||||
|
||||
imports =
|
||||
@ -6,11 +6,16 @@
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../other/wallpaper2.png;
|
||||
autoEnable = false; #So I can choose my programs it targets myself!
|
||||
#image = ../../other/wallpaper2.png;
|
||||
#autoEnable = true; #Auto generate theme based on wallpaper
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-moon.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
|
||||
opacity = {
|
||||
desktop = 0.5;
|
||||
terminal = 0.9;
|
||||
@ -31,6 +36,12 @@
|
||||
name = "Noto Serif";
|
||||
};
|
||||
};
|
||||
targets.grub.enable = false;
|
||||
targets = {
|
||||
plymouth.enable = true;
|
||||
plymouth.logoAnimated = true;
|
||||
console.enable = true; #Default console without desktop environment! (NOT KITTY!)
|
||||
grub.enable = false;
|
||||
#qt.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
24
modules/stylix/home.nix
Normal file
24
modules/stylix/home.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{pkgs, inputs, username, ...}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
];
|
||||
|
||||
services = {
|
||||
};
|
||||
|
||||
stylix = {
|
||||
targets = {
|
||||
kitty.enable = false;
|
||||
#firefox = {
|
||||
# enable = true;
|
||||
# colorTheme.enable = true;
|
||||
# profileNames = [ "${username}" ];
|
||||
#};
|
||||
qt.enable = true;
|
||||
qt.platform = "kde";
|
||||
#kde.enable = false;
|
||||
zen-browser.profileNames = [ "${username}" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
153
modules/waybar/config.jsonc
Normal file
153
modules/waybar/config.jsonc
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
"custom/launcher",
|
||||
"hyprland/workspaces",
|
||||
"cpu",
|
||||
"memory"
|
||||
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window"
|
||||
],
|
||||
"spacing": 4,
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"wireplumber",
|
||||
"network",
|
||||
"backlight",
|
||||
"clock",
|
||||
"battery",
|
||||
"custom/power"
|
||||
],
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["", ""]
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"format": "{name}",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
}
|
||||
},
|
||||
"hyprland/window": {
|
||||
"icon": false,
|
||||
"separate-outputs": true,
|
||||
"format": "{}"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 7
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%H:%M} ",
|
||||
"format-alt": "{:%A, %B %d, %Y (%R)}",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode": "year",
|
||||
"mode-mon-col": 3,
|
||||
"weeks-pos": "right",
|
||||
"on-scroll": 1,
|
||||
"on-click-right": "mode",
|
||||
"format": {
|
||||
"months": "<span color='#f5e0dc'><b>{}</b></span>",
|
||||
"days": "<span color='#cdd6f4'><b>{}</b></span>",
|
||||
"weeks": "<span color='#fab387'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#f5c2e7'><b>{}</b></span>",
|
||||
"today": "<span color='#cba6f7'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
"on-click-forward": "tz_up",
|
||||
"on-click-backward": "tz_down",
|
||||
"on-scroll-up": "shift_up",
|
||||
"on-scroll-down": "shift_down"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": "CPU {usage:>2}% {icon0}{icon1}{icon2}{icon3}",
|
||||
"format-icons": [
|
||||
"▁",
|
||||
"▂",
|
||||
"▃",
|
||||
"▄",
|
||||
"▅",
|
||||
"▆",
|
||||
"▇",
|
||||
"█"
|
||||
],
|
||||
"on-click": "kitty -e btop"
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": "MEM {used:0.1f}G/{total:0.1f}G"
|
||||
},
|
||||
"network": {
|
||||
"format": " Disabled",
|
||||
"format-wifi": " ",
|
||||
"format-ethernet": " ",
|
||||
"format-disconnected": "⚠",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "{ifname}\n{ipaddr}",
|
||||
"tooltip-format-wifi": "{essid} {ifname}\n{ipaddr}\nstrength: {signalStrength}%",
|
||||
"on-click": "networkmanager_dmenu"
|
||||
},
|
||||
"custom/launcher": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"on-click": "wofi -c ~/.config/wofi/config -I"
|
||||
},
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"on-click": "~/.config/wofi/scripts/power.sh",
|
||||
"tooltip": false
|
||||
},
|
||||
"wireplumber": {
|
||||
"scroll-step": 10,
|
||||
"format": "{volume}% {icon} ",
|
||||
"format-bluetooth": "{icon} {volume}%",
|
||||
"format-muted": "muted ",
|
||||
"on-click": "pavucontrol",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"handsfree": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-pluged": " {capacity}%",
|
||||
"format-full": " {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
}
|
||||
5
modules/waybar/home.nix
Normal file
5
modules/waybar/home.nix
Normal file
@ -0,0 +1,5 @@
|
||||
{ ... }:
|
||||
{
|
||||
# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc;
|
||||
# xdg.configFile."waybar/style.css".source = ./style.css;
|
||||
}
|
||||
167
modules/waybar/style.css
Normal file
167
modules/waybar/style.css
Normal file
@ -0,0 +1,167 @@
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font", sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
window > box {
|
||||
margin-top: 0px;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 8px;
|
||||
margin: 0px 0;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background: rgba(12, 12, 12, 0);
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-center {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 4px 4px 4px 6px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
min-height: 0;
|
||||
padding: 0 7px;
|
||||
margin-right: 2px;
|
||||
color: #f5e0dc;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #f5e0dc;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: #89dceb;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #fab387;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: #202020;
|
||||
background-color: #dcf5f3;
|
||||
}
|
||||
}
|
||||
|
||||
#custom-launcher {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 4px;
|
||||
margin: 4px 0;
|
||||
color: #89dceb;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #f2cdcd;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #fab387;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 10px 10px 10px;
|
||||
margin: 4px 0;
|
||||
color: #94e2d5;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#network.disabled {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 12px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
@ -1,6 +1,11 @@
|
||||
{ config, pkgs, username, ... }: {
|
||||
{ config, pkgs, username, project, ... }: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = false;
|
||||
autosuggestions = {
|
||||
enable = true;
|
||||
highlightStyle = "fg=242"; # Lighter gray shadow (0-255 scale)
|
||||
};
|
||||
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
@ -8,12 +13,18 @@
|
||||
};
|
||||
|
||||
shellInit = ''
|
||||
source /home/${username}/NixOS/other/aliases
|
||||
source /home/${username}/${project}/other/aliases
|
||||
eval "$(${pkgs.zoxide}/bin/zoxide init zsh --cmd cd)"
|
||||
'';
|
||||
|
||||
#To reset powerlevel10k, write 'p10k configure' in shell!
|
||||
promptInit = ''
|
||||
source ${pkgs.zsh-autocomplete}/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh
|
||||
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
|
||||
|
||||
# Make ← and → move the cursor on the command line, even when in the menu
|
||||
bindkey -M menuselect '^[[D' .backward-char '^[OD' .backward-char
|
||||
bindkey -M menuselect '^[[C' .forward-char '^[OC' .forward-char
|
||||
'';
|
||||
};
|
||||
|
||||
@ -25,5 +36,6 @@
|
||||
pkgs.zsh-powerlevel10k
|
||||
pkgs.zsh-syntax-highlighting
|
||||
pkgs.zsh-autocomplete
|
||||
pkgs.zsh-autosuggestions
|
||||
];
|
||||
}
|
||||
|
||||
51
niri/autostart.nix
Normal file
51
niri/autostart.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ config, pkgs, username, project, ... }:
|
||||
{
|
||||
|
||||
#To show logs of services run:
|
||||
#journalctl --user-unit={service-name} --user
|
||||
systemd.user.services.niri-waybar = {
|
||||
description = "Waybar status bar for Niri";
|
||||
|
||||
# "wantedBy" replaces the [Install] section
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
|
||||
# "partOf" and "after" replace the [Unit] section dependencies
|
||||
partOf = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
|
||||
# [Unit] configuration goes here
|
||||
unitConfig = {
|
||||
# This checks the environment variable to ensure we are in Niri
|
||||
ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
|
||||
};
|
||||
|
||||
# [Service] configuration goes here
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.waybar}/bin/waybar";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
};
|
||||
};
|
||||
|
||||
# 2. The Niri Session Cleanup Service
|
||||
# This service starts when the graphical session starts, and when it stops,
|
||||
# it forcibly stops the graphical-session.target to ensure a clean state for the next login.
|
||||
systemd.user.services.niri-session-manager = {
|
||||
description = "Niri Session Management";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
|
||||
# Only run this cleanup logic for Niri
|
||||
unitConfig.ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
# A dummy command that stays alive. 'sleep infinity' is low resource.
|
||||
ExecStart = "${pkgs.coreutils}/bin/sleep infinity";
|
||||
|
||||
# IMPORTANT: When this service stops (which happens when niri kills its children),
|
||||
# it brings down the whole target.
|
||||
ExecStopPost = "${pkgs.systemd}/bin/systemctl --user stop graphical-session.target";
|
||||
};
|
||||
};
|
||||
}
|
||||
42
niri/default.nix
Normal file
42
niri/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./autostart.nix
|
||||
../modules/hyprlock
|
||||
../modules/hyprpaper
|
||||
../modules/stylix
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
#mako
|
||||
fuzzel
|
||||
waybar
|
||||
xwayland-satellite
|
||||
];
|
||||
|
||||
programs = {
|
||||
niri = {
|
||||
enable = true;
|
||||
};
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
|
||||
#services.xserver.enable = true;
|
||||
#services.xserver.displayManager.sddm.enable = true;
|
||||
|
||||
xdg.portal = { #Needed for waybar
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ];
|
||||
config.common.default = "*";
|
||||
};
|
||||
|
||||
#sound.enable = true;
|
||||
#security.rtkit.enable = true;
|
||||
|
||||
}
|
||||
448
niri/home.nix
448
niri/home.nix
@ -3,8 +3,14 @@
|
||||
|
||||
imports = [
|
||||
inputs.niri.homeModules.niri
|
||||
../modules/waybar/home.nix
|
||||
];
|
||||
|
||||
xdg.configFile."mako/config".text = ''
|
||||
default-timeout=5000
|
||||
ignore-timeout=1
|
||||
'';
|
||||
|
||||
programs.niri = {
|
||||
package = pkgs.niri;
|
||||
enable = true;
|
||||
@ -23,262 +29,50 @@
|
||||
# }
|
||||
# '';
|
||||
config = ''
|
||||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
// Check the wiki for a full description of the configuration:
|
||||
// https://yalter.github.io/niri/Configuration:-Introduction
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Input
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
// You can set rules, model, layout, variant and options.
|
||||
// For more information, see xkeyboard-config(7).
|
||||
|
||||
// For example:
|
||||
// layout "us,ru"
|
||||
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||
|
||||
// If this section is empty, niri will fetch xkb settings
|
||||
// from org.freedesktop.locale1. You can control these using
|
||||
// localectl set-x11-keymap.
|
||||
layout "de"
|
||||
}
|
||||
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
}
|
||||
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
prefer-no-csd
|
||||
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "on-button-down"
|
||||
// scroll-button 273
|
||||
// scroll-button-lock
|
||||
// middle-emulation
|
||||
}
|
||||
|
||||
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||
// warp-mouse-to-focus
|
||||
|
||||
// Focus windows and outputs automatically when moving the mouse into them.
|
||||
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||
// focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
/-output "eDP-1" {
|
||||
// Uncomment this line to disable this output.
|
||||
// off
|
||||
|
||||
// Resolution and, optionally, refresh rate of the output.
|
||||
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||
// for the resolution.
|
||||
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||
mode "1920x1080@120.030"
|
||||
|
||||
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||
scale 2
|
||||
|
||||
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||
transform "normal"
|
||||
|
||||
// Position of the output in the global coordinate space.
|
||||
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||
// The cursor can only move between directly adjacent outputs.
|
||||
// Output scale and rotation has to be taken into account for positioning:
|
||||
// outputs are sized in logical, or scaled, pixels.
|
||||
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||
// If the position is unset or results in an overlap, the output is instead placed
|
||||
// automatically.
|
||||
position x=1280 y=0
|
||||
}
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
gaps 16
|
||||
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
gaps 10
|
||||
center-focused-column "never"
|
||||
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.5; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
// Uncomment this line to disable the focus ring.
|
||||
// off
|
||||
|
||||
// How many logical pixels the ring extends out from the windows.
|
||||
width 4
|
||||
width 2
|
||||
|
||||
// Colors can be set in a variety of ways:
|
||||
// - CSS named colors: "red"
|
||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||
|
||||
// Color of the ring on the active monitor.
|
||||
active-color "#7fc8ff"
|
||||
|
||||
// Color of the ring on inactive monitors.
|
||||
//
|
||||
// The focus ring only draws around the active window, so the only place
|
||||
// where you can see its inactive-color is on other monitors.
|
||||
inactive-color "#505050"
|
||||
|
||||
// You can also use gradients. They take precedence over solid colors.
|
||||
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||
// The angle is the same as in linear-gradient, and is optional,
|
||||
// defaulting to 180 (top-to-bottom gradient).
|
||||
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||
// Changing the color space is also supported, check the wiki for more info.
|
||||
//
|
||||
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||
|
||||
// You can also color the gradient relative to the entire view
|
||||
// of the workspace, rather than relative to just the window itself.
|
||||
// To do that, set relative-to="workspace-view".
|
||||
//
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||
border {
|
||||
// The settings are the same as for the focus ring.
|
||||
// If you enable the border, you probably want to disable the focus ring.
|
||||
off
|
||||
|
||||
width 4
|
||||
width 2
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
|
||||
// Color of the border around windows that request your attention.
|
||||
urgent-color "#9b0000"
|
||||
|
||||
// Gradients can use a few different interpolation color spaces.
|
||||
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||
//
|
||||
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can enable drop shadows for windows.
|
||||
shadow {
|
||||
// Uncomment the next line to enable shadows.
|
||||
// on
|
||||
|
||||
// By default, the shadow draws only around its window, and not behind it.
|
||||
// Uncomment this setting to make the shadow draw behind its window.
|
||||
//
|
||||
// Note that niri has no way of knowing about the CSD window corner
|
||||
// radius. It has to assume that windows have square corners, leading to
|
||||
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||
// those artifacts.
|
||||
//
|
||||
// However, instead you may want to set prefer-no-csd and/or
|
||||
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||
// draw the shadow correctly, without having to draw it behind the
|
||||
// window. These will also remove client-side shadows if the window
|
||||
// draws any.
|
||||
//
|
||||
// draw-behind-window true
|
||||
|
||||
// You can change how shadows look. The values below are in logical
|
||||
// pixels and match the CSS box-shadow properties.
|
||||
|
||||
// Softness controls the shadow blur radius.
|
||||
softness 30
|
||||
|
||||
// Spread expands the shadow.
|
||||
spread 5
|
||||
|
||||
// Offset moves the shadow relative to the window.
|
||||
offset x=0 y=5
|
||||
|
||||
// You can also change the shadow color and opacity.
|
||||
color "#0007"
|
||||
}
|
||||
|
||||
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||
// Left and right struts will cause the next window to the side to always be visible.
|
||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||
// layer-shell panels and regular gaps.
|
||||
struts {
|
||||
// left 64
|
||||
// right 64
|
||||
@ -287,140 +81,53 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Add lines like this to spawn processes at startup.
|
||||
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||
// which may be more convenient to use.
|
||||
// See the binds section below for more spawn examples.
|
||||
// spawn-at-startup "waybar"
|
||||
spawn-at-startup "hyprpaper"
|
||||
spawn-at-startup "${pkgs.mako}/bin/mako"
|
||||
|
||||
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||
spawn-at-startup "waybar"
|
||||
|
||||
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||
|
||||
hotkey-overlay {
|
||||
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||
// skip-at-startup
|
||||
skip-at-startup
|
||||
}
|
||||
|
||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||
// If the client will specifically ask for CSD, the request will be honored.
|
||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||
// prefer-no-csd
|
||||
|
||||
// You can change the path where screenshots are saved.
|
||||
// A ~ at the front will be expanded to the home directory.
|
||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
// You can also set this to null to disable saving screenshots to disk.
|
||||
// screenshot-path null
|
||||
|
||||
// Animation settings.
|
||||
// The wiki explains how to configure individual animations:
|
||||
// https://yalter.github.io/niri/Configuration:-Animations
|
||||
animations {
|
||||
// Uncomment to turn off all animations.
|
||||
// off
|
||||
|
||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||
// slowdown 3.0
|
||||
}
|
||||
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Window-Rules
|
||||
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
// Open the Firefox picture-in-picture player as floating by default.
|
||||
window-rule {
|
||||
// This app-id regular expression will work for both:
|
||||
// - host Firefox (app-id is "firefox")
|
||||
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
// Example: block out two password managers from screen capture.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
|
||||
block-out-from "screen-capture"
|
||||
|
||||
// Use this instead if you want them visible on third-party screenshot tools.
|
||||
// block-out-from "screencast"
|
||||
}
|
||||
|
||||
// Example: enable rounded corners for all windows.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
output "eDP-1" {
|
||||
mode "2880x1920@120.000"
|
||||
scale 2
|
||||
// Optional: position x=0 y=0
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
// like wev.
|
||||
//
|
||||
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
// when running as a winit window.
|
||||
//
|
||||
// Most actions that you can bind here can also be invoked programmatically with
|
||||
// `niri msg action do-something`.
|
||||
Mod+Shift+Minus { show-hotkey-overlay; }
|
||||
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+T hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||
Super+Alt+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyrplock"; }
|
||||
Super+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyprlock"; }
|
||||
|
||||
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
|
||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||
// "-l 1.0" limits the volume to 100%.
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
|
||||
// Example media keys mapping using playerctl.
|
||||
// This will work with any MPRIS-enabled media player.
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
|
||||
// Example brightness key mappings for brightnessctl.
|
||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||
// but you need to manually put each argument in separate "" quotes.
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
|
||||
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||
// You can also move the mouse into the top-left hot corner,
|
||||
// or do a four-finger swipe up on a touchpad.
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
|
||||
Mod+Q repeat=false { close-window; }
|
||||
@ -443,21 +150,14 @@
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
|
||||
// Alternative commands that move across workspaces when reaching
|
||||
// the first or last window in a column.
|
||||
// Mod+J { focus-window-or-workspace-down; }
|
||||
// Mod+K { focus-window-or-workspace-up; }
|
||||
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Shift+Left { focus-monitor-left; }
|
||||
Mod+Shift+Down { focus-monitor-down; }
|
||||
Mod+Shift+Up { focus-monitor-up; }
|
||||
Mod+Shift+Down { move-window-down-or-to-workspace-down; }
|
||||
Mod+Shift+Up { move-window-up-or-to-workspace-up; }
|
||||
Mod+Shift+Right { focus-monitor-right; }
|
||||
Mod+Shift+H { focus-monitor-left; }
|
||||
Mod+Shift+J { focus-monitor-down; }
|
||||
@ -473,14 +173,6 @@
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
// And you can also move a whole workspace to another monitor:
|
||||
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
@ -490,21 +182,12 @@
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
// ...
|
||||
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
|
||||
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||
// These binds will change direction based on the natural-scroll setting.
|
||||
//
|
||||
// To avoid scrolling through workspaces really fast, you can use
|
||||
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
@ -515,30 +198,11 @@
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
|
||||
// Usually scrolling up and down with Shift in applications results in
|
||||
// horizontal scrolling; these binds replicate that.
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
// Similarly, you can bind touchpad scroll "ticks".
|
||||
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||
// discrete intervals.
|
||||
// These binds are also affected by touchpad's natural-scroll, so these
|
||||
// example binds are "inverted", since we have natural-scroll enabled for
|
||||
// touchpads by default.
|
||||
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||
|
||||
// You can refer to workspaces by index. However, keep in mind that
|
||||
// niri is a dynamic workspace system, so these commands are kind of
|
||||
// "best effort". Trying to refer to a workspace index bigger than
|
||||
// the current workspace count will instead refer to the bottommost
|
||||
// (empty) workspace.
|
||||
//
|
||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
// will all refer to the 3rd workspace.
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
@ -558,17 +222,8 @@
|
||||
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
// Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
// The following binds move the focused window in and out of a column.
|
||||
// If the window is alone, they will consume it into the nearby column to the side.
|
||||
// If the window is already in a column, they will expel it out.
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
Mod+udiaeresis { consume-or-expel-window-left; }
|
||||
Mod+plus { consume-or-expel-window-right; }
|
||||
|
||||
// Consume one window from the right to the bottom of the focused column.
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
@ -576,74 +231,37 @@
|
||||
Mod+Period { expel-window-from-column; }
|
||||
|
||||
Mod+R { switch-preset-column-width; }
|
||||
// Cycling through the presets in reverse order is also possible.
|
||||
// Mod+R { switch-preset-column-width-back; }
|
||||
Mod+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
|
||||
// Expand the focused column to space not taken up by other fully visible columns.
|
||||
// Makes the column "fill the rest of the space".
|
||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||
|
||||
Mod+C { center-column; }
|
||||
|
||||
// Center all fully visible columns on screen.
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
|
||||
// Finer width adjustments.
|
||||
// This command can also:
|
||||
// * set width in pixels: "1000"
|
||||
// * adjust width in pixels: "-5" or "+5"
|
||||
// * set width as a percentage of screen width: "25%"
|
||||
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+ssharp { set-column-width "-10%"; }
|
||||
Mod+dead_acute { set-column-width "+10%"; }
|
||||
|
||||
// Finer height adjustments when in column with other windows.
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
Mod+Shift+ssharp { set-window-height "-10%"; }
|
||||
Mod+Shift+dead_acute { set-window-height "+10%"; }
|
||||
|
||||
// Move the focused window between the floating and the tiling layout.
|
||||
Mod+V { toggle-window-floating; }
|
||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
// Toggle tabbed column display mode.
|
||||
// Windows in this column will appear as vertical tabs,
|
||||
// rather than stacked on top of each other.
|
||||
Mod+W { toggle-column-tabbed-display; }
|
||||
|
||||
// Actions to switch layouts.
|
||||
// Note: if you uncomment these, make sure you do NOT have
|
||||
// a matching layout switch hotkey configured in xkb options above.
|
||||
// Having both at once on the same hotkey will break the switching,
|
||||
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
// Mod+Space { switch-layout "next"; }
|
||||
// Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
// Applications such as remote-desktop clients and software KVM switches may
|
||||
// request that niri stops processing the keyboard shortcuts defined here
|
||||
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||
// so a buggy application can't hold your session hostage.
|
||||
//
|
||||
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||
// which ensures niri always processes them, even when an inhibitor is active.
|
||||
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
|
||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
Mod+Shift+E { quit; }
|
||||
Ctrl+Alt+Delete { quit; }
|
||||
|
||||
// Powers off the monitors. To turn them back on, do any input like
|
||||
// moving the mouse or pressing any other key.
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
'';
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
# ./autostart.nix
|
||||
../modules/noctalia
|
||||
../modules/hyprlock
|
||||
../modules/hyprpaper
|
||||
../modules/stylix.nix
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
mako
|
||||
waybar
|
||||
fuzzel
|
||||
];
|
||||
|
||||
# programs = {
|
||||
# niri = {
|
||||
# enable = true;
|
||||
# };
|
||||
# };
|
||||
|
||||
|
||||
#services.xserver.enable = true;
|
||||
#services.xserver.displayManager.sddm.enable = true;
|
||||
|
||||
# xdg.portal = {
|
||||
# enable = true;
|
||||
# extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
# };
|
||||
|
||||
#sound.enable = true;
|
||||
#security.rtkit.enable = true;
|
||||
#services.pipewire = {
|
||||
# enable = true;
|
||||
# alsa.enable = true;
|
||||
# #alsa.support3Bbit = true;
|
||||
# pulse.enable = true;
|
||||
# jack.enable = true;
|
||||
#};
|
||||
}
|
||||
@ -1,7 +1,5 @@
|
||||
#Variables
|
||||
|
||||
|
||||
|
||||
#----------
|
||||
# Commands that will be used as aliases for zsh and bash
|
||||
#----------
|
||||
@ -9,7 +7,6 @@
|
||||
# Common commands
|
||||
#-----
|
||||
alias py="python3"
|
||||
#alias mcrow="sudo micro"
|
||||
alias mcrow="echo 'you better try to use nvim you little shit! :3'"
|
||||
alias srcals="source $HOME/NixOS/other/aliases && echo 'Sourced Aliases ... successful!'"
|
||||
alias please="sudo"
|
||||
@ -22,36 +19,13 @@ alias neofetch="fastfetch"
|
||||
|
||||
# Nix Specific commands
|
||||
#-----
|
||||
#alias nix-upd="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||
#alias nix-update="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||
#alias nix-edit="sudoedit /etc/nixos/configuration.nix"
|
||||
#alias nix-packages="sudoedit /etc/nixos/packages.nix"
|
||||
#alias nix-pkgs="sudoedit /etc/nixos/packages.nix"
|
||||
#alias nix-flake="sudoedit /etc/nixos/flake.nix"
|
||||
#alias nix-edit-flake="sudoedit /etc/nixos/flake.nix"
|
||||
#alias nix-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||
#alias nix-edit-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||
#alias nix-aliases="sudoedit /etc/nixos/other/aliases"
|
||||
#alias nix-edit-aliases="sudoedit /etc/nixos/other/aliases"
|
||||
#alias nix-regenerate-config="sudo nixos-generate-config"
|
||||
#alias nix-home="sudoedit /etc/nixos/home.nix"
|
||||
alias nix-gc="sudo nix-store --gc"
|
||||
alias nix-clean="sudo nix-store --gc"
|
||||
alias nix-clear="sudo nix-store --gc"
|
||||
|
||||
#alias home-edit="sudoedit /etc/nixos/home.nix"
|
||||
|
||||
#alias cd-nix="cd /etc/nixos/"
|
||||
|
||||
#KDE Plasma Specific
|
||||
#-----
|
||||
alias kde-theme-apply="source $HOME/NixOS/plasma/konsave.sh"
|
||||
|
||||
#Hyprland Specific
|
||||
#-----
|
||||
alias exit-hyprland="hyprctl dispatch exit"
|
||||
alias hyprland-exit="hyprctl dispatch exit"
|
||||
alias hypr-edit="sudoedit $HOME/NixOS/hyprland/hyprland.conf"
|
||||
|
||||
#LaTeX Commands
|
||||
alias makepdf="makeglossaries main && pdflatex main.tex"
|
||||
|
||||
BIN
other/discord.app.png
Normal file
BIN
other/discord.app.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.9 MiB |
BIN
other/wallpaper1.png
Normal file
BIN
other/wallpaper1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
BIN
other/wallpaper3.png
Normal file
BIN
other/wallpaper3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 MiB |
BIN
other/wallpaper4.png
Normal file
BIN
other/wallpaper4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 MiB |
Binary file not shown.
@ -1,22 +1,8 @@
|
||||
{ config, pkgs, username, ... }:
|
||||
{ config, pkgs, username, project, ... }:
|
||||
{
|
||||
|
||||
#To show logs of services run: journalctl --user-unit={service-name} --user
|
||||
|
||||
systemd.user.services.set-wallpaper = {
|
||||
enable = true;
|
||||
description = "Set KDE Plasma wallpaper";
|
||||
#after = [ "plasma-desktop.service" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = [ "/run/current-system/sw/bin/plasma-apply-wallpaperimage /home/${username}/NixOS/other/wallpaper2.png" ];
|
||||
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.autostart-yakuake = {
|
||||
enable = true;
|
||||
description = "Automatically start Yakuake";
|
||||
@ -32,23 +18,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.theme-set-reminder = {
|
||||
enable = true;
|
||||
description = "Remind the user to apply the custom Plasma Theme shipped with this NixOS";
|
||||
after = [ "graphical-session.target" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
# ExecStart = [ "${pkgs.kdePackages.kdialog}/bin/kdialog --passivepopup \"Dont forget to apply custom system theme! (run kde-theme-apply in terminal)\"" ];
|
||||
ExecStart = [ "/etc/nixos/plasma/theme-popup.sh" ];
|
||||
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
# Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/$USER/bin";
|
||||
# Environment = "DISPLAY=:0";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.autostart-trayscale = {
|
||||
enable = true;
|
||||
description = "Automatically start Trayscale";
|
||||
|
||||
98
plasma/default.nix
Normal file
98
plasma/default.nix
Normal file
@ -0,0 +1,98 @@
|
||||
{config, pkgs, username, project, ...}:
|
||||
let
|
||||
# Define the custom background package with the correct relative path
|
||||
background-package = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "background-image";
|
||||
src = ../other/wallpaper4.png; # Place wallpaper.jpg in the same directory as this config file
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
cp $src $out
|
||||
'';
|
||||
};
|
||||
|
||||
plasmaTheme = "desktop"; #Possible values are "laptop" or "desktop"
|
||||
powerProfile = "laptop"; #Possible values are "laptop" or "desktop"
|
||||
in
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./autostart.nix
|
||||
../modules/stylix
|
||||
];
|
||||
|
||||
# Pass the variable to home-manager
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit plasmaTheme powerProfile;
|
||||
};
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
systemd.services = {
|
||||
"plasma-workspace".serviceConfig.KillMode = "mixed";
|
||||
"plasma-workspace".serviceConfig.TimeoutStopSec = "5s";
|
||||
"sddm".serviceConfig.KillMode = "mixed";
|
||||
};
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "amdgpu" ];
|
||||
|
||||
xkb = {
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
desktopManager = {
|
||||
#gnome.enable = true;
|
||||
xterm.enable = false;
|
||||
};
|
||||
|
||||
excludePackages = [ pkgs.xterm ];
|
||||
## Enable sound with pipewire.
|
||||
#services.pulseaudio.enable = false;
|
||||
};
|
||||
|
||||
displayManager = {
|
||||
sddm = {
|
||||
enable = true;
|
||||
theme = "breeze";
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
|
||||
system.activationScripts.script.text = ''
|
||||
source /home/${username}/${project}/other/colors.sh
|
||||
source /home/${username}/${project}/other/pfp.sh
|
||||
'';
|
||||
|
||||
environment = {
|
||||
|
||||
plasma6.excludePackages = with pkgs; [
|
||||
kdePackages.elisa
|
||||
];
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
(pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
|
||||
[General]
|
||||
background = "${background-package}"
|
||||
'') #Custom SDDM theme with background image
|
||||
kdePackages.plymouth-kcm
|
||||
xdg-desktop-portal
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
kdePackages.plasma-workspace
|
||||
kdePackages.kdialog
|
||||
kdePackages.yakuake #Drop down Terminal
|
||||
kdePackages.bluez-qt #Bluetooth management for KDE Plasma
|
||||
kdePackages.kconfig #To Get infos about the current config, such as themes
|
||||
];
|
||||
};
|
||||
}
|
||||
495
plasma/home.nix
495
plasma/home.nix
@ -1,493 +1,10 @@
|
||||
{pkgs, inputs, username, ...}:
|
||||
{pkgs, lib, inputs, username, project, plasmaTheme, ...}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
];
|
||||
|
||||
programs = {
|
||||
plasma = {
|
||||
enable = false;
|
||||
overrideConfig = true;
|
||||
|
||||
panels = [
|
||||
{
|
||||
height = 44;
|
||||
location = "top";
|
||||
alignment = "center";
|
||||
floating = true;
|
||||
opacity = "translucent";
|
||||
widgets = [
|
||||
"org.kde.plasma.kickoff"
|
||||
"org.kde.plasma.pager"
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.plasma.systemmonitor.cpu"
|
||||
"org.kde.plasma.systemtray"
|
||||
"org.kde.plasma.digitalclock"
|
||||
];
|
||||
}
|
||||
{
|
||||
height = 60;
|
||||
location = "bottom";
|
||||
alignment = "center";
|
||||
lengthMode = "fit";
|
||||
floating = true;
|
||||
opacity = "translucent";
|
||||
hiding = "dodgewindows";
|
||||
widgets = [
|
||||
{
|
||||
name = "org.kde.plasma.icontasks";
|
||||
config = {
|
||||
General = {
|
||||
launchers = [
|
||||
# optional pinned apps
|
||||
"kitty.desktop"
|
||||
"firefox.desktop"
|
||||
"org.kde.dolphin.desktop"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
powerdevil = {
|
||||
# On AC power (plugged in): Minimal power saving
|
||||
AC = {
|
||||
powerProfile = "performance";
|
||||
#turnOffDisplay.idleTimeout = 900; # 15 min idle
|
||||
autoSuspend = {
|
||||
action = "nothing";
|
||||
};
|
||||
dimDisplay.enable = false;
|
||||
turnOffDisplay.idleTimeout = "never";
|
||||
};
|
||||
|
||||
# Normal battery: Balanced saving
|
||||
battery = {
|
||||
powerProfile = "balanced";
|
||||
#turnOffDisplay.idleTimeout = 300; # 5 min
|
||||
autoSuspend = {
|
||||
action = "nothing";
|
||||
};
|
||||
whenLaptopLidClosed = "sleep";
|
||||
dimDisplay.enable = false;
|
||||
turnOffDisplay.idleTimeout = "never";
|
||||
};
|
||||
|
||||
# Low battery (e.g., <10%): Critical actions
|
||||
lowBattery = {
|
||||
powerProfile = "powerSaving";
|
||||
autoSuspend = {
|
||||
action = "sleep";
|
||||
idleTimeout = 300; # 5 min idle
|
||||
};
|
||||
whenLaptopLidClosed = "shutDown";
|
||||
dimDisplay = {
|
||||
idleTimeout = 60;
|
||||
};
|
||||
displayBrightness = 30; #Go to 30% display Brightness
|
||||
turnOffDisplay.idleTimeout = 120;
|
||||
};
|
||||
|
||||
# Thresholds for "lowBattery" state
|
||||
batteryLevels = {
|
||||
lowLevel = 10;
|
||||
criticalLevel = 5;
|
||||
criticalAction = "sleep";
|
||||
};
|
||||
};
|
||||
|
||||
workspace = {
|
||||
theme = "WhiteSur-dark";
|
||||
colorScheme = "BreezeDark";
|
||||
cursor = {
|
||||
theme = "Breeze_Light";
|
||||
size = 24;
|
||||
};
|
||||
wallpaper = /home/${username}/NixOS/other/wallpaper2.png;
|
||||
soundTheme = "freedesktop";
|
||||
iconTheme = "Breeze-LaCapitaine-apps";
|
||||
splashScreen = {
|
||||
theme = "a2n.kuro";
|
||||
};
|
||||
windowDecorations = {
|
||||
library = "org.kde.kwin.aurorae";
|
||||
theme = "__aurorae__svg__Nordic";
|
||||
};
|
||||
};
|
||||
|
||||
shortcuts = {
|
||||
# ActivityManager.switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ];
|
||||
# ActivityManager.switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ];
|
||||
# ActivityManager.switch-to-activity-e85f493f-046d-4dca-9e07-987ecd4ca4bc = [ ];
|
||||
# "KDE Keyboard Layout Switcher"."Switch keyboard layout to English (US)" = [ ];
|
||||
# "KDE Keyboard Layout Switcher"."Switch keyboard layout to German" = [ ];
|
||||
# "KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = [ ];
|
||||
# "KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = [ ];
|
||||
# kaccess."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
# kcm_touchpad."Disable Touchpad" = "Touchpad Off";
|
||||
# kcm_touchpad."Enable Touchpad" = "Touchpad On";
|
||||
# kcm_touchpad."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||
# kmix.decrease_microphone_volume = "Microphone Volume Down";
|
||||
# kmix.decrease_volume = "Volume Down";
|
||||
# kmix.decrease_volume_small = "Shift+Volume Down";
|
||||
# kmix.increase_microphone_volume = "Microphone Volume Up";
|
||||
# kmix.increase_volume = "Volume Up";
|
||||
# kmix.increase_volume_small = "Shift+Volume Up";
|
||||
# kmix.mic_mute = ["Microphone Mute" "Meta+Volume Mute"];
|
||||
# kmix.mute = "Volume Mute";
|
||||
# ksmserver."Halt Without Confirmation" = [ ];
|
||||
# ksmserver."Lock Session" = ["Meta+L" "Screensaver"];
|
||||
# ksmserver."Log Out" = "Ctrl+Alt+Del";
|
||||
# ksmserver."Log Out Without Confirmation" = [ ];
|
||||
# ksmserver.LogOut = [ ];
|
||||
# ksmserver.Reboot = [ ];
|
||||
# ksmserver."Reboot Without Confirmation" = [ ];
|
||||
# ksmserver."Shut Down" = [ ];
|
||||
# kwin."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
kwin.Cube = "Meta+C";
|
||||
# kwin."Cycle Overview" = [ ];
|
||||
# kwin."Cycle Overview Opposite" = [ ];
|
||||
# kwin."Decrease Opacity" = [ ];
|
||||
# kwin."Edit Tiles" = "Meta+T";
|
||||
# kwin.Expose = "Ctrl+F9";
|
||||
# kwin.ExposeAll = ["Ctrl+F10" "Launch (C)"];
|
||||
# kwin.ExposeClass = "Ctrl+F7";
|
||||
# kwin.ExposeClassCurrentDesktop = [ ];
|
||||
kwin."Grid View" = "Meta+G";
|
||||
# kwin."Increase Opacity" = [ ];
|
||||
# kwin."Kill Window" = "Meta+Ctrl+Esc";
|
||||
# kwin."Move Tablet to Next Output" = [ ];
|
||||
# kwin.MoveMouseToCenter = "Meta+F6";
|
||||
# kwin.MoveMouseToFocus = "Meta+F5";
|
||||
# kwin.MoveZoomDown = [ ];
|
||||
# kwin.MoveZoomLeft = [ ];
|
||||
# kwin.MoveZoomRight = [ ];
|
||||
# kwin.MoveZoomUp = [ ];
|
||||
# kwin.Overview = "Meta+W";
|
||||
# kwin."Setup Window Shortcut" = [ ];
|
||||
# kwin."Show Desktop" = "Meta+D";
|
||||
# kwin."Suspend Compositing" = "Alt+Shift+F12";
|
||||
kwin."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
kwin."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
kwin."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
kwin."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
# kwin."Switch Window Down" = "Meta+Alt+Down";
|
||||
# kwin."Switch Window Left" = "Meta+Alt+Left";
|
||||
# kwin."Switch Window Right" = "Meta+Alt+Right";
|
||||
# kwin."Switch Window Up" = "Meta+Alt+Up";
|
||||
# kwin."Switch to Desktop 1" = "Ctrl+F1";
|
||||
# kwin."Switch to Desktop 10" = [ ];
|
||||
# kwin."Switch to Desktop 11" = [ ];
|
||||
# kwin."Switch to Desktop 12" = [ ];
|
||||
# kwin."Switch to Desktop 13" = [ ];
|
||||
# kwin."Switch to Desktop 14" = [ ];
|
||||
# kwin."Switch to Desktop 15" = [ ];
|
||||
# kwin."Switch to Desktop 16" = [ ];
|
||||
# kwin."Switch to Desktop 17" = [ ];
|
||||
# kwin."Switch to Desktop 18" = [ ];
|
||||
# kwin."Switch to Desktop 19" = [ ];
|
||||
# kwin."Switch to Desktop 2" = "Ctrl+F2";
|
||||
# kwin."Switch to Desktop 20" = [ ];
|
||||
# kwin."Switch to Desktop 3" = "Ctrl+F3";
|
||||
# kwin."Switch to Desktop 4" = "Ctrl+F4";
|
||||
# kwin."Switch to Desktop 5" = [ ];
|
||||
# kwin."Switch to Desktop 6" = [ ];
|
||||
# kwin."Switch to Desktop 7" = [ ];
|
||||
# kwin."Switch to Desktop 8" = [ ];
|
||||
# kwin."Switch to Desktop 9" = [ ];
|
||||
# kwin."Switch to Next Desktop" = [ ];
|
||||
# kwin."Switch to Next Screen" = [ ];
|
||||
# kwin."Switch to Previous Desktop" = [ ];
|
||||
# kwin."Switch to Previous Screen" = [ ];
|
||||
# kwin."Switch to Screen 0" = [ ];
|
||||
# kwin."Switch to Screen 1" = [ ];
|
||||
# kwin."Switch to Screen 2" = [ ];
|
||||
# kwin."Switch to Screen 3" = [ ];
|
||||
# kwin."Switch to Screen 4" = [ ];
|
||||
# kwin."Switch to Screen 5" = [ ];
|
||||
# kwin."Switch to Screen 6" = [ ];
|
||||
# kwin."Switch to Screen 7" = [ ];
|
||||
# kwin."Switch to Screen Above" = [ ];
|
||||
# kwin."Switch to Screen Below" = [ ];
|
||||
# kwin."Switch to Screen to the Left" = [ ];
|
||||
# kwin."Switch to Screen to the Right" = [ ];
|
||||
# kwin."Toggle Night Color" = [ ];
|
||||
# kwin."Toggle Window Raise/Lower" = [ ];
|
||||
# kwin."Walk Through Windows" = "Alt+Tab";
|
||||
# kwin."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
# kwin."Walk Through Windows Alternative" = [ ];
|
||||
# kwin."Walk Through Windows Alternative (Reverse)" = [ ];
|
||||
# kwin."Walk Through Windows of Current Application" = "Alt+`";
|
||||
# kwin."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||
# kwin."Walk Through Windows of Current Application Alternative" = [ ];
|
||||
# kwin."Walk Through Windows of Current Application Alternative (Reverse)" = [ ];
|
||||
# kwin."Window Above Other Windows" = [ ];
|
||||
# kwin."Window Below Other Windows" = [ ];
|
||||
kwin."Window Close" = "Alt+F4";
|
||||
# kwin."Window Custom Quick Tile Bottom" = [ ];
|
||||
# kwin."Window Custom Quick Tile Left" = [ ];
|
||||
# kwin."Window Custom Quick Tile Right" = [ ];
|
||||
# kwin."Window Custom Quick Tile Top" = [ ];
|
||||
kwin."Window Fullscreen" = "Meta+Shift+F";
|
||||
# kwin."Window Grow Horizontal" = [ ];
|
||||
# kwin."Window Grow Vertical" = [ ];
|
||||
# kwin."Window Lower" = [ ];
|
||||
kwin."Window Maximize" = ["Meta+F" "Meta+PgUp"];
|
||||
# kwin."Window Maximize Horizontal" = [ ];
|
||||
# kwin."Window Maximize Vertical" = [ ];
|
||||
# kwin."Window Minimize" = "Meta+PgDown";
|
||||
# kwin."Window Move" = [ ];
|
||||
# kwin."Window Move Center" = [ ];
|
||||
# kwin."Window No Border" = [ ];
|
||||
# kwin."Window On All Desktops" = [ ];
|
||||
kwin."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
kwin."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
kwin."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
kwin."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
# kwin."Window One Screen Down" = [ ];
|
||||
# kwin."Window One Screen Up" = [ ];
|
||||
# kwin."Window One Screen to the Left" = [ ];
|
||||
# kwin."Window One Screen to the Right" = [ ];
|
||||
# kwin."Window Operations Menu" = "Alt+F3";
|
||||
# kwin."Window Pack Down" = [ ];
|
||||
# kwin."Window Pack Left" = [ ];
|
||||
# kwin."Window Pack Right" = [ ];
|
||||
# kwin."Window Pack Up" = [ ];
|
||||
# kwin."Window Quick Tile Bottom" = "Meta+Down";
|
||||
# kwin."Window Quick Tile Bottom Left" = [ ];
|
||||
# kwin."Window Quick Tile Bottom Right" = [ ];
|
||||
# kwin."Window Quick Tile Left" = "Meta+Left";
|
||||
# kwin."Window Quick Tile Right" = "Meta+Right";
|
||||
# kwin."Window Quick Tile Top" = "Meta+Up";
|
||||
# kwin."Window Quick Tile Top Left" = [ ];
|
||||
# kwin."Window Quick Tile Top Right" = [ ];
|
||||
# kwin."Window Raise" = [ ];
|
||||
# kwin."Window Resize" = [ ];
|
||||
# kwin."Window Shade" = [ ];
|
||||
# kwin."Window Shrink Horizontal" = [ ];
|
||||
# kwin."Window Shrink Vertical" = [ ];
|
||||
# kwin."Window to Desktop 1" = [ ];
|
||||
# kwin."Window to Desktop 10" = [ ];
|
||||
# kwin."Window to Desktop 11" = [ ];
|
||||
# kwin."Window to Desktop 12" = [ ];
|
||||
# kwin."Window to Desktop 13" = [ ];
|
||||
# kwin."Window to Desktop 14" = [ ];
|
||||
# kwin."Window to Desktop 15" = [ ];
|
||||
# kwin."Window to Desktop 16" = [ ];
|
||||
# kwin."Window to Desktop 17" = [ ];
|
||||
# kwin."Window to Desktop 18" = [ ];
|
||||
# kwin."Window to Desktop 19" = [ ];
|
||||
# kwin."Window to Desktop 2" = [ ];
|
||||
# kwin."Window to Desktop 20" = [ ];
|
||||
# kwin."Window to Desktop 3" = [ ];
|
||||
# kwin."Window to Desktop 4" = [ ];
|
||||
# kwin."Window to Desktop 5" = [ ];
|
||||
# kwin."Window to Desktop 6" = [ ];
|
||||
# kwin."Window to Desktop 7" = [ ];
|
||||
# kwin."Window to Desktop 8" = [ ];
|
||||
# kwin."Window to Desktop 9" = [ ];
|
||||
# kwin."Window to Next Desktop" = [ ];
|
||||
# kwin."Window to Next Screen" = "Meta+Shift+Right";
|
||||
# kwin."Window to Previous Desktop" = [ ];
|
||||
# kwin."Window to Previous Screen" = "Meta+Shift+Left";
|
||||
# kwin."Window to Screen 0" = [ ];
|
||||
# kwin."Window to Screen 1" = [ ];
|
||||
# kwin."Window to Screen 2" = [ ];
|
||||
# kwin."Window to Screen 3" = [ ];
|
||||
# kwin."Window to Screen 4" = [ ];
|
||||
# kwin."Window to Screen 5" = [ ];
|
||||
# kwin."Window to Screen 6" = [ ];
|
||||
# kwin."Window to Screen 7" = [ ];
|
||||
# kwin.disableInputCapture = "Meta+Shift+Esc";
|
||||
# kwin.view_actual_size = "Meta+0";
|
||||
# kwin.view_zoom_in = ["Meta++" "Meta+="];
|
||||
# kwin.view_zoom_out = "Meta+-";
|
||||
# mediacontrol.mediavolumedown = [ ];
|
||||
# mediacontrol.mediavolumeup = [ ];
|
||||
# mediacontrol.nextmedia = "Media Next";
|
||||
# mediacontrol.pausemedia = "Media Pause";
|
||||
# mediacontrol.playmedia = [ ];
|
||||
# mediacontrol.playpausemedia = "Media Play";
|
||||
# mediacontrol.previousmedia = "Media Previous";
|
||||
# mediacontrol.stopmedia = "Media Stop";
|
||||
# org_kde_powerdevil."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
# org_kde_powerdevil."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
# org_kde_powerdevil."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
# org_kde_powerdevil.Hibernate = "Hibernate";
|
||||
# org_kde_powerdevil."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
# org_kde_powerdevil."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
# org_kde_powerdevil."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
# org_kde_powerdevil.PowerDown = "Power Down";
|
||||
# org_kde_powerdevil.PowerOff = "Power Off";
|
||||
# org_kde_powerdevil.Sleep = "Sleep";
|
||||
# org_kde_powerdevil."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
# org_kde_powerdevil."Turn Off Screen" = [ ];
|
||||
org_kde_powerdevil.powerProfile = ["Battery" "Meta+B"];
|
||||
plasmashell."activate application launcher" = "Meta";
|
||||
# plasmashell."activate task manager entry 1" = "Meta+1";
|
||||
# plasmashell."activate task manager entry 10" = [ ];
|
||||
# plasmashell."activate task manager entry 2" = "Meta+2";
|
||||
# plasmashell."activate task manager entry 3" = "Meta+3";
|
||||
# plasmashell."activate task manager entry 4" = "Meta+4";
|
||||
# plasmashell."activate task manager entry 5" = "Meta+5";
|
||||
# plasmashell."activate task manager entry 6" = "Meta+6";
|
||||
# plasmashell."activate task manager entry 7" = "Meta+7";
|
||||
# plasmashell."activate task manager entry 8" = "Meta+8";
|
||||
# plasmashell."activate task manager entry 9" = "Meta+9";
|
||||
# plasmashell.clear-history = [ ];
|
||||
# plasmashell.clipboard_action = "Meta+Ctrl+X";
|
||||
# plasmashell.cycle-panels = "Meta+Alt+P";
|
||||
# plasmashell.cycleNextAction = [ ];
|
||||
# plasmashell.cyclePrevAction = [ ];
|
||||
# plasmashell."manage activities" = "Meta+Q";
|
||||
# plasmashell."next activity" = "Meta+A";
|
||||
# plasmashell."previous activity" = "Meta+Shift+A";
|
||||
# plasmashell.repeat_action = "Meta+Ctrl+R";
|
||||
# plasmashell."show dashboard" = "Ctrl+F12";
|
||||
# plasmashell.show-barcode = [ ];
|
||||
# plasmashell.show-on-mouse-pos = "Meta+V";
|
||||
# plasmashell."stop current activity" = "Meta+S";
|
||||
# plasmashell."switch to next activity" = [ ];
|
||||
# plasmashell."switch to previous activity" = [ ];
|
||||
# plasmashell."toggle do not disturb" = [ ];
|
||||
# "services/org.kde.plasma-systemmonitor.desktop"._launch = [ ];
|
||||
# "services/org.kde.spectacle.desktop".RecordWindow = [ ];
|
||||
# "services/org.kde.spectacle.desktop".RectangularRegionScreenShot = ["Meta+Shift+Print" "Meta+Shift+S"];
|
||||
# "services/org.kde.spectacle.desktop"._launch = "Print";
|
||||
# wacomtablet."Map to fullscreen" = "Meta+Ctrl+F";
|
||||
# wacomtablet."Map to screen 1" = "Meta+Ctrl+1";
|
||||
# wacomtablet."Map to screen 2" = "Meta+Ctrl+2";
|
||||
# wacomtablet."Next Profile" = "Meta+Ctrl+N";
|
||||
# wacomtablet."Previous Profile" = "Meta+Ctrl+P";
|
||||
# wacomtablet."Toggle screen map selection" = "Meta+Ctrl+M";
|
||||
# wacomtablet."Toggle stylus mode" = "Meta+Ctrl+S";
|
||||
# wacomtablet."Toggle touch tool" = "Meta+Ctrl+T";
|
||||
yakuake.toggle-window-state = "Meta+F12";
|
||||
};
|
||||
|
||||
configFile = {
|
||||
# baloofilerc.General.dbVersion = 2;
|
||||
# baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||
# baloofilerc.General."exclude filters version" = 9;
|
||||
dolphinrc.General.RememberOpenedTabs = false;
|
||||
# dolphinrc.General.ViewPropsTimestamp = "2024,8,12,15,7,43.15";
|
||||
# dolphinrc.IconsMode.PreviewSize = 80;
|
||||
# dolphinrc."KFileDialog Settings"."Places Icons Auto-resize" = false;
|
||||
# dolphinrc."KFileDialog Settings"."Places Icons Static Size" = 22;
|
||||
# dolphinrc.PreviewSettings.Plugins = "appimagethumbnail,audiothumbnail,avif,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,opendocumentthumbnail,gdk-pixbuf-thumbnailer,svgthumbnail";
|
||||
# kactivitymanagerdrc.activities.e85f493f-046d-4dca-9e07-987ecd4ca4bc = "Default";
|
||||
# kactivitymanagerdrc.main.currentActivity = "e85f493f-046d-4dca-9e07-987ecd4ca4bc";
|
||||
# katerc.General."Days Meta Infos" = 30;
|
||||
# katerc.General."Save Meta Infos" = true;
|
||||
# katerc.General."Show Full Path in Title" = false;
|
||||
# katerc.General."Show Menu Bar" = true;
|
||||
# katerc.General."Show Status Bar" = true;
|
||||
# katerc.General."Show Tab Bar" = true;
|
||||
# katerc.General."Show Url Nav Bar" = true;
|
||||
# katerc."KTextEditor Renderer"."Animate Bracket Matching" = false;
|
||||
# katerc."KTextEditor Renderer"."Auto Color Theme Selection" = true;
|
||||
# katerc."KTextEditor Renderer"."Color Theme" = "Breeze Dark";
|
||||
# katerc."KTextEditor Renderer"."Line Height Multiplier" = 1;
|
||||
# katerc."KTextEditor Renderer"."Show Indentation Lines" = false;
|
||||
# katerc."KTextEditor Renderer"."Show Whole Bracket Expression" = false;
|
||||
# katerc."KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
# katerc."KTextEditor Renderer"."Text Font Features" = "";
|
||||
# katerc."KTextEditor Renderer"."Word Wrap Marker" = false;
|
||||
# katerc."KTextEditor::Search"."Search History" = "availabilityDomain,subnetId";
|
||||
# katerc.filetree.editShade = "31,81,106";
|
||||
# katerc.filetree.listMode = false;
|
||||
# katerc.filetree.middleClickToClose = false;
|
||||
# katerc.filetree.shadingEnabled = true;
|
||||
# katerc.filetree.showCloseButton = false;
|
||||
# katerc.filetree.showFullPathOnRoots = false;
|
||||
# katerc.filetree.showToolbar = true;
|
||||
# katerc.filetree.sortRole = 0;
|
||||
# katerc.filetree.viewShade = "81,49,95";
|
||||
kcminputrc."Libinput/1133/16529/Logitech Wireless Mouse".PointerAcceleration = "0";
|
||||
kcminputrc.Mouse.X11LibInputXAccelProfileFlat = true;
|
||||
kcminputrc.Mouse.XLbInptPointerAcceleration = 0;
|
||||
# kcminputrc.Mouse.cursorTheme = "Breeze_Light";
|
||||
# kded5rc.Module-browserintegrationreminder.autoload = false;
|
||||
# kded5rc.Module-device_automounter.autoload = false;
|
||||
# kdeglobals."DirSelect Dialog"."DirSelectDialog Size" = "960,540";
|
||||
# kdeglobals.Icons.Theme = "Breeze-LaCapitaine-apps";
|
||||
# kdeglobals.KDE.ShowDeleteCommand = false;
|
||||
# kdeglobals.KDE.widgetStyle = "Breeze";
|
||||
# kdeglobals."KFileDialog Settings"."Allow Expansion" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Breadcrumb Navigation" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Decoration position" = 2;
|
||||
# kdeglobals."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
# kdeglobals."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
# kdeglobals."KFileDialog Settings"."Show Bookmarks" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Full Path" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Inline Previews" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Show Preview" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Speedbar" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Show hidden files" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Sort by" = "Name";
|
||||
# kdeglobals."KFileDialog Settings"."Sort directories first" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Sort hidden files last" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Sort reversed" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Speedbar Width" = 147;
|
||||
# kdeglobals."KFileDialog Settings"."View Style" = "DetailTree";
|
||||
# kdeglobals."KShortcutsDialog Settings"."Dialog Size" = "600,480";
|
||||
# kdeglobals.PreviewSettings.EnableRemoteFolderThumbnail = false;
|
||||
# kdeglobals.PreviewSettings.MaximumRemoteSize = 0;
|
||||
# kdeglobals.Sounds.Theme = "freedesktop";
|
||||
# kdeglobals.WM.activeBackground = "49,54,59";
|
||||
# kdeglobals.WM.activeBlend = "252,252,252";
|
||||
# kdeglobals.WM.activeForeground = "252,252,252";
|
||||
# kdeglobals.WM.inactiveBackground = "42,46,50";
|
||||
# kdeglobals.WM.inactiveBlend = "161,169,177";
|
||||
# kdeglobals.WM.inactiveForeground = "161,169,177";
|
||||
# kiorc.Confirmations.ConfirmDelete = true;
|
||||
kscreenlockerrc.Daemon.Autolock = false;
|
||||
kscreenlockerrc.Daemon.Timeout = 0;
|
||||
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".Image = "/usr/share/wallpapers/ScarletTree/";
|
||||
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".PreviewImage = "/usr/share/wallpapers/ScarletTree/";
|
||||
# ksmserverrc.General.loginMode = "emptySession";
|
||||
# ksplashrc.KSplash.Theme = "a2n.kuro";
|
||||
# kwalletrc.Wallet."First Use" = false;
|
||||
# kwinrc."Activities/LastVirtualDesktop"."0f8d8349-5b1b-4b77-bfa5-22829bfaf459" = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
# kwinrc."Activities/LastVirtualDesktop".e85f493f-046d-4dca-9e07-987ecd4ca4bc = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
# kwinrc.Desktops.Id_1 = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
# kwinrc.Desktops.Id_2 = "fc5cf4ff-2e08-4059-ac1f-7c5540efa4fc";
|
||||
# kwinrc.Desktops.Id_3 = "375e6952-2ebc-473c-bd50-58090b95b184";
|
||||
# kwinrc.Desktops.Id_4 = "6cf07176-c30b-401a-b7f4-cf63067a7191";
|
||||
kwinrc.Desktops.Number = 4;
|
||||
kwinrc.Desktops.Rows = 2;
|
||||
# kwinrc.Effect-overview.BorderActivate = 9;
|
||||
kwinrc.Effect-wobblywindows.AdvancedMode = true;
|
||||
kwinrc.Effect-wobblywindows.Stiffness = 25;
|
||||
kwinrc.NightColor.Active = true;
|
||||
# kwinrc.NightColor.LatitudeAuto = 49.49;
|
||||
# kwinrc.NightColor.LongitudeAuto = 8.46;
|
||||
kwinrc.NightColor.NightTemperature = 2400;
|
||||
kwinrc.Plugins.cubeEnabled = true;
|
||||
kwinrc.Plugins.sheetEnabled = true;
|
||||
kwinrc.Plugins.translucencyEnabled = true;
|
||||
kwinrc.Plugins.wobblywindowsEnabled = true;
|
||||
kwinrc.Tiling.padding = 4;
|
||||
# kwinrc."Tiling/01df8341-b6c7-5a80-b8b8-9d45585f515f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# kwinrc."Tiling/1c624b6b-fbd3-5af5-93a9-4a7d55ba7893".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# kwinrc."Tiling/f18ce12b-2106-508f-9542-e4e6c6fbf75f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# kwinrc.Xwayland.Scale = 2;
|
||||
kwinrc."org.kde.kdecoration2".BorderSize = "Tiny";
|
||||
# kwinrc."org.kde.kdecoration2".BorderSizeAuto = false;
|
||||
# kwinrc."org.kde.kdecoration2".ButtonsOnLeft = "";
|
||||
# kwinrc."org.kde.kdecoration2".theme = "__aurorae__svg__Nordic";
|
||||
# plasma-localerc.Formats.LANG = "en_US.UTF-8";
|
||||
#plasmanotifyrc."Applications/dev.deedles.Trayscale".Seen = true;
|
||||
# plasmarc.Theme.name = "WhiteSur-dark";
|
||||
# plasmarc.Wallpapers.usersWallpapers = "/home/cookiez/NixOS/other/wallpaper2.png";
|
||||
#spectaclerc.ImageSave.lastImageSaveLocation = "file:///home/cookiez/Pictures/Screenshots/Screenshot_20251030_101914.png";
|
||||
#spectaclerc.ImageSave.translatedScreenshotsFolder = "Screenshots";
|
||||
#spectaclerc.VideoSave.translatedScreencastsFolder = "Screencasts";
|
||||
};
|
||||
};
|
||||
};
|
||||
./settings/common.nix
|
||||
./settings/powerProfile.nix
|
||||
]
|
||||
++ lib.optionals (plasmaTheme == "laptop") [ ./settings/laptop.nix ]
|
||||
++ lib.optionals (plasmaTheme == "desktop") [ ./settings/desktop.nix ];
|
||||
}
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
source /home/cookiez/NixOS/other/colors.sh
|
||||
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
||||
|
||||
/run/current-system/sw/bin/konsave -i /home/cookiez/NixOS/plasma/NixOS-1.0.1.knsv
|
||||
/run/current-system/sw/bin/konsave -i /home/cookiez/NixOS/plasma/NixOS-1.0.1.knsv
|
||||
/run/current-system/sw/bin/konsave -a NixOS-1.0.1
|
||||
|
||||
progress_bar() {
|
||||
local duration=$1
|
||||
local interval=0.25
|
||||
local total_intervals=$((duration / interval))
|
||||
local progress=""
|
||||
local bar_length=10
|
||||
|
||||
for ((i=0; i<total_intervals; i++)); do
|
||||
progress="${progress}-"
|
||||
printf "\rApplying: [%-${bar_length}s]" "$progress"
|
||||
sleep $interval
|
||||
done
|
||||
echo -ne "\r[${progress}] Done!\n"
|
||||
}
|
||||
|
||||
mkdir -p "$(dirname "$FLAG_FILE")"
|
||||
touch "$FLAG_FILE"
|
||||
echo "Flag for knowing weather the Default theme packaged with this NixOS install was actually applied! (If this exists than it should be applied already)" > "$FLAG_FILE"
|
||||
|
||||
echo -e "Use ${RED}'sudo reboot -h 0'${NOCOLOR} to successfully apply the theme, if logging out manually ${YELLOW}doesn't${NOCOLOR} work!"
|
||||
progress_bar 2.5
|
||||
|
||||
echo ""
|
||||
echo -n "Do you want to reboot now? (y/n): "
|
||||
read -r answer
|
||||
if [ -z "$answer" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
|
||||
echo "Rebooting! ..."
|
||||
sudo shutdown -r now
|
||||
else
|
||||
echo "Make sure to log out/reboot later!"
|
||||
fi
|
||||
@ -1,85 +0,0 @@
|
||||
{config, pkgs, username, ...}:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./autostart.nix
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
systemd.services = {
|
||||
"plasma-workspace".serviceConfig.KillMode = "mixed";
|
||||
"plasma-workspace".serviceConfig.TimeoutStopSec = "5s";
|
||||
"sddm".serviceConfig.KillMode = "mixed";
|
||||
};
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "amdgpu" ];
|
||||
|
||||
xkb = {
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
desktopManager = {
|
||||
#gnome.enable = true;
|
||||
xterm.enable = false;
|
||||
};
|
||||
|
||||
excludePackages = [ pkgs.xterm ];
|
||||
## Enable sound with pipewire.
|
||||
#services.pulseaudio.enable = false;
|
||||
};
|
||||
|
||||
displayManager = {
|
||||
sddm = {
|
||||
enable = true;
|
||||
theme = "breeze";
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
#services.xserver.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
#services.xserver.xkb = {
|
||||
# layout = "de";
|
||||
# variant = "";
|
||||
#};
|
||||
|
||||
system.activationScripts.script.text = ''
|
||||
source /home/cookiez/NixOS/other/colors.sh
|
||||
source /home/cookiez/NixOS/other/pfp.sh
|
||||
'';
|
||||
|
||||
#services.displayManager.sddm = {
|
||||
# enable = true;
|
||||
# theme = "breeze";
|
||||
# wayland.enable = true;
|
||||
#};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
environment.plasma6.excludePackages = with pkgs; [
|
||||
# kdePackages.konsole #Using Kitty instead
|
||||
kdePackages.elisa
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.plymouth-kcm
|
||||
# (pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
|
||||
# [General]
|
||||
# background = "${background-package}"
|
||||
# '')
|
||||
];
|
||||
}
|
||||
414
plasma/settings/common.nix
Normal file
414
plasma/settings/common.nix
Normal file
@ -0,0 +1,414 @@
|
||||
{pkgs, inputs, username, project, plasmaTheme, ...}:
|
||||
{
|
||||
programs = {
|
||||
plasma = {
|
||||
enable = true;
|
||||
overrideConfig = true;
|
||||
|
||||
input.mice = [
|
||||
{
|
||||
name = "Logitech Wireless Mouse";
|
||||
vendorId = "046d"; # 046D lowercase
|
||||
productId = "4091"; # inner HID device, not the receiver (C534)
|
||||
leftHanded = false;
|
||||
#middleButtonEmulation = false;
|
||||
#naturalScroll = false;
|
||||
acceleration = -0.25;
|
||||
accelerationProfile = "none";
|
||||
scrollSpeed = 1.0;
|
||||
}
|
||||
];
|
||||
|
||||
shortcuts = {
|
||||
# ActivityManager = {
|
||||
# switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ];
|
||||
# switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ];
|
||||
# switch-to-activity-e85f493f-046d-4dca-9e07-987ecd4ca4bc = [ ];
|
||||
# };
|
||||
"KDE Keyboard Layout Switcher" = {
|
||||
"Switch keyboard layout to English (US)" = [ ];
|
||||
"Switch keyboard layout to German" = [ ];
|
||||
"Switch to Last-Used Keyboard Layout" = [ ];
|
||||
"Switch to Next Keyboard Layout" = [ ];
|
||||
};
|
||||
|
||||
|
||||
# kaccess."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
# kcm_touchpad."Disable Touchpad" = "Touchpad Off";
|
||||
# kcm_touchpad."Enable Touchpad" = "Touchpad On";
|
||||
# kcm_touchpad."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||
# kmix = {
|
||||
# decrease_microphone_volume = "Microphone Volume Down";
|
||||
# decrease_volume = "Volume Down";
|
||||
# decrease_volume_small = "Shift+Volume Down";
|
||||
# increase_microphone_volume = "Microphone Volume Up";
|
||||
# increase_volume = "Volume Up";
|
||||
# increase_volume_small = "Shift+Volume Up";
|
||||
# mic_mute = ["Microphone Mute" "Meta+Volume Mute"];
|
||||
# mute = "Volume Mute";
|
||||
# };
|
||||
# kmserver = {
|
||||
# "Halt Without Confirmation" = [ ];
|
||||
# "Lock Session" = ["Meta+L" "Screensaver"];
|
||||
# "Log Out" = "Ctrl+Alt+Del";
|
||||
# "Log Out Without Confirmation" = [ ];
|
||||
# LogOut = [ ];
|
||||
# Reboot = [ ];
|
||||
# "Reboot Without Confirmation" = [ ];
|
||||
# "Shut Down" = [ ];
|
||||
# };
|
||||
kwin = {
|
||||
# "Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
Cube = "Meta+C";
|
||||
# "Cycle Overview" = [ ];
|
||||
# "Cycle Overview Opposite" = [ ];
|
||||
# "Decrease Opacity" = [ ];
|
||||
# "Edit Tiles" = "Meta+T";
|
||||
# Expose = "Ctrl+F9";
|
||||
# ExposeAll = ["Ctrl+F10" "Launch (C)"];
|
||||
# ExposeClass = "Ctrl+F7";
|
||||
# ExposeClassCurrentDesktop = [ ];
|
||||
"Grid View" = "Meta+G";
|
||||
# "Increase Opacity" = [ ];
|
||||
# "Kill Window" = "Meta+Ctrl+Esc";
|
||||
# "Move Tablet to Next Output" = [ ];
|
||||
# MoveMouseToCenter = "Meta+F6";
|
||||
# MoveMouseToFocus = "Meta+F5";
|
||||
# MoveZoomDown = [ ];
|
||||
# MoveZoomLeft = [ ];
|
||||
# MoveZoomRight = [ ];
|
||||
# MoveZoomUp = [ ];
|
||||
# Overview = "Meta+W";
|
||||
# "Setup Window Shortcut" = [ ];
|
||||
# "Show Desktop" = "Meta+D";
|
||||
# "Suspend Compositing" = "Alt+Shift+F12";
|
||||
"Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
# "Switch Window Down" = "Meta+Alt+Down";
|
||||
# "Switch Window Left" = "Meta+Alt+Left";
|
||||
# "Switch Window Right" = "Meta+Alt+Right";
|
||||
# "Switch Window Up" = "Meta+Alt+Up";
|
||||
# "Switch to Desktop 1" = "Ctrl+F1";
|
||||
# "Switch to Desktop 10" = [ ];
|
||||
# "Switch to Desktop 11" = [ ];
|
||||
# "Switch to Desktop 12" = [ ];
|
||||
# "Switch to Desktop 13" = [ ];
|
||||
# "Switch to Desktop 14" = [ ];
|
||||
# "Switch to Desktop 15" = [ ];
|
||||
# "Switch to Desktop 16" = [ ];
|
||||
# "Switch to Desktop 17" = [ ];
|
||||
# "Switch to Desktop 18" = [ ];
|
||||
# "Switch to Desktop 19" = [ ];
|
||||
# "Switch to Desktop 2" = "Ctrl+F2";
|
||||
# "Switch to Desktop 20" = [ ];
|
||||
# "Switch to Desktop 3" = "Ctrl+F3";
|
||||
# "Switch to Desktop 4" = "Ctrl+F4";
|
||||
# "Switch to Desktop 5" = [ ];
|
||||
# "Switch to Desktop 6" = [ ];
|
||||
# "Switch to Desktop 7" = [ ];
|
||||
# "Switch to Desktop 8" = [ ];
|
||||
# "Switch to Desktop 9" = [ ];
|
||||
# "Switch to Next Desktop" = [ ];
|
||||
# "Switch to Next Screen" = [ ];
|
||||
# "Switch to Previous Desktop" = [ ];
|
||||
# "Switch to Previous Screen" = [ ];
|
||||
# "Switch to Screen 0" = [ ];
|
||||
# "Switch to Screen 1" = [ ];
|
||||
# "Switch to Screen 2" = [ ];
|
||||
# "Switch to Screen 3" = [ ];
|
||||
# "Switch to Screen 4" = [ ];
|
||||
# "Switch to Screen 5" = [ ];
|
||||
# "Switch to Screen 6" = [ ];
|
||||
# "Switch to Screen 7" = [ ];
|
||||
# "Switch to Screen Above" = [ ];
|
||||
# "Switch to Screen Below" = [ ];
|
||||
# "Switch to Screen to the Left" = [ ];
|
||||
# "Switch to Screen to the Right" = [ ];
|
||||
# "Toggle Night Color" = [ ];
|
||||
# "Toggle Window Raise/Lower" = [ ];
|
||||
# "Walk Through Windows" = "Alt+Tab";
|
||||
# "Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
# "Walk Through Windows Alternative" = [ ];
|
||||
# "Walk Through Windows Alternative (Reverse)" = [ ];
|
||||
# "Walk Through Windows of Current Application" = "Alt+`";
|
||||
# "Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||
# "Walk Through Windows of Current Application Alternative" = [ ];
|
||||
# "Walk Through Windows of Current Application Alternative (Reverse)" = [ ];
|
||||
# "Window Above Other Windows" = [ ];
|
||||
# "Window Below Other Windows" = [ ];
|
||||
"Window Close" = "Alt+F4";
|
||||
# "Window Custom Quick Tile Bottom" = [ ];
|
||||
# "Window Custom Quick Tile Left" = [ ];
|
||||
# "Window Custom Quick Tile Right" = [ ];
|
||||
# "Window Custom Quick Tile Top" = [ ];
|
||||
"Window Fullscreen" = "Meta+Shift+F";
|
||||
# "Window Grow Horizontal" = [ ];
|
||||
# "Window Grow Vertical" = [ ];
|
||||
# "Window Lower" = [ ];
|
||||
"Window Maximize" = ["Meta+F" "Meta+PgUp"];
|
||||
# "Window Maximize Horizontal" = [ ];
|
||||
# "Window Maximize Vertical" = [ ];
|
||||
# "Window Minimize" = "Meta+PgDown";
|
||||
# "Window Move" = [ ];
|
||||
# "Window Move Center" = [ ];
|
||||
# "Window No Border" = [ ];
|
||||
# "Window On All Desktops" = [ ];
|
||||
"Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
# "Window One Screen Down" = [ ];
|
||||
# "Window One Screen Up" = [ ];
|
||||
# "Window One Screen to the Left" = [ ];
|
||||
# "Window One Screen to the Right" = [ ];
|
||||
# "Window Operations Menu" = "Alt+F3";
|
||||
# "Window Pack Down" = [ ];
|
||||
# "Window Pack Left" = [ ];
|
||||
# "Window Pack Right" = [ ];
|
||||
# "Window Pack Up" = [ ];
|
||||
# "Window Quick Tile Bottom" = "Meta+Down";
|
||||
# "Window Quick Tile Bottom Left" = [ ];
|
||||
# "Window Quick Tile Bottom Right" = [ ];
|
||||
# "Window Quick Tile Left" = "Meta+Left";
|
||||
# "Window Quick Tile Right" = "Meta+Right";
|
||||
# "Window Quick Tile Top" = "Meta+Up";
|
||||
# "Window Quick Tile Top Left" = [ ];
|
||||
# "Window Quick Tile Top Right" = [ ];
|
||||
# "Window Raise" = [ ];
|
||||
# "Window Resize" = [ ];
|
||||
# "Window Shade" = [ ];
|
||||
# "Window Shrink Horizontal" = [ ];
|
||||
# "Window Shrink Vertical" = [ ];
|
||||
# "Window to Desktop 1" = [ ];
|
||||
# "Window to Desktop 10" = [ ];
|
||||
# "Window to Desktop 11" = [ ];
|
||||
# "Window to Desktop 12" = [ ];
|
||||
# "Window to Desktop 13" = [ ];
|
||||
# "Window to Desktop 14" = [ ];
|
||||
# "Window to Desktop 15" = [ ];
|
||||
# "Window to Desktop 16" = [ ];
|
||||
# "Window to Desktop 17" = [ ];
|
||||
# "Window to Desktop 18" = [ ];
|
||||
# "Window to Desktop 19" = [ ];
|
||||
# "Window to Desktop 2" = [ ];
|
||||
# "Window to Desktop 20" = [ ];
|
||||
# "Window to Desktop 3" = [ ];
|
||||
# "Window to Desktop 4" = [ ];
|
||||
# "Window to Desktop 5" = [ ];
|
||||
# "Window to Desktop 6" = [ ];
|
||||
# "Window to Desktop 7" = [ ];
|
||||
# "Window to Desktop 8" = [ ];
|
||||
# "Window to Desktop 9" = [ ];
|
||||
# "Window to Next Desktop" = [ ];
|
||||
# "Window to Next Screen" = "Meta+Shift+Right";
|
||||
# "Window to Previous Desktop" = [ ];
|
||||
# "Window to Previous Screen" = "Meta+Shift+Left";
|
||||
# "Window to Screen 0" = [ ];
|
||||
# "Window to Screen 1" = [ ];
|
||||
# "Window to Screen 2" = [ ];
|
||||
# "Window to Screen 3" = [ ];
|
||||
# "Window to Screen 4" = [ ];
|
||||
# "Window to Screen 5" = [ ];
|
||||
# "Window to Screen 6" = [ ];
|
||||
# "Window to Screen 7" = [ ];
|
||||
# disableInputCapture = "Meta+Shift+Esc";
|
||||
# view_actual_size = "Meta+0";
|
||||
# view_zoom_in = ["Meta++" "Meta+="];
|
||||
# view_zoom_out = "Meta+-";
|
||||
};
|
||||
# mediacontrol = {
|
||||
# mediacontrol.mediavolumedown = [ ];
|
||||
# mediacontrol.mediavolumeup = [ ];
|
||||
# mediacontrol.nextmedia = "Media Next";
|
||||
# mediacontrol.pausemedia = "Media Pause";
|
||||
# mediacontrol.playmedia = [ ];
|
||||
# mediacontrol.playpausemedia = "Media Play";
|
||||
# mediacontrol.previousmedia = "Media Previous";
|
||||
# mediacontrol.stopmedia = "Media Stop";
|
||||
# };
|
||||
org_kde_powerdevil = {
|
||||
# "Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
# "Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
# "Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
# Hibernate = "Hibernate";
|
||||
# "Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
# "Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
# "Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
# PowerDown = "Power Down";
|
||||
# PowerOff = "Power Off";
|
||||
# Sleep = "Sleep";
|
||||
# "Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
# "Turn Off Screen" = [ ];
|
||||
powerProfile = ["Battery" "Meta+B"];
|
||||
};
|
||||
plasmashell = {
|
||||
"activate application launcher" = "Meta";
|
||||
# "activate task manager entry 1" = "Meta+1";
|
||||
# "activate task manager entry 10" = [ ];
|
||||
# "activate task manager entry 2" = "Meta+2";
|
||||
# "activate task manager entry 3" = "Meta+3";
|
||||
# "activate task manager entry 4" = "Meta+4";
|
||||
# "activate task manager entry 5" = "Meta+5";
|
||||
# "activate task manager entry 6" = "Meta+6";
|
||||
# "activate task manager entry 7" = "Meta+7";
|
||||
# "activate task manager entry 8" = "Meta+8";
|
||||
# "activate task manager entry 9" = "Meta+9";
|
||||
# clear-history = [ ];
|
||||
# clipboard_action = "Meta+Ctrl+X";
|
||||
# cycle-panels = "Meta+Alt+P";
|
||||
# cycleNextAction = [ ];
|
||||
# cyclePrevAction = [ ];
|
||||
# "manage activities" = "Meta+Q";
|
||||
# "next activity" = "Meta+A";
|
||||
# "previous activity" = "Meta+Shift+A";
|
||||
# repeat_action = "Meta+Ctrl+R";
|
||||
# "show dashboard" = "Ctrl+F12";
|
||||
# show-barcode = [ ];
|
||||
# show-on-mouse-pos = "Meta+V";
|
||||
# "stop current activity" = "Meta+S";
|
||||
# "switch to next activity" = [ ];
|
||||
# "switch to previous activity" = [ ];
|
||||
# "toggle do not disturb" = [ ];
|
||||
};
|
||||
# "services/org.kde.plasma-systemmonitor.desktop"._launch = [ ];
|
||||
# "services/org.kde.spectacle.desktop".RecordWindow = [ ];
|
||||
# "services/org.kde.spectacle.desktop".RectangularRegionScreenShot = ["Meta+Shift+Print" "Meta+Shift+S"];
|
||||
# "services/org.kde.spectacle.desktop"._launch = "Print";
|
||||
# wacomtablet."Map to fullscreen" = "Meta+Ctrl+F";
|
||||
# wacomtablet."Map to screen 1" = "Meta+Ctrl+1";
|
||||
# wacomtablet."Map to screen 2" = "Meta+Ctrl+2";
|
||||
# wacomtablet."Next Profile" = "Meta+Ctrl+N";
|
||||
# wacomtablet."Previous Profile" = "Meta+Ctrl+P";
|
||||
# wacomtablet."Toggle screen map selection" = "Meta+Ctrl+M";
|
||||
# wacomtablet."Toggle stylus mode" = "Meta+Ctrl+S";
|
||||
# wacomtablet."Toggle touch tool" = "Meta+Ctrl+T";
|
||||
yakuake.toggle-window-state = "Meta+F12";
|
||||
};
|
||||
|
||||
configFile = {
|
||||
# baloofilerc.General.dbVersion = 2;
|
||||
# baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||
# baloofilerc.General."exclude filters version" = 9;
|
||||
dolphinrc = {
|
||||
General = {
|
||||
ShowTerminal = true;
|
||||
RememberOpenedTabs = false;
|
||||
# ViewPropsTimestamp = "2024,8,12,15,7,43.15";
|
||||
};
|
||||
# IconsMode.PreviewSize = 80;
|
||||
# "KFileDialog Settings"."Places Icons Auto-resize" = false;
|
||||
# "KFileDialog Settings"."Places Icons Static Size" = 22;
|
||||
# PreviewSettings.Plugins = "appimagethumbnail,audiothumbnail,avif,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,opendocumentthumbnail,gdk-pixbuf-thumbnailer,svgthumbnail";
|
||||
};
|
||||
# kactivitymanagerdrc.activities.e85f493f-046d-4dca-9e07-987ecd4ca4bc = "Default";
|
||||
# kactivitymanagerdrc.main.currentActivity = "e85f493f-046d-4dca-9e07-987ecd4ca4bc";
|
||||
katerc = {
|
||||
# General."Days Meta Infos" = 30;
|
||||
# General."Save Meta Infos" = true;
|
||||
# General."Show Full Path in Title" = false;
|
||||
# General."Show Menu Bar" = true;
|
||||
# General."Show Status Bar" = true;
|
||||
# General."Show Tab Bar" = true;
|
||||
# General."Show Url Nav Bar" = true;
|
||||
# "KTextEditor Renderer"."Animate Bracket Matching" = false;
|
||||
# "KTextEditor Renderer"."Auto Color Theme Selection" = true;
|
||||
# "KTextEditor Renderer"."Color Theme" = "Breeze Dark";
|
||||
# "KTextEditor Renderer"."Line Height Multiplier" = 1;
|
||||
# "KTextEditor Renderer"."Show Indentation Lines" = false;
|
||||
# "KTextEditor Renderer"."Show Whole Bracket Expression" = false;
|
||||
# "KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
# "KTextEditor Renderer"."Text Font Features" = "";
|
||||
# "KTextEditor Renderer"."Word Wrap Marker" = false;
|
||||
# "KTextEditor::Search"."Search History" = "availabilityDomain,subnetId";
|
||||
"KTextEditor Document" = {
|
||||
"Indentation Width" = 2;
|
||||
"Tab Width" = 2;
|
||||
"Replace Tabs" = true;
|
||||
};
|
||||
# filetree.editShade = "31,81,106";
|
||||
# filetree.listMode = false;# kdeglobals.KDE.widgetStyle = "Breeze";
|
||||
# filetree.middleClickToClose = false;
|
||||
# filetree.shadingEnabled = true;
|
||||
# filetree.showCloseButton = false;
|
||||
# filetree.showFullPathOnRoots = false;
|
||||
# filetree.showToolbar = true;
|
||||
# filetree.sortRole = 0;
|
||||
# filetree.viewShade = "81,49,95";
|
||||
};
|
||||
# kded5rc.Module-browserintegrationreminder.autoload = false;
|
||||
# kded5rc.Module-device_automounter.autoload = false;
|
||||
# kdeglobals."DirSelect Dialog"."DirSelectDialog Size" = "960,540";
|
||||
# kdeglobals.KDE.ShowDeleteCommand = false;
|
||||
# kdeglobals."KFileDialog Settings"."Allow Expansion" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Breadcrumb Navigation" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Decoration position" = 2;
|
||||
# kdeglobals."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
# kdeglobals."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
# kdeglobals."KFileDialog Settings"."Show Bookmarks" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Full Path" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Inline Previews" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Show Preview" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Show Speedbar" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Show hidden files" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Sort by" = "Name";
|
||||
# kdeglobals."KFileDialog Settings"."Sort directories first" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Sort hidden files last" = false;
|
||||
# kdeglobals."KFileDialog Settings"."Sort reversed" = true;
|
||||
# kdeglobals."KFileDialog Settings"."Speedbar Width" = 147;
|
||||
# kdeglobals."KFileDialog Settings"."View Style" = "DetailTree";
|
||||
# kdeglobals."KShortcutsDialog Settings"."Dialog Size" = "600,480";
|
||||
# kdeglobals.PreviewSettings.EnableRemoteFolderThumbnail = false;
|
||||
# kdeglobals.PreviewSettings.MaximumRemoteSize = 0;
|
||||
# kdeglobals.Sounds.Theme = "freedesktop";
|
||||
# kdeglobals.WM.activeBackground = "49,54,59";
|
||||
# kdeglobals.WM.activeBlend = "252,252,252";
|
||||
# kdeglobals.WM.activeForeground = "252,252,252";
|
||||
# kdeglobals.WM.inactiveBackground = "42,46,50";
|
||||
# kdeglobals.WM.inactiveBlend = "161,169,177";
|
||||
# kdeglobals.WM.inactiveForeground = "161,169,177";
|
||||
# kiorc.Confirmations.ConfirmDelete = true;
|
||||
kscreenlockerrc.Daemon.Autolock = false;
|
||||
kscreenlockerrc.Daemon.Timeout = 0;
|
||||
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".Image = "/usr/share/wallpapers/ScarletTree/";
|
||||
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".PreviewImage = "/usr/share/wallpapers/ScarletTree/";
|
||||
ksmserverrc.General.loginMode = "emptySession";
|
||||
# kwalletrc.Wallet."First Use" = false;
|
||||
kwinrc = {
|
||||
# "Activities/LastVirtualDesktop"."0f8d8349-5b1b-4b77-bfa5-22829bfaf459" = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
# "Activities/LastVirtualDesktop".e85f493f-046d-4dca-9e07-987ecd4ca4bc = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
Desktops = {
|
||||
# Id_1 = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
|
||||
# Id_2 = "fc5cf4ff-2e08-4059-ac1f-7c5540efa4fc";
|
||||
# Id_3 = "375e6952-2ebc-473c-bd50-58090b95b184";
|
||||
# Id_4 = "6cf07176-c30b-401a-b7f4-cf63067a7191";
|
||||
Number = 4;
|
||||
Rows = 2;
|
||||
};
|
||||
Effect-overview.BorderActivate = 9;
|
||||
NightColor.Active = true;
|
||||
#Latitude and Longitude for Germany
|
||||
NightColor.LatitudeAuto = 49.49;
|
||||
NightColor.LongitudeAuto = 8.46;
|
||||
NightColor.NightTemperature = 2400;
|
||||
Plugins.cubeEnabled = true;
|
||||
Plugins.sheetEnabled = true;
|
||||
Plugins.translucencyEnabled = true;
|
||||
Tiling.padding = 4;
|
||||
# "Tiling/01df8341-b6c7-5a80-b8b8-9d45585f515f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# "Tiling/1c624b6b-fbd3-5af5-93a9-4a7d55ba7893".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# "Tiling/f18ce12b-2106-508f-9542-e4e6c6fbf75f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
# Xwayland.Scale = 2;
|
||||
"org.kde.kdecoration2".BorderSize = "Tiny";
|
||||
"org.kde.kdecoration2".BorderSizeAuto = false;
|
||||
"org.kde.kdecoration2".ButtonsOnLeft = "";
|
||||
# "org.kde.kdecoration2".theme = "__aurorae__svg__Nordic";
|
||||
};
|
||||
# plasma-localerc.Formats.LANG = "en_US.UTF-8";
|
||||
#plasmanotifyrc."Applications/dev.deedles.Trayscale".Seen = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
120
plasma/settings/desktop.nix
Normal file
120
plasma/settings/desktop.nix
Normal file
@ -0,0 +1,120 @@
|
||||
{pkgs, inputs, username, project, plasmaTheme, ...}:
|
||||
{
|
||||
programs = {
|
||||
plasma = {
|
||||
overrideConfig = true;
|
||||
|
||||
panels = [
|
||||
{
|
||||
height = 44;
|
||||
location = "bottom";
|
||||
alignment = "center";
|
||||
floating = true;
|
||||
opacity = "translucent";
|
||||
widgets = [
|
||||
"org.kde.plasma.kickoff"
|
||||
"org.kde.plasma.pager"
|
||||
{
|
||||
name = "org.kde.plasma.icontasks";
|
||||
config = {
|
||||
General = {
|
||||
launchers = [
|
||||
# optional pinned apps
|
||||
"applications:org.kde.dolphin.desktop"
|
||||
"applications:systemsettings.desktop""applications:kitty.desktop"
|
||||
"applications:firefox.desktop"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.olib.thermalmonitor";
|
||||
config = {
|
||||
General = {
|
||||
sensors = "[{\"name\":\"Average CPU Temperature\",\"sensorId\":\"cpu/all/averageTemperature\"}]";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.plasma.systemmonitor.cpu";
|
||||
config = {
|
||||
Appearance = {
|
||||
chartFace = "org.kde.ksysguard.linechart";
|
||||
title = "Total CPU Use";
|
||||
};
|
||||
SensorColors = {
|
||||
"cpu/all/usage" = "43,82,120";
|
||||
};
|
||||
Sensors = {
|
||||
highPrioritySensorIds = "[\"cpu/all/usage\"]";
|
||||
lowPrioritySensorIds = "[\"cpu/all/cpuCount\",\"cpu/all/coreCount\"]";
|
||||
totalSensors = "[\"cpu/all/usage\"]";
|
||||
};
|
||||
General = {
|
||||
CurrentPreset = "org.kde.plasma.systemmonitor";
|
||||
};
|
||||
};
|
||||
}
|
||||
"zayron.simple.separator"
|
||||
{
|
||||
systemTray = {
|
||||
items = {
|
||||
# Explicitly shown icons (always visible)
|
||||
shown = [
|
||||
"Trayscale"
|
||||
#"org.kde.plasma.battery"
|
||||
"org.kde.plasma.networkmanagement"
|
||||
"org.kde.plasma.volume"
|
||||
];
|
||||
# Explicitly hidden icons (in the popup menu)
|
||||
hidden = [
|
||||
"org.kde.plasma.brightness"
|
||||
"toolbox"
|
||||
"Yakuake"
|
||||
"org.kde.plasma.notifications"
|
||||
"Xwayland Video Bridge_pipewireToXProxy"
|
||||
"zero-trust-client"
|
||||
"org.kde.plasma.clipboard"
|
||||
"org.kde.plasma.bluetooth"
|
||||
"org.kde.plasma.clipboard"
|
||||
"org.kde.plasma.printmanager"
|
||||
"org.kde.plasma.weather"
|
||||
"org.kde.plasma.battery"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.plasma.digitalclock";
|
||||
config = {
|
||||
Appearance = {
|
||||
fontWeight = 400;
|
||||
use24hFormat = 2;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
workspace = {
|
||||
theme = "WhiteSur-dark";
|
||||
colorScheme = "Win11OSDark";
|
||||
cursor = {
|
||||
theme = "Win10OS-cursors";
|
||||
size = 24;
|
||||
};
|
||||
wallpaper = /home/${username}/${project}/other/wallpaper1.png;
|
||||
soundTheme = "ocean";
|
||||
iconTheme = "We10X";
|
||||
splashScreen = {
|
||||
theme = "fishy";
|
||||
};
|
||||
windowDecorations = {
|
||||
library = "org.kde.kwin.aurorae";
|
||||
theme = "__aurorae__svg__Win11OS-dark";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
152
plasma/settings/laptop.nix
Normal file
152
plasma/settings/laptop.nix
Normal file
@ -0,0 +1,152 @@
|
||||
{pkgs, inputs, username, project, plasmaTheme, ...}:
|
||||
{
|
||||
|
||||
programs = {
|
||||
plasma = {
|
||||
overrideConfig = true;
|
||||
|
||||
panels = [
|
||||
{
|
||||
height = 44;
|
||||
location = "top";
|
||||
alignment = "center";
|
||||
floating = true;
|
||||
opacity = "translucent";
|
||||
widgets = [
|
||||
"org.kde.plasma.kickoff"
|
||||
"org.kde.plasma.pager"
|
||||
"org.kde.plasma.marginsseparator"
|
||||
"org.kde.windowtitle"
|
||||
"org.kde.plasma.panelspacer"
|
||||
{
|
||||
name = "org.kde.olib.thermalmonitor";
|
||||
config = {
|
||||
General = {
|
||||
sensors = "[{\"name\":\"Average CPU Temperature\",\"sensorId\":\"cpu/all/averageTemperature\"}]";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.plasma.systemmonitor.cpu";
|
||||
config = {
|
||||
Appearance = {
|
||||
chartFace = "org.kde.ksysguard.linechart";
|
||||
title = "Total CPU Use";
|
||||
};
|
||||
SensorColors = {
|
||||
"cpu/all/usage" = "43,82,120";
|
||||
};
|
||||
Sensors = {
|
||||
highPrioritySensorIds = "[\"cpu/all/usage\"]";
|
||||
lowPrioritySensorIds = "[\"cpu/all/cpuCount\",\"cpu/all/coreCount\"]";
|
||||
totalSensors = "[\"cpu/all/usage\"]";
|
||||
};
|
||||
General = {
|
||||
CurrentPreset = "org.kde.plasma.systemmonitor";
|
||||
};
|
||||
};
|
||||
}
|
||||
"zayron.simple.separator"
|
||||
{
|
||||
systemTray = {
|
||||
items = {
|
||||
# Explicitly shown icons (always visible)
|
||||
shown = [
|
||||
"Trayscale"
|
||||
#"org.kde.plasma.battery"
|
||||
"org.kde.plasma.networkmanagement"
|
||||
"org.kde.plasma.volume"
|
||||
];
|
||||
# Explicitly hidden icons (in the popup menu)
|
||||
hidden = [
|
||||
"org.kde.plasma.brightness"
|
||||
"toolbox"
|
||||
"Yakuake"
|
||||
"org.kde.plasma.notifications"
|
||||
"Xwayland Video Bridge_pipewireToXProxy"
|
||||
"zero-trust-client"
|
||||
"org.kde.plasma.clipboard"
|
||||
"org.kde.plasma.bluetooth"
|
||||
"org.kde.plasma.clipboard"
|
||||
"org.kde.plasma.printmanager"
|
||||
"org.kde.plasma.weather"
|
||||
"org.kde.plasma.battery"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.plasma.battery";
|
||||
config = {
|
||||
General = {
|
||||
showPercentage = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "org.kde.plasma.digitalclock";
|
||||
config = {
|
||||
Appearance = {
|
||||
fontWeight = 400;
|
||||
use24hFormat = 2;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
height = 60;
|
||||
location = "bottom";
|
||||
alignment = "center";
|
||||
lengthMode = "fit";
|
||||
floating = true;
|
||||
opacity = "translucent";
|
||||
hiding = "dodgewindows";
|
||||
widgets = [
|
||||
"org.kde.plasma.kickerdash"
|
||||
{
|
||||
name = "org.kde.plasma.icontasks";
|
||||
config = {
|
||||
General = {
|
||||
launchers = [
|
||||
# optional pinned apps
|
||||
"applications:org.kde.dolphin.desktop"
|
||||
"applications:systemsettings.desktop""applications:kitty.desktop"
|
||||
"applications:firefox.desktop"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
workspace = {
|
||||
theme = "WhiteSur-dark";
|
||||
colorScheme = "BreezeDark";
|
||||
cursor = {
|
||||
theme = "Breeze_Light";
|
||||
size = 24;
|
||||
};
|
||||
wallpaper = /home/${username}/${project}/other/wallpaper3.png;
|
||||
soundTheme = "freedesktop";
|
||||
iconTheme = "Breeze-LaCapitaine-apps";
|
||||
splashScreen = {
|
||||
theme = "a2n.kuro";
|
||||
};
|
||||
windowDecorations = {
|
||||
library = "org.kde.kwin.aurorae";
|
||||
theme = "__aurorae__svg__Nordic";
|
||||
};
|
||||
};
|
||||
configFile = {
|
||||
kwinrc = {
|
||||
Effect-wobblywindows.AdvancedMode = true;
|
||||
Effect-wobblywindows.Stiffness = 25;
|
||||
Plugins.wobblywindowsEnabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
65
plasma/settings/powerProfile.nix
Normal file
65
plasma/settings/powerProfile.nix
Normal file
@ -0,0 +1,65 @@
|
||||
{pkgs, inputs, username, project, powerProfile, ...}:
|
||||
let
|
||||
profiles = {
|
||||
laptop = {
|
||||
AC.powerProfile = "powerSaving";
|
||||
battery.powerProfile = "powerSaving";
|
||||
lowBattery.powerProfile = "powerSaving";
|
||||
};
|
||||
desktop = {
|
||||
AC.powerProfile = "performance";
|
||||
battery.powerProfile = "performance";
|
||||
lowBattery.powerProfile = "performance";
|
||||
};
|
||||
};
|
||||
|
||||
selectedProfile = profiles.${powerProfile};
|
||||
in
|
||||
{
|
||||
programs = {
|
||||
plasma = {
|
||||
overrideConfig = true;
|
||||
|
||||
powerdevil = {
|
||||
AC = {
|
||||
powerProfile = selectedProfile.AC.powerProfile;
|
||||
autoSuspend = {
|
||||
action = "nothing";
|
||||
};
|
||||
dimDisplay.enable = false;
|
||||
turnOffDisplay.idleTimeout = "never";
|
||||
};
|
||||
|
||||
battery = {
|
||||
powerProfile = selectedProfile.battery.powerProfile;
|
||||
autoSuspend = {
|
||||
action = "nothing";
|
||||
};
|
||||
whenLaptopLidClosed = "sleep";
|
||||
dimDisplay.enable = false;
|
||||
turnOffDisplay.idleTimeout = "never";
|
||||
};
|
||||
|
||||
lowBattery = {
|
||||
powerProfile = selectedProfile.lowBattery.powerProfile;
|
||||
autoSuspend = {
|
||||
action = "sleep";
|
||||
idleTimeout = 300;
|
||||
};
|
||||
whenLaptopLidClosed = "sleep";
|
||||
dimDisplay = {
|
||||
idleTimeout = 60;
|
||||
};
|
||||
displayBrightness = 30;
|
||||
turnOffDisplay.idleTimeout = 120;
|
||||
};
|
||||
|
||||
batteryLevels = {
|
||||
lowLevel = 10;
|
||||
criticalLevel = 5;
|
||||
criticalAction = "sleep";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
sleep 15
|
||||
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
||||
|
||||
|
||||
if [ ! -f "$FLAG_FILE" ]; then
|
||||
/run/current-system/sw/bin/kdialog --passivepopup "Dont forget to apply custom system theme! (run kde-theme-apply in terminal)" 60
|
||||
fi
|
||||
|
||||
echo "Finished Popup Script!"
|
||||
Reference in New Issue
Block a user