Compare commits

..

No commits in common. "main" and "master" have entirely different histories.
main ... master

16 changed files with 520 additions and 447 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
hardware-configuration.nix

View File

@ -1,7 +1,3 @@
# 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).
{ {
config, config,
pkgs, pkgs,
@ -11,7 +7,6 @@
{ {
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix
./stylix.nix ./stylix.nix
]; ];
fonts = { fonts = {
@ -19,11 +14,14 @@
noto-fonts-cjk-sans noto-fonts-cjk-sans
noto-fonts noto-fonts
nerd-fonts._0xproto nerd-fonts._0xproto
material-symbols
]; ];
}; };
services.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true; programs.hyprland.enable = true;
nixpkgs.config.permittedInsecurePackages = [
"ventoy-1.1.10"
];
boot = { boot = {
@ -41,9 +39,6 @@
"udev.log_priority=3" "udev.log_priority=3"
"rd.systemd.show_status=auto" "rd.systemd.show_status=auto"
]; ];
# Hide the OS choice for bootloaders.
# It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed
loader.timeout = 0; loader.timeout = 0;
}; };
@ -59,20 +54,37 @@
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
security.sudo.enable = true; security.doas.enable = true;
security.sudo.enable = false;
security.doas.extraRules = [
{
keepEnv = true;
persist = true; # Optional, only require password verification a single time
}
];
# Use latest kernel. # Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
services.power-profiles-daemon.enable = true; services.power-profiles-daemon.enable = false;
services.upower.enable = true; services.upower.enable = true;
services.tlp = {
networking.hostName = "wired"; # Define your hostname. enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. settings = {
CPU_SCALING_GOVERNOR_ON_AC = "balanced";
# Configure network proxy if necessary CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
# networking.proxy.default = "http://user:password@proxy:port/"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; CPU_ENERGY_PERF_POLICY_ON_AC = "balanced";
# Sound CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 20;
START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge
STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
PCIE_ASPM_ON_BAT = "powersupersave";
PCIE_ASPM_ON_AC = "default";
};
};
services.auto-cpufreq.enable = true;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -81,37 +93,16 @@
}; };
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager = {
enable = true;
# Home manager angy grrr
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
}; };
# Configure keymap in X11 time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = { services.xserver.xkb = {
layout = "us"; layout = "us";
}; };
# Configure console keymap
console.keyMap = "us"; console.keyMap = "us";
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true; programs.zsh.enable = true;
users.users.lucy = { users.users.lucy = {
isNormalUser = true; isNormalUser = true;
@ -135,6 +126,12 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
openssl openssl
fastfetch fastfetch
quickshell
flashrom
usbutils
clang-tools
clang
iw
]; ];
programs.steam = { programs.steam = {
@ -152,32 +149,6 @@
Restart = "on-failure"; Restart = "on-failure";
}; };
}; };
# 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;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# 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. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

128
flake.lock generated Normal file → Executable file
View File

@ -68,6 +68,21 @@
"type": "github" "type": "github"
} }
}, },
"crane": {
"locked": {
"lastModified": 1765145449,
"narHash": "sha256-aBVHGWWRzSpfL++LubA0CwOOQ64WNLegrYHwsVuVN7A=",
"owner": "ipetkov",
"repo": "crane",
"rev": "69f538cdce5955fcd47abfed4395dc6d5194c1c5",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -84,6 +99,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -142,6 +173,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -179,6 +232,30 @@
"type": "github" "type": "github"
} }
}, },
"lanzaboote": {
"inputs": {
"crane": "crane",
"nixpkgs": [
"nixpkgs"
],
"pre-commit": "pre-commit",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1765382359,
"narHash": "sha256-RJmgVDzjRI18BWVogG6wpsl1UCuV6ui8qr4DJ1LfWZ8=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "e8c096ade12ec9130ff931b0f0e25d2f1bc63607",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v1.0.0",
"repo": "lanzaboote",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1770841267, "lastModified": 1770841267,
@ -197,11 +274,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1772433332, "lastModified": 1772773019,
"narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=", "narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cf59864ef8aa2e178cccedbe2c178185b0365705", "rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -301,15 +378,60 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1765016596,
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"stylix": "stylix" "stylix": "stylix"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1765075567,
"narHash": "sha256-KFDCdQcHJ0hE3Nt5Gm5enRIhmtEifAjpxgUQ3mzSJpA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "769156779b41e8787a46ca3d7d76443aaf68be6f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"spicetify-nix": { "spicetify-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",

View File

@ -6,28 +6,102 @@
nixvim.url = "github:nix-community/nixvim"; nixvim.url = "github:nix-community/nixvim";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
lanzaboote = {
url = "github:nix-community/lanzaboote/v1.0.0";
# Optional but recommended to limit the size of your system closure.
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
{ {
self,
nixpkgs, nixpkgs,
stylix, stylix,
spicetify-nix, spicetify-nix,
nixvim, nixvim,
home-manager, home-manager,
lanzaboote,
... ...
}: }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
in in
{ {
nixosConfigurations.cyberia = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
lanzaboote.nixosModules.lanzaboote
(
{
pkgs,
lib,
config,
...
}:
{
imports = [
./hardware-configuration-cyberia.nix
./stylix.nix
];
networking.hostName = "cyberia";
environment.systemPackages = [
pkgs.sbctl
];
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = true;
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
}
)
./configuration.nix
{
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.lucy = {
imports = [
nixvim.homeModules.nixvim
spicetify-nix.homeManagerModules.spicetify
./home/home.nix
];
};
}
];
};
nixosConfigurations.wired = nixpkgs.lib.nixosSystem { nixosConfigurations.wired = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [
stylix.nixosModules.stylix stylix.nixosModules.stylix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{
networking.hostName = "wired";
imports = [
./hardware-configuration-wired.nix
./stylix.nix
];
}
./configuration.nix ./configuration.nix
{ {
@ -47,7 +121,8 @@
}; };
homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration { homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration {
inherit pkgs; pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = { inherit inputs; };
modules = [ modules = [
stylix.homeModules.stylix stylix.homeModules.stylix
nixvim.homeModules.nixvim nixvim.homeModules.nixvim

View File

@ -0,0 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/f1ed7012-39d5-4cac-8603-16767a3a3449";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/E513-A53F";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -0,0 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/fbea1f31-4ad2-42f7-857a-15f7a1250793";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/9B5B-14D1";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/440b6cb1-02bf-4bda-998c-575589ec415a"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -1,4 +1,9 @@
{ config, pkgs, ... }: {
config,
pkgs,
lib,
...
}:
{ {
imports = [ imports = [
./hyprland.nix ./hyprland.nix
@ -17,6 +22,16 @@
# You should not change this value, even if you update Home Manager. If you do # You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager # want to update the value, then make sure to first check the Home Manager
# release notes. # release notes.
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.runCommand "teto-cursors" { } ''
mkdir -p $out/share/icons
ln -s /home/lucy/.icons/tetoW/ $out/share/icons/
'';
name = "tetoW";
size = 48;
};
programs.zsh = { programs.zsh = {
enable = true; enable = true;
@ -35,11 +50,15 @@
theme = "gentoo"; theme = "gentoo";
}; };
}; };
home.activation = {
reloadQs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
$DRY_RUN_CMD ${pkgs.quickshell}/bin/qs ipc call colors reload
'';
};
home.stateVersion = "24.05"; # Please read the comment before changing. home.stateVersion = "24.05"; # Please read the comment before changing.
home.shell.enableShellIntegration = true; home.shell.enableShellIntegration = true;
home.shellAliases = { home.shellAliases = {
nrs = "sudo nixos-rebuild switch --flake /home/lucy/nixos-conf/"; nrs = "doas nixos-rebuild switch --flake /home/lucy/nixos/";
}; };
} }

View File

@ -3,16 +3,20 @@
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
"monitor" = ",preferred,auto,1"; monitor = [
"DP-5,highrr,auto-left,1,bitdepth,10"
"HDMI-A-3,preffered,auto-right,1"
"eDP-1,preffered,auto,1,bitdepth,10,cm,auto"
];
general = { general = {
border_size = 2; border_size = 4;
gaps_in = 5; gaps_in = 5;
gaps_out = 10; gaps_out = 10;
layout = "dwindle"; layout = "dwindle";
}; };
decoration = { decoration = {
rounding = 15; rounding = 24;
blur = { blur = {
enabled = true; enabled = true;
size = 3; size = 3;
@ -29,32 +33,30 @@
bezier = [ bezier = [
"smoothIn, 0.25, 1, 0.5, 1" "smoothIn, 0.25, 1, 0.5, 1"
"smoothOut, 0.25, 1, 0.5, 1" "smoothOut, 0.25, 1, 0.5, 1"
"overshot, 0.4, 0.8, 0.5, 1" "overshot, 0.23, 0.5, 0.36, 1.1"
"candy, 0.68, -0.6, 0.32, 1.5" "candy, 0.68, -0.6, 0.32, 1.5"
]; ];
animation = [ animation = [
"fade, 1, 10, overshot" "fade, 1, 6, overshot"
"fadeIn, 1, 5, overshot" "fadeIn, 1, 5, overshot"
"fadeOut, 1, 5, overshot" "fadeOut, 1, 5, overshot"
"fadeDim, 1, 5, overshot" "fadeDim, 1, 5, overshot"
"windows, 1, 1, smoothIn, popin" "windows, 1, 3, overshot, popin 80%"
"border, 1, 10, default" "border, 1, 6, default"
"workspaces, 1, 6, overshot, slide" "workspaces, 1, 6, overshot, fade"
"specialWorkspace, 1, 8, smoothOut, slidevert" "specialWorkspace, 1, 8, smoothOut, slidevert"
]; ];
}; };
input = { input = {
kb_layout = "de"; kb_layout = "eu";
kb_options = "nodeadkeys";
sensitivity = 0.3; sensitivity = 0.3;
accel_profile = "flat"; accel_profile = "flat";
natural_scroll = true; natural_scroll = false;
}; };
exec-once = [ exec-once = [
"swww-daemon" "qs"
"dunst"
]; ];
"bind" = [ "bind" = [
@ -104,6 +106,14 @@
"$mod SHIFT, right, movewindow, r" "$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u" "$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d" "$mod SHIFT, down, movewindow, d"
"$mod, h, movefocus, l"
"$mod, l, movefocus, r"
"$mod, k, movefocus, u"
"$mod, j, movefocus, d"
"$mod SHIFT, h, movewindow, l"
"$mod SHIFT, l, movewindow, r"
"$mod SHIFT, k, movewindow, u"
"$mod SHIFT, j, movewindow, d"
"$mod, P, exec, /home/lucy/.local/bin/powermenu" "$mod, P, exec, /home/lucy/.local/bin/powermenu"
]; ];
@ -123,14 +133,5 @@
"$mod, mouse:272, movewindow" "$mod, mouse:272, movewindow"
"alt, mouse:272, resizewindow" "alt, mouse:272, resizewindow"
]; ];
layerrule = [
"noanim, walker"
];
windowrule = [
"float, class:^(waypaper)"
"float, class:^(Ryujinx)"
"suppressevent maximize, class:.*"
"nofocus, class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
}; };
} }

View File

@ -12,13 +12,9 @@
servers = { servers = {
bashls.enable = true; bashls.enable = true;
pyright.enable = true;
clangd.package = pkgs.clang-tools;
qmlls.enable = true; qmlls.enable = true;
qmlls.package = null;
qmlls.cmd = [
"qmlls"
"-E"
];
clangd.package = null;
clangd.enable = true; clangd.enable = true;
clangd.cmd = [ clangd.cmd = [
"clangd" "clangd"
@ -33,50 +29,19 @@
conform-nvim = { conform-nvim = {
enable = true; enable = true;
settings = { settings = {
format_on_save = {
lspFormat = "fallback";
timeoutMs = 500;
};
formatters_by_ft = { formatters_by_ft = {
lua = [ "stylua" ]; lua = [ "stylua" ];
nix = [ "nixfmt" ]; nix = [ "nixfmt" ];
python = [ "ruff_format" ]; c = [ "clang-format" ];
javascript = [ "prettier" ]; cpp = [ "clang-format" ];
typescript = [ "prettier" ]; python = [ "black" ];
svelte = [ "prettier" ];
css = [ "prettier" ];
json = [ "prettier" ];
html = [ "prettier" ];
}; };
}; };
}; };
blink-cmp = {
cmp = {
enable = true; enable = true;
autoEnableSources = true; };
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
mapping = {
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<C-e>" = "cmp.mapping.abort()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
}; };
window.completion.border = "rounded";
window.documentation.border = "rounded";
};
};
};
}; };
} }

View File

@ -56,6 +56,11 @@
mode = "n"; mode = "n";
action = ":BufferLineGoToBuffer last<CR>"; action = ":BufferLineGoToBuffer last<CR>";
} }
{
key = "<leader>w";
mode = "n";
action = "<cmd>bdelete!<cr>";
}
{ {
key = "<A-S-e>"; key = "<A-S-e>";
mode = "n"; mode = "n";
@ -69,12 +74,22 @@
{ {
key = "<C-F>"; key = "<C-F>";
mode = "n"; mode = "n";
action = "<Cmd>lua vim.lsp.buf.format()<CR>"; action = "<cmd>lua require('conform').format({ async = true, lsp_fallback = true }) <cr>";
} }
{ {
key = "<leader>t"; key = "<leader>t";
mode = "n"; mode = "n";
action = "<cmd>terminal<cr>"; action = "<cmd>terminal<cr>";
} }
{
key = "<leader>ff";
mode = "n";
action = ":lua Snacks.picker.files() <cr>";
}
{
key = "<leader>lg";
mode = "n";
action = ":lua Snacks.picker.grep() <cr>";
}
]; ];
} }

View File

@ -15,6 +15,9 @@
extraPackages = with pkgs; [ extraPackages = with pkgs; [
nixd nixd
nixpkgs-fmt nixpkgs-fmt
stylua
black
clang
]; ];
globals.mapleader = " "; globals.mapleader = " ";
defaultEditor = true; defaultEditor = true;

View File

@ -1,59 +1,48 @@
{ lib, ... }: { pkgs, ... }:
let
button = shortcut: text: action: {
type = "button";
val = text;
on_press.__raw = "function() vim.cmd([[${action}]]) end";
opts = {
keymap = [
"n"
shortcut
action
{
noremap = true;
silent = true;
}
];
shortcut = shortcut;
position = "center";
width = 30;
align_shortcut = "right";
hl_shortcut = "Keyword";
};
};
in
{ {
programs.nixvim.plugins = { programs.nixvim.plugins = {
neocord.enable = true; neocord.enable = true;
colorizer.enable = true; colorizer.enable = true;
nvim-autopairs.enable = true; nvim-autopairs.enable = true;
treesitter = { treesitter = {
enable = true; enable = true;
highlight.enable = true;
indent.enable = true;
settings = { settings = {
highlighting.enable = true; install_dir.__raw = "vim.fs.joinpath(vim.fn.stdpath('data'), 'site')";
auto_install = true;
ignore_install = [ "ipkg" ];
};
};
render-markdown = {
enable = true;
settings = {
bullet = {
icons = [
" "
" "
" "
];
right_pad = 1;
};
code = {
above = " ";
below = " ";
border = "thick";
language_pad = 2;
left_pad = 2;
position = "right";
right_pad = 2;
sign = true;
width = "block";
};
heading = {
border = true;
position = "inline";
sign = false;
width = "full";
};
render_modes = true;
signs = {
enabled = true;
}; };
}; };
};
alpha = { alpha = {
enable = true; enable = true;
settings.layout = [ settings.layout = [
{ {
type = "padding"; type = "padding";
val = 20; val = 2;
} }
{ {
type = "text"; type = "text";
@ -89,84 +78,24 @@
} }
{ {
type = "group"; type = "group";
opts = {
position = "center";
};
val = [ val = [
{ (button "f" " Find File" "<cmd>lua Snacks.picker.files()<cr>")
type = "button"; (button "g" " Find Text" "<cmd>lua Snacks.picker.grep()<cr>")
val = " new file "; (button "r" " Recent Files" "<cmd>lua Snacks.dashboard.pick('oldfiles')<cr>")
on_press.__raw = "function() vim.cmd[[ene]] end"; (button "q" " Quit" "<cmd>qa<cr>")
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " search files ";
on_press.__raw = "function() vim.cmd[[Telescope find_files]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " live grep ";
on_press.__raw = "function() vim.cmd[[Telescope live_grep]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " quit neovim ";
on_press.__raw = "function() vim.cmd[[qa]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
]; ];
opts = {
position = "center";
hl = "Keyword";
};
} }
]; ];
}; };
nvim-tree.enable = true; snacks = {
telescope = {
enable = true; enable = true;
settings = { settings = {
pickers = { notifier.enabled = true;
find_files = { picker.enabled = true;
find_command = [ indent.enabled = true;
"fd"
"--unrestricted"
"--no-ignore"
];
};
};
defaults = {
sorting_strategy = "ascending";
selection_caret = "> ";
};
};
keymaps = {
"<leader>fg" = "live_grep";
"<leader>ff" = "find_files";
}; };
}; };
@ -178,21 +107,23 @@
section_separators = { section_separators = {
left = ""; left = "";
right = ""; right = "";
a = "";
b = "";
c = "";
x = "";
y = "";
z = "";
}; };
component_separators = {
left = "";
right = "";
}; # Fixed: Added missing braces
}; };
sections = { sections = {
lualine_a = [ "mode" ]; lualine_a = [ "mode" ];
lualine_b = [ "branch" ]; lualine_b = [ "diagnostics" ];
lualine_c = [ "filename" ]; lualine_c = [
"filename"
"branch"
"navic"
];
lualine_x = [ lualine_x = [
"diagnostics"
"filetype" "filetype"
"lsp_status"
]; ];
lualine_y = [ "progress" ]; lualine_y = [ "progress" ];
lualine_z = [ "location" ]; lualine_z = [ "location" ];
@ -202,5 +133,6 @@
bufferline.enable = true; bufferline.enable = true;
web-devicons.enable = true; web-devicons.enable = true;
nvim-tree.enable = true;
}; };
} }

View File

@ -1,14 +1,13 @@
{ {
config, config,
pkgs, pkgs,
inputs,
... ...
}: }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
nixfmt nixfmt
google-chrome google-chrome
swww
waypaper
nemo nemo
cava cava
pavucontrol pavucontrol
@ -18,7 +17,21 @@
dconf dconf
fd fd
ripgrep ripgrep
ani-cli
element-desktop
gnome-tweaks
btop
ventoy
playerctl
impala
(discord.override {
withOpenASAR = true; # can do this here too
withVencord = true;
})
]; ];
programs.obsidian = {
enable = true;
};
programs.git = { programs.git = {
enable = true; enable = true;
settings = { settings = {
@ -28,105 +41,6 @@
}; };
programs.spicetify.enable = true; programs.spicetify.enable = true;
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "~/.config/fastfetch/logo.txt";
};
display = {
separator = " ";
};
modules = [
{
type = "title";
key = "User";
}
{
type = "custom";
text = "";
}
{
type = "os";
key = "OS";
}
{
type = "custom";
text = "";
}
{
type = "kernel";
key = "Kernel";
}
{
type = "custom";
text = "";
}
{
type = "packages";
key = "Packages";
}
{
type = "custom";
text = "";
}
{
type = "cpu";
key = "CPU";
}
{
type = "custom";
text = "";
}
{
type = "gpu";
key = "GPU";
}
{
type = "custom";
text = "";
}
{
type = "memory";
key = "Memory";
}
{
type = "custom";
text = "";
}
{
type = "disk";
key = "Disk";
}
{
type = "custom";
text = "";
}
{
type = "display";
key = "Resolution";
}
{
type = "custom";
text = "";
}
{
type = "shell";
key = "Shell";
}
];
};
};
programs.foot = { programs.foot = {
enable = true; enable = true;
settings = { settings = {
@ -134,7 +48,7 @@
style = "underline"; style = "underline";
}; };
main = { main = {
pad = "20x20"; pad = "14x14";
initial-window-size-pixels = "800x600"; initial-window-size-pixels = "800x600";
}; };
}; };
@ -155,24 +69,15 @@
}; };
}; };
programs.vesktop = { programs.vesktop = {
enable = true; enable = false;
settings = { settings = {
staticTitle = true; staticTitle = true;
arRPC = true; arRPC = true;
customTitleBar = false;
}; };
vencord.settings.plugins = { vencord.settings.plugins = {
MessageLogger.enabled = true; MessageLogger.enabled = true;
MessageClickActions.enabled = true; MessageClickActions.enabled = true;
}; };
}; };
services.dunst = {
enable = true;
settings = {
global = {
offset = "10x32";
corner_radius = config.wayland.windowManager.hyprland.settings.decoration.rounding;
frame_width = config.wayland.windowManager.hyprland.settings.general.border_size;
};
};
};
} }

View File

@ -1,16 +1,25 @@
{
config,
pkgs,
...
}:
{ {
stylix = { stylix = {
image = ./wallpaper.png; image = ./wallpaper.png;
polarity = "dark";
targets = { targets = {
waybar.enable = true; waybar.enable = true;
waybar.addCss = false; waybar.addCss = false;
hyprland.enable = true; hyprland.enable = true;
nixvim.enable = true;
foot.enable = true;
hyprland.hyprpaper.enable = false; hyprland.hyprpaper.enable = false;
gnome.image.enable = false;
gnome.enable = false;
kde.enable = false;
fuzzel.enable = true;
dunst.enable = true;
vencord.enable = true;
vencord.fonts.enable = true;
gtksourceview.enable = false;
obsidian.vaultNames = [
"notes"
];
}; };
}; };
} }

View File

@ -1,7 +1,7 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
programs.waybar = { programs.waybar = {
enable = true; enable = false;
systemd.enable = true; systemd.enable = true;
style = '' style = ''
@ -12,15 +12,14 @@
window#waybar { window#waybar {
background-color: transparent; background-color: transparent;
border-radius: ${builtins.toString config.wayland.windowManager.hyprland.settings.decoration.rounding}; border-radius: ${toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
} }
#workspaces button { #workspaces button {
all: unset; all: unset;
padding: 1px 6px; padding: 1px 3px;
margin: 2px;
color: alpha(@base05, 0.5); color: alpha(@base05, 0.5);
border-radius: 1em; border-radius: ${toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
} }
@ -30,9 +29,9 @@
#workspaces { #workspaces {
margin: 0px; margin: 0px;
padding: 2px; padding: 2px 6px;
background-color: @base00; background-color: @base00;
border-radius: 1em; border-radius: ${toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
} }
#mpris, #mpris,
#backlight, #backlight,
@ -45,7 +44,7 @@
padding: 2px 10px; padding: 2px 10px;
background-color: @base00; background-color: @base00;
color: @base05; color: @base05;
border-radius: ${builtins.toString config.wayland.windowManager.hyprland.settings.decoration.rounding}; border-radius: ${toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
} }
#tray { #tray {
@ -54,6 +53,8 @@
window#waybar.empty #window { window#waybar.empty #window {
background: none; background: none;
padding: 0px;
margin: 0px;
} }
#custom-sep { #custom-sep {
color: alpha(@base05, 0.5); color: alpha(@base05, 0.5);
@ -69,14 +70,14 @@
spacing = 4; spacing = 4;
modules-left = [ modules-left = [
"hyprland/workspaces" "hyprland/workspaces"
"hyprland/window"
"mpris" "mpris"
]; ];
modules-center = [
"hyprland/window"
];
modules-right = [ modules-right = [
"backlight"
"pulseaudio" "pulseaudio"
"upower" "upower"
"power-profiles-daemon"
"clock" "clock"
"tray" "tray"
]; ];
@ -95,6 +96,7 @@
"tray" = { "tray" = {
icon-size = 14; icon-size = 14;
spacing = 5;
}; };
"hyprland/workspaces" = { "hyprland/workspaces" = {
@ -110,11 +112,6 @@
tooltip-spacing = 20; tooltip-spacing = 20;
}; };
"power-profiles-daemon" = {
format = "{profile}";
format-tooltip = "Power profile: {profile}\nDriver: {driver}";
};
"backlight" = { "backlight" = {
format = "{icon} {percent}%"; format = "{icon} {percent}%";
format-icons = [ format-icons = [

View File

@ -2,20 +2,14 @@
config, config,
lib, lib,
pkgs, pkgs,
apple-fonts,
... ...
}: }:
{ {
stylix.opacity = { stylix.opacity = {
terminal = 0.8; terminal = 1.0;
desktop = 1.0; desktop = 1.0;
popups = 1.0; popups = 1.0;
}; };
stylix.cursor = {
name = "macOS";
package = pkgs.apple-cursor;
size = 24;
};
stylix.icons = { stylix.icons = {
enable = true; enable = true;
dark = "Papirus-Dark"; dark = "Papirus-Dark";
@ -25,11 +19,13 @@
stylix = { stylix = {
enable = true; enable = true;
autoEnable = true; autoEnable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
polarity = "dark"; polarity = "dark";
image = ./home/wallpaper.png; image = ./home/wallpaper.png;
targets = { targets = {
qt.platform = lib.mkForce "qtct"; qt.platform = lib.mkForce "qtct";
gnome.enable = true;
gtksourceview.enable = false;
}; };
fonts = { fonts = {
sizes = { sizes = {
@ -46,8 +42,8 @@
name = config.stylix.fonts.monospace.name; name = config.stylix.fonts.monospace.name;
}; };
monospace = { monospace = {
package = apple-fonts.packages.${pkgs.system}.sf-mono-nerd; package = pkgs.maple-mono.NF;
name = "SFMono Nerd Font"; name = "Maple Mono NF";
}; };
emoji = { emoji = {