Changes
This commit is contained in:
parent
b921c2ac47
commit
8ea644f665
|
@ -16,6 +16,7 @@
|
||||||
# Enabled modules
|
# Enabled modules
|
||||||
modules = {
|
modules = {
|
||||||
base.enable = true;
|
base.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
power-saving.enable = false;
|
power-saving.enable = false;
|
||||||
pipewire.enable = true;
|
pipewire.enable = true;
|
||||||
wpa_supplicant.enable = true;
|
wpa_supplicant.enable = true;
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.bluetooth;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.bluetooth = {
|
||||||
|
enable = mkEnableOption "bluetooth";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [ bluez ];
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ with lib;
|
||||||
imports = [
|
imports = [
|
||||||
# Import modules
|
# Import modules
|
||||||
./base/default.nix
|
./base/default.nix
|
||||||
|
./bluetooth/default.nix
|
||||||
./boot/clean-tmp.nix
|
./boot/clean-tmp.nix
|
||||||
./boot/silent-boot.nix
|
./boot/silent-boot.nix
|
||||||
./boot/systemd-boot.nix
|
./boot/systemd-boot.nix
|
||||||
|
|
|
@ -8,7 +8,12 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
# Nixvim
|
# Nixvim
|
||||||
nixvim = import (builtins.fetchGit { url = "https://github.com/nix-community/nixvim"; });
|
nixvim = import (
|
||||||
|
builtins.fetchGit {
|
||||||
|
url = "https://github.com/nix-community/nixvim";
|
||||||
|
# ref = "nixos-24.05";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
# Stylix
|
# Stylix
|
||||||
stylix = import (
|
stylix = import (
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.bluetuith;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.bluetuith = {
|
||||||
|
enable = mkEnableOption "bluetuith";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ bluetuith ];
|
||||||
|
|
||||||
|
# Add nix tree
|
||||||
|
xdg.desktopEntries.bluetuith = {
|
||||||
|
exec = "${pkgs.bluetuith}/bin/bluetuith";
|
||||||
|
name = "Bluetuith";
|
||||||
|
terminal = true;
|
||||||
|
type = "Application";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -19,6 +19,23 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
default.browser = mkIf cfg.default "org.qutebrowser.qutebrowser.desktop";
|
default.browser = mkIf cfg.default "org.qutebrowser.qutebrowser.desktop";
|
||||||
|
|
||||||
|
# TODO: Remove once nixpkgs updates
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
python3 = pkgs.python3.override {
|
||||||
|
packageOverrides = self: super: {
|
||||||
|
pykeepass = super.pykeepass.overrideAttrs (attrs: {
|
||||||
|
version = "4.1.0.post1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "libkeepass";
|
||||||
|
repo = "pykeepass";
|
||||||
|
rev = "refs/tags/v4.1.0.post1";
|
||||||
|
hash = "sha256-64is/XoRF/kojqd4jQIAQi1od8TRhiv9uR+WNIGvP2A=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.qutebrowser = {
|
programs.qutebrowser = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,13 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Import all modules
|
# Import all modules
|
||||||
|
./bluetuith/default.nix
|
||||||
./browser/default.nix
|
./browser/default.nix
|
||||||
./desktop/default.nix
|
./desktop/default.nix
|
||||||
./discord/default.nix
|
./discord/default.nix
|
||||||
./feishin/default.nix
|
./feishin/default.nix
|
||||||
./fontconfig/default.nix
|
./fontconfig/default.nix
|
||||||
|
./language/haskell.nix
|
||||||
./language/nix.nix
|
./language/nix.nix
|
||||||
./language/rust.nix
|
./language/rust.nix
|
||||||
./mako/default.nix
|
./mako/default.nix
|
||||||
|
@ -27,6 +29,7 @@
|
||||||
./terminal/foot/default.nix
|
./terminal/foot/default.nix
|
||||||
./theming/default.nix
|
./theming/default.nix
|
||||||
./vscode/default.nix
|
./vscode/default.nix
|
||||||
|
./whatsapp/default.nix
|
||||||
./winbox/default.nix
|
./winbox/default.nix
|
||||||
./zathura/default.nix
|
./zathura/default.nix
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ in
|
||||||
"mpris"
|
"mpris"
|
||||||
];
|
];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
|
"bluetooth"
|
||||||
"network"
|
"network"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
"battery"
|
"battery"
|
||||||
|
@ -110,6 +111,11 @@ in
|
||||||
tooltip-format = "";
|
tooltip-format = "";
|
||||||
interval = 1;
|
interval = 1;
|
||||||
};
|
};
|
||||||
|
bluetooth = {
|
||||||
|
tooltip = false;
|
||||||
|
format = " {status}"; # Spacing achieved using "Thin Space"
|
||||||
|
format-connected = " {device_alias}"; # Spacing achieved using "Thin Space"
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# TODO: Replace base03 color with named color
|
# TODO: Replace base03 color with named color
|
||||||
|
@ -133,7 +139,7 @@ in
|
||||||
padding: 0 5px 1px 5px;
|
padding: 0 5px 1px 5px;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: "Unifont";
|
font-family: "wenquanyi bitmap song";
|
||||||
}
|
}
|
||||||
|
|
||||||
#tags button.occupied {
|
#tags button.occupied {
|
||||||
|
|
|
@ -36,6 +36,8 @@ in
|
||||||
[
|
[
|
||||||
pkgs.wl-clipboard
|
pkgs.wl-clipboard
|
||||||
pkgs.wtype
|
pkgs.wtype
|
||||||
|
pkgs.grim
|
||||||
|
pkgs.slurp
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ in
|
||||||
# TODO: Move elsewhere
|
# TODO: Move elsewhere
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
river-filtile
|
||||||
# owm
|
# owm
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -56,7 +57,7 @@ in
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
settings =
|
settings =
|
||||||
let
|
let
|
||||||
layout = "rivertile";
|
layout = "filtile";
|
||||||
layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding}";
|
layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding}";
|
||||||
modes = [
|
modes = [
|
||||||
"normal"
|
"normal"
|
||||||
|
@ -108,7 +109,7 @@ in
|
||||||
];
|
];
|
||||||
map = (
|
map = (
|
||||||
lib.attrsets.recursiveUpdate
|
lib.attrsets.recursiveUpdate
|
||||||
({
|
{
|
||||||
normal =
|
normal =
|
||||||
{
|
{
|
||||||
"${main} Q" = "close";
|
"${main} Q" = "close";
|
||||||
|
@ -119,6 +120,7 @@ in
|
||||||
"${ssm} Return" = "spawn foot";
|
"${ssm} Return" = "spawn foot";
|
||||||
"${main} P" = "spawn \"rofi -show drun\"";
|
"${main} P" = "spawn \"rofi -show drun\"";
|
||||||
"${ssm} P" = "spawn rofi-rbw";
|
"${ssm} P" = "spawn rofi-rbw";
|
||||||
|
"${main} S" = "spawn \"grim -g \\\"\\\$(slurp)\\\" ~/Images/Screenshots/\\\$(date +'%s_grim.png')\"";
|
||||||
|
|
||||||
# Window focus
|
# Window focus
|
||||||
"${main} J" = "focus-view next";
|
"${main} J" = "focus-view next";
|
||||||
|
@ -130,22 +132,22 @@ in
|
||||||
"${main} Return" = "zoom";
|
"${main} Return" = "zoom";
|
||||||
|
|
||||||
# Main ratio
|
# Main ratio
|
||||||
"${main} H" = "send-layout-cmd rivertile 'main-ratio -0.05'";
|
"${main} H" = "send-layout-cmd ${layout} 'main-ratio -0.05'";
|
||||||
"${main} L" = "send-layout-cmd rivertile 'main-ratio +0.05'";
|
"${main} L" = "send-layout-cmd ${layout} 'main-ratio +0.05'";
|
||||||
|
|
||||||
# Main count
|
# Main count
|
||||||
"${ssm} H" = "send-layout-cmd rivertile 'main-count +1'";
|
"${ssm} H" = "send-layout-cmd ${layout} 'main-count +1'";
|
||||||
"${ssm} L" = "send-layout-cmd rivertile 'main-count -1'";
|
"${ssm} L" = "send-layout-cmd ${layout} 'main-count -1'";
|
||||||
|
|
||||||
# Tags
|
# Tags
|
||||||
"${main} 0" = "set-focused-tags ${toString (pow2 32 - 1)}";
|
"${main} 0" = "set-focused-tags ${toString (pow2 32 - 1)}";
|
||||||
"${ssm} 0" = "set-view-tags ${toString (pow2 32 - 1)}";
|
"${ssm} 0" = "set-view-tags ${toString (pow2 32 - 1)}";
|
||||||
|
|
||||||
# Orientation
|
# Orientation
|
||||||
"${main} Up" = "send-layout-cmd rivertile \"main-location top\"";
|
"${main} Up" = "send-layout-cmd ${layout} \"main-location top\"";
|
||||||
"${main} Right" = "send-layout-cmd rivertile \"main-location right\"";
|
"${main} Right" = "send-layout-cmd ${layout} \"main-location right\"";
|
||||||
"${main} Down" = "send-layout-cmd rivertile \"main-location bottom\"";
|
"${main} Down" = "send-layout-cmd ${layout} \"main-location bottom\"";
|
||||||
"${main} Left" = "send-layout-cmd rivertile \"main-location left\"";
|
"${main} Left" = "send-layout-cmd ${layout} \"main-location left\"";
|
||||||
|
|
||||||
# Move floating windows
|
# Move floating windows
|
||||||
"${sam} H" = "move left 100";
|
"${sam} H" = "move left 100";
|
||||||
|
@ -191,7 +193,7 @@ in
|
||||||
]) tags
|
]) tags
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
})
|
}
|
||||||
(
|
(
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map (mode: {
|
map (mode: {
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.haskell;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.haskell = {
|
||||||
|
enable = mkEnableOption "haskell";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# Development packages
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
haskell.compiler.ghc948
|
||||||
|
(haskell-language-server.override { supportedGhcVersions = [ "948" ]; })
|
||||||
|
];
|
||||||
|
|
||||||
|
# VSCode configuration
|
||||||
|
programs.vscode = {
|
||||||
|
extensions = with pkgs.vscode-extensions; [
|
||||||
|
haskell.haskell
|
||||||
|
justusadam.language-haskell
|
||||||
|
];
|
||||||
|
|
||||||
|
userSettings = {
|
||||||
|
"[haskell]" = { };
|
||||||
|
# "haskell.formattingProvider" = "fourmolu";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Neovim configuration
|
||||||
|
programs.nixvim = { };
|
||||||
|
};
|
||||||
|
}
|
|
@ -17,28 +17,31 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Development packages
|
# Development packages
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# rustup
|
rustup
|
||||||
rustc
|
# rustc
|
||||||
cargo
|
# cargo
|
||||||
gcc
|
gcc
|
||||||
# lldb
|
lldb
|
||||||
gdb
|
# rust-analyzer
|
||||||
rust-analyzer
|
# rustfmt
|
||||||
rustfmt
|
# clippy
|
||||||
];
|
];
|
||||||
|
|
||||||
# VSCode configuration
|
# VSCode configuration
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
rust-lang.rust-analyzer
|
rust-lang.rust-analyzer
|
||||||
# ms-vscode.cpp-tools
|
|
||||||
vadimcn.vscode-lldb
|
vadimcn.vscode-lldb
|
||||||
|
tamasfe.even-better-toml
|
||||||
|
serayuzgur.crates
|
||||||
];
|
];
|
||||||
|
|
||||||
userSettings = {
|
userSettings = {
|
||||||
"[rust]" = {
|
"[rust]" = {
|
||||||
"editor.inlayHints.enabled" = "off";
|
"editor.inlayHints.enabled" = "off";
|
||||||
};
|
};
|
||||||
|
"rust-analyzer.check.command" = "clippy";
|
||||||
|
"rust-analyzer.showUnlinkedFileNotification" = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,8 @@ in
|
||||||
# Import all themes
|
# Import all themes
|
||||||
./themes/catppuccin.nix
|
./themes/catppuccin.nix
|
||||||
./themes/gruvbox.nix
|
./themes/gruvbox.nix
|
||||||
|
./themes/oxocarbon.nix
|
||||||
|
./themes/papercolor.nix
|
||||||
./themes/sakura.nix
|
./themes/sakura.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.theming.themes.oxocarbon;
|
||||||
|
mode = if cfg.darkMode then "dark" else "light";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
theming.themes.oxocarbon = {
|
||||||
|
enable = mkEnableOption "oxocarbon";
|
||||||
|
darkMode = mkEnableOption "dark mode";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config.theming = mkIf cfg.enable {
|
||||||
|
darkMode = cfg.darkMode;
|
||||||
|
colorScheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-${mode}.yaml";
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.theming.themes.papercolor;
|
||||||
|
mode = if cfg.darkMode then "dark" else "light";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
theming.themes.papercolor = {
|
||||||
|
enable = mkEnableOption "papercolor";
|
||||||
|
darkMode = mkEnableOption "dark mode";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config.theming = mkIf cfg.enable {
|
||||||
|
darkMode = cfg.darkMode;
|
||||||
|
colorScheme = "${pkgs.base16-schemes}/share/themes/papercolor-${mode}.yaml";
|
||||||
|
};
|
||||||
|
}
|
|
@ -35,6 +35,9 @@ in
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
eamodio.gitlens
|
eamodio.gitlens
|
||||||
ms-vscode.hexeditor
|
ms-vscode.hexeditor
|
||||||
|
mkhl.direnv
|
||||||
|
usernamehw.errorlens
|
||||||
|
gruntfuggly.todo-tree
|
||||||
];
|
];
|
||||||
|
|
||||||
userSettings = {
|
userSettings = {
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.whatsapp;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.whatsapp = {
|
||||||
|
enable = mkEnableOption "whatsapp";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
modules.unfree.allowedPackages = [ "whatsapp-for-linux" ];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ whatsapp-for-linux ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,6 +7,9 @@
|
||||||
# State version
|
# State version
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
||||||
|
# TODO: Move into modules
|
||||||
|
home.packages = with pkgs; [ libreoffice-fresh ];
|
||||||
|
|
||||||
# Enabled modules
|
# Enabled modules
|
||||||
modules = {
|
modules = {
|
||||||
# Window manager
|
# Window manager
|
||||||
|
@ -26,6 +29,7 @@
|
||||||
vscode.enable = true;
|
vscode.enable = true;
|
||||||
zathura.enable = true;
|
zathura.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
|
whatsapp.enable = true;
|
||||||
winbox.enable = true;
|
winbox.enable = true;
|
||||||
discord.enable = true;
|
discord.enable = true;
|
||||||
qutebrowser = {
|
qutebrowser = {
|
||||||
|
@ -35,8 +39,10 @@
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
rofi-rbw.enable = true;
|
rofi-rbw.enable = true;
|
||||||
obsidian.enable = true;
|
obsidian.enable = true;
|
||||||
|
bluetuith.enable = true;
|
||||||
|
|
||||||
# Programming languages
|
# Programming languages
|
||||||
|
haskell.enable = true;
|
||||||
nix.enable = true;
|
nix.enable = true;
|
||||||
rust.enable = true;
|
rust.enable = true;
|
||||||
|
|
||||||
|
@ -58,11 +64,25 @@
|
||||||
fonts.extraFonts = [ ];
|
fonts.extraFonts = [ ];
|
||||||
|
|
||||||
# Color scheme
|
# Color scheme
|
||||||
|
themes.oxocarbon = {
|
||||||
|
enable = false;
|
||||||
|
darkMode = false;
|
||||||
|
};
|
||||||
themes.catppuccin = {
|
themes.catppuccin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flavor = "latte";
|
flavor = "mocha";
|
||||||
};
|
};
|
||||||
themes.sakura.enable = false;
|
themes.sakura.enable = false;
|
||||||
|
|
||||||
|
# TODO: Remove
|
||||||
|
# Nice themes:
|
||||||
|
# - rose-pine-dawn: Decent, bit too yellow though.
|
||||||
|
# - sagelight: Barely readable
|
||||||
|
# - danqing-light: Too minty
|
||||||
|
# - fruit-soda: Colors too bright, background too dark.
|
||||||
|
# - solarflare-light: Nice
|
||||||
|
# darkMode = false;
|
||||||
|
# colorScheme = "${pkgs.base16-schemes}/share/themes/solarflare-light.yaml";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||||
|
|
Loading…
Reference in New Issue