(desktop) Gen 494: reformatted several files using alejandra

This commit is contained in:
pagedMov
2024-10-15 20:16:32 -04:00
parent 1441353258
commit bd1add14bb
98 changed files with 6440 additions and 3256 deletions

4
flake.lock generated
View File

@@ -870,7 +870,7 @@
}, },
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-wk+pdZUCu13qvhHBrycwrvGnRUaf6dbLchr3yF96C1c=", "narHash": "sha256-+aYqfRtAoaA4wqPfy4j2biNTVj2TtEmmHXDKOzNoU6g=",
"path": "./pkgs/nixvim", "path": "./pkgs/nixvim",
"type": "path" "type": "path"
}, },
@@ -1016,7 +1016,7 @@
}, },
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-S3crmqg/CDKf+QTwnZUR6udyjsvqS0P0y56wGuJmOno=", "narHash": "sha256-G8k9Ue2ZggJXD17cDXQubY+b4utp2YLnSpQWe06mR4E=",
"path": "./pkgs/toilet", "path": "./pkgs/toilet",
"type": "path" "type": "path"
}, },

146
flake.nix
View File

@@ -1,77 +1,83 @@
{ {
description = "pagedMov's NixOS configuration"; description = "pagedMov's NixOS configuration";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hypr-contrib.url = "github:hyprwm/contrib"; hypr-contrib.url = "github:hyprwm/contrib";
hyprpicker.url = "github:hyprwm/hyprpicker"; hyprpicker.url = "github:hyprwm/hyprpicker";
hyprland = { hyprland = {
type = "git"; type = "git";
url = "https://github.com/hyprwm/Hyprland"; url = "https://github.com/hyprwm/Hyprland";
submodules = true; submodules = true;
}; };
catppuccin-bat = { catppuccin-bat = {
url = "github:catppuccin/bat"; url = "github:catppuccin/bat";
flake = false; flake = false;
}; };
catppuccin-cava = { catppuccin-cava = {
url = "github:catppuccin/cava"; url = "github:catppuccin/cava";
flake = false; flake = false;
}; };
catppuccin-starship = { catppuccin-starship = {
url = "github:catppuccin/starship"; url = "github:catppuccin/starship";
flake = false; flake = false;
}; };
catppuccin-yazi = { catppuccin-yazi = {
url = "github:catppuccin/yazi"; url = "github:catppuccin/yazi";
flake = false; flake = false;
}; };
spicetify-nix = { spicetify-nix = {
url = "github:gerg-l/spicetify-nix"; url = "github:gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
#glasshouse-desktop dots #glasshouse-desktop dots
nvim.url = "path:./pkgs/nixvim"; nvim.url = "path:./pkgs/nixvim";
toilet.url = "path:./pkgs/toilet"; toilet.url = "path:./pkgs/toilet";
}; };
outputs = { nixpkgs, nur, home-manager, self, nvim, toilet, ... }@inputs: outputs = {
let nixpkgs,
system = "x86_64-linux"; nur,
username = "pagedmov"; home-manager,
in self,
{ nvim,
nixosConfigurations = { toilet,
desktop = nixpkgs.lib.nixosSystem { ...
specialArgs = { } @ inputs: let
host = "desktop"; system = "x86_64-linux";
inherit self inputs username; username = "pagedmov";
}; in {
inherit system; nixosConfigurations = {
modules = [ desktop = nixpkgs.lib.nixosSystem {
./hosts/desktop specialArgs = {
nur.nixosModules.nur host = "desktop";
]; inherit self inputs username;
}; };
inherit system;
laptop = nixpkgs.lib.nixosSystem { modules = [
specialArgs = { ./hosts/desktop
host = "laptop"; nur.nixosModules.nur
inherit self inputs username; ];
}; };
modules = [
./hosts/laptop laptop = nixpkgs.lib.nixosSystem {
nur.nixosModules.nur specialArgs = {
]; host = "laptop";
}; inherit self inputs username;
}; };
}; modules = [
./hosts/laptop
nur.nixosModules.nur
];
};
};
};
} }

View File

@@ -1,12 +1,16 @@
{ host, inputs, username, nur, pkgs, self, ... }:
{ {
imports = [ host,
./../../modules/sys inputs,
./hardware.nix username,
./settings.nix nur,
./steam.nix pkgs,
]; self,
...
}: {
imports = [
./../../modules/sys
./hardware.nix
./settings.nix
./steam.nix
];
} }

View File

@@ -1,58 +1,62 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, username, ... }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; config,
lib,
modulesPath,
username,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/a687e4e2-8665-43f1-9d62-3e3f21423579"; device = "/dev/disk/by-uuid/a687e4e2-8665-43f1-9d62-3e3f21423579";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/6EAD-2C48"; device = "/dev/disk/by-uuid/6EAD-2C48";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/nvme0n1p5"; device = "/dev/nvme0n1p5";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/home/${username}/steamlib" = fileSystems."/home/${username}/steamlib" = {
{ device = "/dev/nvme0n1p1"; device = "/dev/nvme0n1p1";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = { hardware = {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
keyboard.uhk.enable = true; keyboard.uhk.enable = true;
amdgpu.amdvlk = { amdgpu.amdvlk = {
enable = false; enable = false;
support32Bit.enable = true; support32Bit.enable = true;
}; };
bluetooth = { bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
}; };
}; };
} }

View File

@@ -1,32 +1,30 @@
{ pkgs, ... }: {pkgs, ...}: {
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
{ environment = {
system.stateVersion = "24.05"; variables = {
nixpkgs.config.allowUnfree = true; XCURSOR_SIZE = "24";
nix = { PATH = "${pkgs.clang-tools}/bin:$PATH";
settings = { };
auto-optimise-store = true; shells = with pkgs; [
experimental-features = [ "nix-command" "flakes" ]; zsh
substituters = [ "https://nix-gaming.cachix.org" ]; bash
}; ];
gc = { };
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
environment = { time.timeZone = "America/New_York";
variables = { i18n.defaultLocale = "en_US.UTF-8";
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
} }

View File

@@ -1,8 +1,6 @@
{ ... }: {...}: {
programs.steam = {
{ enable = true;
programs.steam = { remotePlay.openFirewall = true;
enable = true; };
remotePlay.openFirewall = true;
};
} }

View File

@@ -1,13 +1,15 @@
{ config, pkgs, ... }: {
config,
{ pkgs,
boot = { ...
kernelModules = ["acpi_call"]; }: {
extraModulePackages = with config.boot.kernelPackages; boot = {
[ kernelModules = ["acpi_call"];
acpi_call extraModulePackages = with config.boot.kernelPackages;
cpupower [
] acpi_call
++ [pkgs.cpupower-gui]; cpupower
}; ]
++ [pkgs.cpupower-gui];
};
} }

View File

@@ -1,12 +1,18 @@
{ host, inputs, pkgs, config, self, username, ... }:
{ {
imports = [ host,
./../../modules/sys inputs,
./hardware.nix pkgs,
./boot.nix config,
./services.nix self,
./environment.nix username,
./settings.nix ...
]; }: {
imports = [
./../../modules/sys
./hardware.nix
./boot.nix
./services.nix
./environment.nix
./settings.nix
];
} }

View File

@@ -1,20 +1,18 @@
{ pkgs, ... }: {pkgs, ...}: {
environment = {
{ variables = {
environment = { XCURSOR_SIZE = "24";
variables = { PATH = "${pkgs.clang-tools}/bin:$PATH";
XCURSOR_SIZE = "24"; };
PATH = "${pkgs.clang-tools}/bin:$PATH"; shells = with pkgs; [
}; zsh
shells = with pkgs; [ bash
zsh ];
bash systemPackages = with pkgs; [
]; acpi
systemPackages = with pkgs; [ brightnessctl
acpi cpupower-gui
brightnessctl powertop
cpupower-gui ];
powertop };
];
};
} }

View File

@@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/334f742b-460f-43f8-b819-33086adfa9fb"; device = "/dev/disk/by-uuid/334f742b-460f-43f8-b819-33086adfa9fb";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/ECD9-F43B"; device = "/dev/disk/by-uuid/ECD9-F43B";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@@ -1,50 +1,47 @@
{ ... }: {...}: {
services = {
keyd = {
enable = true;
keyboards.default = {
ids = ["*"];
settings.main = {
capslock = "esc";
};
};
};
{ power-profiles-daemon.enable = true;
services = {
keyd = { upower = {
enable = true; enable = true;
keyboards.default = { percentageLow = 20;
ids = [ "*" ]; percentageCritical = 5;
settings.main = { percentageAction = 3;
capslock = "esc"; criticalPowerAction = "PowerOff";
}; };
};
};
power-profiles-daemon.enable = true;
upower = { tlp.settings = {
enable = true; CPU_ENERGY_PERF_POLICY_ON_AC = "power";
percentageLow = 20; CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
percentageCritical = 5;
percentageAction = 3;
criticalPowerAction = "PowerOff";
};
tlp.settings = { CPU_BOOST_ON_AC = 1;
CPU_ENERGY_PERF_POLICY_ON_AC = "power"; CPU_BOOST_ON_BAT = 1;
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_BOOST_ON_AC = 1; CPU_HWP_DYN_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1; CPU_HWP_DYN_BOOST_ON_BAT = 1;
CPU_HWP_DYN_BOOST_ON_AC = 1; PLATFORM_PROFILE_ON_AC = "performance";
CPU_HWP_DYN_BOOST_ON_BAT = 1; PLATFORM_PROFILE_ON_BAT = "performance";
PLATFORM_PROFILE_ON_AC = "performance"; INTEL_GPU_MIN_FREQ_ON_AC = 500;
PLATFORM_PROFILE_ON_BAT = "performance"; INTEL_GPU_MIN_FREQ_ON_BAT = 500;
# INTEL_GPU_MAX_FREQ_ON_AC=0;
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
INTEL_GPU_MIN_FREQ_ON_AC=500; PCIE_ASPM_ON_AC = "default";
INTEL_GPU_MIN_FREQ_ON_BAT=500; PCIE_ASPM_ON_BAT = "powersupersave";
# INTEL_GPU_MAX_FREQ_ON_AC=0; };
# INTEL_GPU_MAX_FREQ_ON_BAT=0; };
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
PCIE_ASPM_ON_AC = "default";
PCIE_ASPM_ON_BAT = "powersupersave";
};
};
} }

View File

@@ -1,25 +1,21 @@
{ ... }: {...}: {
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
{ time.timeZone = "America/New_York";
system.stateVersion = "24.05"; i18n.defaultLocale = "en_US.UTF-8";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-gaming.cachix.org" ];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
powerManagement.cpuFreqGovernor = "performance";
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
powerManagement.cpuFreqGovernor = "performance";
} }

View File

@@ -1,29 +1,33 @@
{ host, nur, self, inputs, username, config, home-manager, ... }:
{ {
imports = host,
[ (import ./programs/btop.nix) ] nur,
++ [ (import ./programs/yazi.nix) ] self,
++ [ (import ./programs/kitty.nix) ] inputs,
++ [ (import ./programs/fuzzel.nix) ] username,
++ [ (import ./programs/eza.nix) ] config,
++ [ (import ./programs/cava.nix) ] home-manager,
++ [ (import ./programs/bat.nix) ] ...
++ [ (import ./programs/fzf.nix) ] }: {
++ [ (import ./programs/git.nix) ] imports =
++ [ (import ./programs/password-store.nix) ] [(import ./programs/btop.nix)]
++ [ (import ./programs/autojump.nix) ] ++ [(import ./programs/yazi.nix)]
++ [ (import ./environment/gtk.nix) ] ++ [(import ./programs/kitty.nix)]
++ [ (import ./environment/spicetify.nix) ] ++ [(import ./programs/fuzzel.nix)]
++ [ (import ./environment/starship.nix) ] ++ [(import ./programs/eza.nix)]
++ [ (import ./environment/desktop_userpkgs.nix) ] ++ [(import ./programs/cava.nix)]
++ [ (import ./environment/zshell.nix) ] ++ [(import ./programs/bat.nix)]
++ [ (import ./firefox/firefox.nix) ] ++ [(import ./programs/fzf.nix)]
++ [ (import ./hyprland) ] ++ [(import ./programs/git.nix)]
++ [ (import ./scripts ) ] ++ [(import ./programs/password-store.nix)]
++ [ (import ./swaync/swaync.nix) ] ++ [(import ./programs/autojump.nix)]
++ [ (import ./waybar) ]; ++ [(import ./environment/gtk.nix)]
++ [(import ./environment/spicetify.nix)]
++ [(import ./environment/starship.nix)]
++ [(import ./environment/desktop_userpkgs.nix)]
++ [(import ./environment/zshell.nix)]
++ [(import ./firefox/firefox.nix)]
++ [(import ./hyprland)]
++ [(import ./scripts)]
++ [(import ./swaync/swaync.nix)]
++ [(import ./waybar)];
} }

View File

@@ -1,37 +1,39 @@
{ pkgs, inputs, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in
{ {
home.packages = with pkgs; [ pkgs,
gtk3 inputs,
uhk-agent ...
sqlite }: let
zathura nvim = inputs.nvim.packages."x86_64-linux".default;
gimp toilet = inputs.toilet.packages."x86_64-linux".default;
imagemagick in {
yt-dlp home.packages = with pkgs; [
vlc gtk3
lolcat uhk-agent
speedtest-cli sqlite
vesktop zathura
qbittorrent gimp
obs-studio imagemagick
neovide yt-dlp
zsh vlc
zsh-syntax-highlighting lolcat
zsh-history-substring-search speedtest-cli
zsh-autosuggestions vesktop
audacity qbittorrent
snes9x-gtk obs-studio
rustup neovide
libreoffice zsh
handbrake zsh-syntax-highlighting
gtrash zsh-history-substring-search
ripgrep zsh-autosuggestions
nvim audacity
toilet snes9x-gtk
python3 rustup
]; libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
} }

View File

@@ -1,10 +1,12 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = [ home.packages = [
pkgs.nerdfonts pkgs.nerdfonts
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" "Noto" ]; }) (pkgs.nerdfonts.override {fonts = ["JetBrainsMono" "Noto"];})
pkgs.twemoji-color-font pkgs.twemoji-color-font
pkgs.noto-fonts-emoji pkgs.noto-fonts-emoji
]; ];

View File

@@ -1,34 +1,36 @@
{ pkgs, inputs, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in
{ {
home.packages = with pkgs; [ pkgs,
gtk3 inputs,
uhk-agent ...
sqlite }: let
starship nvim = inputs.nvim.packages."x86_64-linux".default;
zathura toilet = inputs.toilet.packages."x86_64-linux".default;
imagemagick in {
yt-dlp home.packages = with pkgs; [
vlc gtk3
speedtest-cli uhk-agent
vesktop sqlite
obs-studio starship
neovide zathura
chromium imagemagick
zsh yt-dlp
zsh-syntax-highlighting vlc
zsh-history-substring-search speedtest-cli
zsh-autosuggestions vesktop
rustup obs-studio
libreoffice neovide
handbrake chromium
gtrash zsh
ripgrep zsh-syntax-highlighting
nvim zsh-history-substring-search
toilet zsh-autosuggestions
python3 rustup
]; libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
} }

View File

@@ -1,9 +1,11 @@
{ pkgs, lib, inputs, ...}:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{ {
pkgs,
lib,
inputs,
...
}: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"spotify" "spotify"
@@ -13,12 +15,12 @@ in
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
adblock adblock
hidePodcasts hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names) shuffle # shuffle+ (special characters are sanitized out of extension names)
]; ];
theme = spicePkgs.themes.catppuccin; theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha"; colorScheme = "mocha";
}; };
} }

View File

@@ -1,61 +1,63 @@
{ lib, inputs, ... }:
{ {
programs.starship = { lib,
enable = true; inputs,
enableZshIntegration = false; ...
settings = { }: {
add_newline = true; programs.starship = {
right_format = "($custom)"; enable = true;
enableZshIntegration = false;
settings =
{
add_newline = true;
right_format = "($custom)";
format = lib.concatStrings [ format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)" "($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)" "($git_branch)($git_status)($rust)($nix-shell)"
"($directory)" "($directory)"
"$line_break[ > ](bold #89b4fa)" "$line_break[ > ](bold #89b4fa)"
]; ];
username = {
username = { show_always = true;
show_always = true; style_user = "bold white";
style_user = "bold white"; format = "[$user]($style)";
format = "[$user]($style)"; };
}; directory = {
directory = { format = "\n[$path](bold cyan)[/](bold green) ";
format = "\n[$path](bold cyan)[/](bold green) "; style = "bold #b4befe";
style = "bold #b4befe"; };
};
character = { character = {
success_symbol = "[ -> ](bold green)"; success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)"; error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)"; # error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
}; };
cmd_duration = { cmd_duration = {
format = "[ 󰔛 $duration]($style)"; format = "[ 󰔛 $duration]($style)";
disabled = false; disabled = false;
style = "bg:none fg:#f9e2af"; style = "bg:none fg:#f9e2af";
show_notifications = false; show_notifications = false;
min_time_to_notify = 60000; min_time_to_notify = 60000;
}; };
git_branch = { git_branch = {
format = "\non [$symbol$branch](bold purple)"; format = "\non [$symbol$branch](bold purple)";
symbol = " "; symbol = " ";
truncation_length = 15; truncation_length = 15;
style = "bold purple"; style = "bold purple";
}; };
custom.shellver = { custom.shellver = {
command = "zsh --version"; command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"''; when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = ""; symbol = "";
style = "bold magenta"; style = "bold magenta";
}; };
palette = "catppuccin_mocha"; palette = "catppuccin_mocha";
} // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml"); }
}; // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
};
} }

View File

@@ -1,138 +1,134 @@
{ self, ... }: {self, ...}: {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
{ sessionVariables = {
programs.zoxide = { SOUNDS_ENABLED = "1";
enable = true; EDITOR = "/nixbin/nvim";
enableZshIntegration = true; SUDO_EDITOR = "/nixbin/nvim";
}; VISUAL = "/nixbin/nvim";
programs.zsh = { LANG = "en_US.UTF-8";
enable = true; BROWSER = "/nixbin/firefox";
NVIM = "${self}/nixvim/config/";
HYPRCONF = "${self}/hyprland/";
SYSCONF = "${self}/glasshouse-desktop/sys";
};
sessionVariables = { oh-my-zsh = {
SOUNDS_ENABLED = "1"; enable = true;
EDITOR = "/nixbin/nvim"; plugins = ["git" "fzf"];
SUDO_EDITOR = "/nixbin/nvim"; };
VISUAL = "/nixbin/nvim";
LANG = "en_US.UTF-8";
BROWSER = "/nixbin/firefox";
NVIM = "${self}/nixvim/config/";
HYPRCONF = "${self}/hyprland/";
SYSCONF = "${self}/glasshouse-desktop/sys";
};
oh-my-zsh = { enableCompletion = true;
enable = true; history = {
plugins = [ "git" "fzf" ]; path = "$HOME/.zsh_history";
}; save = 10000;
size = 10000;
share = true;
};
enableCompletion = true; autosuggestion = {
history = { enable = true;
path = "$HOME/.zsh_history"; highlight = "fg=#4C566A,underline";
save = 10000; };
size = 10000;
share = true;
};
autosuggestion = { shellAliases = {
enable = true; grep = "grep --color=auto";
highlight = "fg=#4C566A,underline"; yazi = "y";
}; vi = "nvim";
mv = "mv -v";
cp = "cp -vr";
gt = "gtrash";
gtp = "gtrash put";
grub-update = "sudo grub-mkconfig -o /boot/grub/grub.cfg";
sr = "source ~/.zshrc";
".." = "cd ..";
rm = "echo 'use \"gtp\" instead'";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
mkdir = "mkdir -p";
pk = "pkill -9 -f";
zrc = "nvim $HOME/dots/zshell.nix";
svcu = "systemctl --user";
svc = "sudo systemctl";
hyprconf = "nvim $HOME/dots/hyprland/config.nix";
nixconf = "nvim $HOME/sysflakes/glasshouse-desktop/sys";
hmconf = "nvim $HOME/sysflakes/glasshouse-desktop/home";
viflake = "nvim flake.nix";
nvimcfg = "nvim $HOME/dots/nixvim/config";
};
initExtra = ''
shellAliases = { unalias ls
grep = "grep --color=auto"; ls() {
yazi = "y"; eza -1 --group-directories-first --icons "$@"
vi = "nvim"; scheck && runbg aplay ${self}/media/sound/ls.wav
mv = "mv -v"; }
cp = "cp -vr";
gt = "gtrash";
gtp = "gtrash put";
grub-update = "sudo grub-mkconfig -o /boot/grub/grub.cfg";
sr = "source ~/.zshrc";
".." = "cd ..";
rm = "echo 'use \"gtp\" instead'";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e" ;
mkdir = "mkdir -p";
pk = "pkill -9 -f";
zrc = "nvim $HOME/dots/zshell.nix";
svcu = "systemctl --user";
svc = "sudo systemctl";
hyprconf = "nvim $HOME/dots/hyprland/config.nix";
nixconf = "nvim $HOME/sysflakes/glasshouse-desktop/sys";
hmconf = "nvim $HOME/sysflakes/glasshouse-desktop/home";
viflake = "nvim flake.nix";
nvimcfg = "nvim $HOME/dots/nixvim/config";
};
initExtra = ''
unalias ls y() {
ls() { local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
eza -1 --group-directories-first --icons "$@" yazi "$@" --cwd-file="$tmp"
scheck && runbg aplay ${self}/media/sound/ls.wav if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
} builtin cd -- "$cwd"
fi
rm -f -- "$tmp"
}
y() { cd() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" export SOUNDS_ENABLED=0
yazi "$@" --cwd-file="$tmp" eza -1 --group-directories-first --icons "$@"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then builtin cd "$@" || exit
builtin cd -- "$cwd" export SOUNDS_ENABLED=1
fi scheck && runbg aplay ${self}/media/sound/cd.wav
rm -f -- "$tmp" }
} if [ ! -e $HOME/.zsh_history ]; then
touch $HOME/.zsh_history
chmod 600 $HOME/.zsh_history
fi
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
setopt INC_APPEND_HISTORY # Append to the history file incrementally
setopt SHARE_HISTORY # Share history between all zsh sessions
cd() { sessionVariables = {
export SOUNDS_ENABLED=0 setopt CORRECT
eza -1 --group-directories-first --icons "$@" setopt NO_NOMATCH
builtin cd "$@" || exit setopt LIST_PACKED
export SOUNDS_ENABLED=1 setopt ALWAYS_TO_END
scheck && runbg aplay ${self}/media/sound/cd.wav setopt GLOB_COMPLETE
} setopt COMPLETE_ALIASES
if [ ! -e $HOME/.zsh_history ]; then setopt COMPLETE_IN_WORD
touch $HOME/.zsh_history setopt AUTO_CD
chmod 600 $HOME/.zsh_history setopt AUTO_CONTINUE
fi setopt LONG_LIST_JOBS
setopt APPEND_HISTORY # Append history to the history file (don't overwrite) setopt HIST_VERIFY
setopt INC_APPEND_HISTORY # Append to the history file incrementally setopt SHARE_HISTORY
setopt SHARE_HISTORY # Share history between all zsh sessions setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
sessionVariables = { autoload -U compinit # completion
setopt CORRECT autoload -U terminfo # terminfo keys
setopt NO_NOMATCH zmodload -i zsh/complist # menu completion
setopt LIST_PACKED autoload -U promptinit # prompt
setopt ALWAYS_TO_END
setopt GLOB_COMPLETE
setopt COMPLETE_ALIASES
setopt COMPLETE_IN_WORD
setopt AUTO_CD
setopt AUTO_CONTINUE
setopt LONG_LIST_JOBS
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
autoload -U compinit # completion autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U terminfo # terminfo keys autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
unalias ls
clear
splash
scheck && runbg aplay ${self}/media/sound/sh-source.wav
'';
};
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
unalias ls
clear
splash
scheck && runbg aplay ${self}/media/sound/sh-source.wav
'';
};
} }

View File

@@ -1,92 +1,102 @@
{ nur, username, self, ... }:
{ {
programs.firefox = { nur,
enable = true; username,
policies = { self,
DisableTelemetry = true; ...
DisableFirefoxStudies = true; }: {
EnableTrackingProtection = { programs.firefox = {
Value= true; enable = true;
Locked = true; policies = {
Cryptomining = true; DisableTelemetry = true;
Fingerprinting = true; DisableFirefoxStudies = true;
}; EnableTrackingProtection = {
DisablePocket = true; Value = true;
DisableFirefoxAccounts = true; Locked = true;
DisableAccounts = true; Cryptomining = true;
DisableFirefoxScreenshots = true; Fingerprinting = true;
OverrideFirstRunPage = ""; };
OverridePostUpdatePage = ""; DisablePocket = true;
DontCheckDefaultBrowser = true; DisableFirefoxAccounts = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab" DisableAccounts = true;
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" DisableFirefoxScreenshots = true;
SearchBar = "unified"; # alternative: "separate" isDefault = true; OverrideFirstRunPage = "";
}; OverridePostUpdatePage = "";
profiles.${username} = { DontCheckDefaultBrowser = true;
name = "${username}"; DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
bookmarks = [ DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
{ name = "NixOS Options"; SearchBar = "unified"; # alternative: "separate" isDefault = true;
url = "https://search.nixos.org/options"; };
} profiles.${username} = {
{ name = "Home Manager Options"; name = "${username}";
url = "https://home-manager-options.extranix.com/"; bookmarks = [
} {
{ name = "Nixvim Docs"; name = "NixOS Options";
url = "https://nix-community.github.io/nixvim/"; url = "https://search.nixos.org/options";
} }
{ name = "Rust Manual"; {
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html"; name = "Home Manager Options";
} url = "https://home-manager-options.extranix.com/";
{ name = "ChatGPT"; }
url = "https://chatgpt.com/"; {
} name = "Nixvim Docs";
{ name = "DataAnnotation"; url = "https://nix-community.github.io/nixvim/";
url = "https://app.dataannotation.tech/users/sign_in"; }
} {
{ name = "Nerd Fonts Cheatsheet"; name = "Rust Manual";
url = "https://www.nerdfonts.com/cheat-sheet"; url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
} }
]; {
extensions = with nur.repos.rycee.firefox-addons; [ name = "ChatGPT";
darkreader url = "https://chatgpt.com/";
adnauseam }
cookie-autodelete {
disconnect name = "DataAnnotation";
firefox-color url = "https://app.dataannotation.tech/users/sign_in";
vimium }
firenvim {
privacy-badger name = "Nerd Fonts Cheatsheet";
new-tab-override url = "https://www.nerdfonts.com/cheat-sheet";
tampermonkey }
]; ];
extraConfig = '' extensions = with nur.repos.rycee.firefox-addons; [
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html"; darkreader
"browser.active_color" = "#EE0000"; adnauseam
"browser.active_color.dark" = "#FF6666"; cookie-autodelete
"browser.anchor_color" = "#0000EE"; disconnect
"browser.anchor_color.dark" = "#8C8CFF"; firefox-color
"browser.display.background_color" = "#FFFFFF"; vimium
"browser.display.background_color.dark" = "#1C1B22"; firenvim
"browser.display.document_color_use" = "1"; privacy-badger
"browser.display.foreground_color" = "#000000"; new-tab-override
"browser.display.foreground_color.dark" = "#FBFBFE"; tampermonkey
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true"; ];
"browser.display.use_system_colors" = "false"; extraConfig = ''
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A"; "browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.theme.colorway-closet" = "true"; "browser.active_color" = "#EE0000";
"browser.theme.colorway-migration" = "true"; "browser.active_color.dark" = "#FF6666";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false"; "browser.anchor_color" = "#0000EE";
"browser.visited_color" = "#551A8B"; "browser.anchor_color.dark" = "#8C8CFF";
"browser.visited_color.dark" = "#FFADFF"; "browser.display.background_color" = "#FFFFFF";
"browser.newtabpage.pinned" = [{ "browser.display.background_color.dark" = "#1C1B22";
title = "Homepage"; "browser.display.document_color_use" = "1";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html"; "browser.display.foreground_color" = "#000000";
}]; "browser.display.foreground_color.dark" = "#FBFBFE";
"devtools.defaultColorUnit" = "authored"; "browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
"editor.background_color" = "#FFFFFF"; "browser.display.use_system_colors" = "false";
"editor.use_custom_colors" = "false"; "browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
''; "browser.theme.colorway-closet" = "true";
}; "browser.theme.colorway-migration" = "true";
}; "browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
} }

View File

@@ -1,11 +1,15 @@
{ inputs, host, ... }:
let
host_config = if (host == "desktop") then [ ./desktop.nix ] else [ ./laptop.nix ];
in
{ {
imports = inputs,
[ (import ./hyprland.nix) ] host,
++ [ (import ./hyprpaper.nix) ] ...
++ host_config; }: let
host_config =
if (host == "desktop")
then [./desktop.nix]
else [./laptop.nix];
in {
imports =
[(import ./hyprland.nix)]
++ [(import ./hyprpaper.nix)]
++ host_config;
} }

View File

@@ -1,197 +1,194 @@
{ username, ... }: {username, ...}: {
wayland.windowManager.hyprland = {
settings = {
monitor = [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1"
];
{ exec-once = [
wayland.windowManager.hyprland = { "waybar &"
settings = { "swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
monitor = [ workspace = [
"DP-1, 1920x1080@144, 1920x0, 1" "1,persistent=true,monitor:HDMI-A-1"
"HDMI-A-1, 1920x1080, 0x0, 1" "2,persistent=true,monitor:HDMI-A-1"
]; "3,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1"
"5,persistent=true,monitor:DP-1"
"6,persistent=true,monitor:DP-1"
];
exec-once = [ input = {
"waybar &" kb_layout = "us";
"swaync &" follow_mouse = 1;
"wl-paste --watch cliphist store &" accel_profile = "flat";
"wl-clip-persist --clipboard both" force_no_accel = 1;
"systemctl --user import-environment &" sensitivity = 0;
"hash dbus-update-activation-environment 2>/dev/null &" };
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
workspace = [ general = {
"1,persistent=true,monitor:HDMI-A-1" "$mainMod" = "super";
"2,persistent=true,monitor:HDMI-A-1" layout = "dwindle";
"3,persistent=true,monitor:HDMI-A-1" gaps_in = 4;
"4,persistent=true,monitor:DP-1" gaps_out = 8;
"5,persistent=true,monitor:DP-1" border_size = 2;
"6,persistent=true,monitor:DP-1" "col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
]; "col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
input = { dwindle = {
kb_layout = "us"; no_gaps_when_only = false;
follow_mouse = 1; force_split = 0;
accel_profile = "flat"; special_scale_factor = 1.0;
force_no_accel = 1; split_width_multiplier = 1.0;
sensitivity = 0; use_active_for_splits = true;
}; pseudotile = "yes";
preserve_split = "yes";
};
general = { master = {
"$mainMod" = "super"; new_status = "master";
layout = "dwindle"; special_scale_factor = 1;
gaps_in = 4; no_gaps_when_only = false;
gaps_out = 8; };
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
dwindle = { decoration = {
no_gaps_when_only = false; rounding = 7;
force_split = 0; # active_opacity = 0.90;
special_scale_factor = 1.0; # inactive_opacity = 0.90;
split_width_multiplier = 1.0; # fullscreen_opacity = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
master = { blur = {
new_status = "master"; enabled = true;
special_scale_factor = 1; size = 1;
no_gaps_when_only = false; passes = 1;
}; # size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
decoration = { drop_shadow = true;
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
blur = { shadow_ignore_window = true;
enabled = true; shadow_offset = "0 2";
size = 1; shadow_range = 20;
passes = 1; shadow_render_power = 3;
# size = 4; "col.shadow" = "rgba(00000055)";
# passes = 2; };
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
drop_shadow = true; animations = {
enabled = true;
shadow_ignore_window = true; bezier = [
shadow_offset = "0 2"; "fluent_decel, 0, 0.2, 0.4, 1"
shadow_range = 20; "easeOutCirc, 0, 0.55, 0.45, 1"
shadow_render_power = 3; "easeOutCubic, 0.33, 1, 0.68, 1"
"col.shadow" = "rgba(00000055)"; "easeinoutsine, 0.37, 0, 0.63, 1"
}; ];
animations = { animation = [
enabled = true; # Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
bezier = [ # Fade
"fluent_decel, 0, 0.2, 0.4, 1" "fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"easeOutCirc, 0, 0.55, 0.45, 1" "fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"easeOutCubic, 0.33, 1, 0.68, 1" "fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"easeinoutsine, 0.37, 0, 0.63, 1" "fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
]; "fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
animation = [ bind = [
# Windows "super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open "super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close. "super, print, exec, grimblast copy area"
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing. "super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
# Fade "super, q, exec, kitty --title Kitty"
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows "super, d, exec, switchmon"
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows "super, c, killactive,"
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity "super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows "super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows "super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed "super, 0, exec, aplay ~/media/sound/soundtest.wav"
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop "super shift, q, exit,"
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert "super, m, exec, fuzzel"
]; "super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
bind = [ "super, f, togglefloating"
"super, up, exec, pactl set-sink-volume @default_sink@ +10%" "super, g, fullscreen"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%" "super, home, exec, /home/${username}/scripts/home.sh"
"super, print, exec, grimblast copy area" "super, h, movefocus, l"
"super, t, exec, swaync-client -t -sw" "super, l, movefocus, r"
"super, a, exec, firefox" "super, k, movefocus, u"
"super, q, exec, kitty --title Kitty" "super, j, movefocus, d"
"super, d, exec, switchmon" "super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, c, killactive," "super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop" "super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol" "super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper" "super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 0, exec, aplay ~/media/sound/soundtest.wav" "super, 6, exec, hyprctl 'dispatch workspace 6'"
"super shift, q, exit," "super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, m, exec, fuzzel" "super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, r, exec, neovide" "super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, b, togglesplit, # dwindle" "super, 0, exec, hyprctl 'dispatch workspace 10'"
"super, f, togglefloating" "super alt, g, togglegroup"
"super, g, fullscreen" "super alt, h, changegroupactive, b"
"super, home, exec, /home/${username}/scripts/home.sh" "super alt, l, changegroupactive, f"
"super, h, movefocus, l" "super shift, h, movewindoworgroup, l"
"super, l, movefocus, r" "super shift, l, movewindoworgroup, r"
"super, k, movefocus, u" "super shift, k, movewindoworgroup, u"
"super, j, movefocus, d" "super shift, j, movewindoworgroup, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'" "super shift, 1, movetoworkspace, 1"
"super, 2, exec, hyprctl 'dispatch workspace 2'" "super shift, 2, movetoworkspace, 2"
"super, 3, exec, hyprctl 'dispatch workspace 3'" "super shift, 3, movetoworkspace, 3"
"super, 4, exec, hyprctl 'dispatch workspace 4'" "super shift, 4, movetoworkspace, 4"
"super, 5, exec, hyprctl 'dispatch workspace 5'" "super shift, 5, movetoworkspace, 5"
"super, 6, exec, hyprctl 'dispatch workspace 6'" "super shift, 6, movetoworkspace, 6"
"super, 7, exec, hyprctl 'dispatch workspace 7'" "super shift, 7, movetoworkspace, 7"
"super, 8, exec, hyprctl 'dispatch workspace 8'" "super shift, 8, movetoworkspace, 8"
"super, 9, exec, hyprctl 'dispatch workspace 9'" "super shift, 9, movetoworkspace, 9"
"super, 0, exec, hyprctl 'dispatch workspace 10'" "super shift, 0, movetoworkspace, 10"
"super alt, g, togglegroup" "super, s, togglespecialworkspace, magic"
"super alt, h, changegroupactive, b" "super shift, s, movetoworkspace, special:magic"
"super alt, l, changegroupactive, f" "alt, grave, togglespecialworkspace, console"
"super shift, h, movewindoworgroup, l" "super, mouse_down, workspace, e+1"
"super shift, l, movewindoworgroup, r" "super, mouse_up, workspace, e-1"
"super shift, k, movewindoworgroup, u" ];
"super shift, j, movewindoworgroup, d" bindm = [
"super shift, 1, movetoworkspace, 1" "super, mouse:272, movewindow"
"super shift, 2, movetoworkspace, 2" "super, mouse:273, resizewindow"
"super shift, 3, movetoworkspace, 3" ];
"super shift, 4, movetoworkspace, 4" };
"super shift, 5, movetoworkspace, 5" };
"super shift, 6, movetoworkspace, 6" };
"super shift, 7, movetoworkspace, 7"
"super shift, 8, movetoworkspace, 8"
"super shift, 9, movetoworkspace, 9"
"super shift, 0, movetoworkspace, 10"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
} }

View File

@@ -1,24 +1,26 @@
{ inputs, pkgs, ... }:
{ {
home.packages = with pkgs; [ inputs,
swaybg pkgs,
inputs.hypr-contrib.packages.${pkgs.system}.grimblast ...
hyprpicker }: {
grim home.packages = with pkgs; [
slurp swaybg
wl-clip-persist inputs.hypr-contrib.packages.${pkgs.system}.grimblast
wf-recorder hyprpicker
glib grim
wayland slurp
direnv wl-clip-persist
]; wf-recorder
systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ]; glib
wayland.windowManager.hyprland = { wayland
enable = true; direnv
xwayland = { ];
enable = true; systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
}; wayland.windowManager.hyprland = {
systemd.enable = true; enable = true;
}; xwayland = {
enable = true;
};
systemd.enable = true;
};
} }

View File

@@ -1,20 +1,25 @@
{ host, username, ... }:
{ {
services.hyprpaper = { host,
enable = true; username,
settings = { ...
ipc = "on"; }: {
splash = false; services.hyprpaper = {
splash_offset = 2.0; enable = true;
preload = [ "/home/${username}/Pictures/Wallpapers/cat-leaves.png" ]; settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = ["/home/${username}/Pictures/Wallpapers/cat-leaves.png"];
wallpaper = if (host == "desktop") then [ wallpaper =
"DP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png" if (host == "desktop")
"HDMI-A-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png" then [
] else [ "DP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
"eDP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png" "HDMI-A-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
]; ]
}; else [
}; "eDP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
];
};
};
} }

View File

@@ -1,196 +1,193 @@
{ username, ... }: {username, ...}: {
wayland.windowManager.hyprland = {
settings = {
monitor = [
"eDP-1, 1920x1080@144, 1920x0, 1"
];
{ exec-once = [
wayland.windowManager.hyprland = { "waybar &"
settings = { "swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
monitor = [ workspace = [
"eDP-1, 1920x1080@144, 1920x0, 1" "1,persistent=true,monitor:eDP-1"
]; "2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
"5,persistent=true,monitor:eDP-1"
"6,persistent=true,monitor:eDP-1"
];
exec-once = [ input = {
"waybar &" kb_layout = "us";
"swaync &" follow_mouse = 1;
"wl-paste --watch cliphist store &" accel_profile = "flat";
"wl-clip-persist --clipboard both" force_no_accel = 1;
"systemctl --user import-environment &" sensitivity = 0;
"hash dbus-update-activation-environment 2>/dev/null &" };
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
workspace = [ general = {
"1,persistent=true,monitor:eDP-1" "$mainMod" = "super";
"2,persistent=true,monitor:eDP-1" layout = "dwindle";
"3,persistent=true,monitor:eDP-1" gaps_in = 4;
"4,persistent=true,monitor:eDP-1" gaps_out = 8;
"5,persistent=true,monitor:eDP-1" border_size = 2;
"6,persistent=true,monitor:eDP-1" "col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
]; "col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
input = { dwindle = {
kb_layout = "us"; no_gaps_when_only = false;
follow_mouse = 1; force_split = 0;
accel_profile = "flat"; special_scale_factor = 1.0;
force_no_accel = 1; split_width_multiplier = 1.0;
sensitivity = 0; use_active_for_splits = true;
}; pseudotile = "yes";
preserve_split = "yes";
};
general = { master = {
"$mainMod" = "super"; new_status = "master";
layout = "dwindle"; special_scale_factor = 1;
gaps_in = 4; no_gaps_when_only = false;
gaps_out = 8; };
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
dwindle = { decoration = {
no_gaps_when_only = false; rounding = 7;
force_split = 0; # active_opacity = 0.90;
special_scale_factor = 1.0; # inactive_opacity = 0.90;
split_width_multiplier = 1.0; # fullscreen_opacity = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
master = { blur = {
new_status = "master"; enabled = true;
special_scale_factor = 1; size = 1;
no_gaps_when_only = false; passes = 1;
}; # size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
decoration = { drop_shadow = true;
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
blur = { shadow_ignore_window = true;
enabled = true; shadow_offset = "0 2";
size = 1; shadow_range = 20;
passes = 1; shadow_render_power = 3;
# size = 4; "col.shadow" = "rgba(00000055)";
# passes = 2; };
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
drop_shadow = true; animations = {
enabled = true;
shadow_ignore_window = true; bezier = [
shadow_offset = "0 2"; "fluent_decel, 0, 0.2, 0.4, 1"
shadow_range = 20; "easeOutCirc, 0, 0.55, 0.45, 1"
shadow_render_power = 3; "easeOutCubic, 0.33, 1, 0.68, 1"
"col.shadow" = "rgba(00000055)"; "easeinoutsine, 0.37, 0, 0.63, 1"
}; ];
animations = { animation = [
enabled = true; # Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
bezier = [ # Fade
"fluent_decel, 0, 0.2, 0.4, 1" "fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"easeOutCirc, 0, 0.55, 0.45, 1" "fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"easeOutCubic, 0.33, 1, 0.68, 1" "fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"easeinoutsine, 0.37, 0, 0.63, 1" "fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
]; "fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
animation = [ bind = [
# Windows "super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open "super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close. "super, print, exec, grimblast copy area"
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing. "super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
# Fade "super, q, exec, kitty --title Kitty"
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows "super, d, exec, switchmon"
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows "super, c, killactive,"
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity "super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows "super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows "super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed "super, 0, exec, aplay ~/media/sound/soundtest.wav"
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop "super shift, q, exit,"
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert "super, m, exec, fuzzel"
]; "super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
bind = [ "super, f, togglefloating"
"super, up, exec, pactl set-sink-volume @default_sink@ +10%" "super, g, fullscreen"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%" "super, home, exec, /home/${username}/scripts/home.sh"
"super, print, exec, grimblast copy area" "super, h, movefocus, l"
"super, t, exec, swaync-client -t -sw" "super, l, movefocus, r"
"super, a, exec, firefox" "super, k, movefocus, u"
"super, q, exec, kitty --title Kitty" "super, j, movefocus, d"
"super, d, exec, switchmon" "super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, c, killactive," "super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop" "super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol" "super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper" "super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 0, exec, aplay ~/media/sound/soundtest.wav" "super, 6, exec, hyprctl 'dispatch workspace 6'"
"super shift, q, exit," "super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, m, exec, fuzzel" "super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, r, exec, neovide" "super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, b, togglesplit, # dwindle" "super, 0, exec, hyprctl 'dispatch workspace 10'"
"super, f, togglefloating" "super alt, g, togglegroup"
"super, g, fullscreen" "super alt, h, changegroupactive, b"
"super, home, exec, /home/${username}/scripts/home.sh" "super alt, l, changegroupactive, f"
"super, h, movefocus, l" "super shift, h, movewindoworgroup, l"
"super, l, movefocus, r" "super shift, l, movewindoworgroup, r"
"super, k, movefocus, u" "super shift, k, movewindoworgroup, u"
"super, j, movefocus, d" "super shift, j, movewindoworgroup, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'" "super shift, 1, movetoworkspace, 1"
"super, 2, exec, hyprctl 'dispatch workspace 2'" "super shift, 2, movetoworkspace, 2"
"super, 3, exec, hyprctl 'dispatch workspace 3'" "super shift, 3, movetoworkspace, 3"
"super, 4, exec, hyprctl 'dispatch workspace 4'" "super shift, 4, movetoworkspace, 4"
"super, 5, exec, hyprctl 'dispatch workspace 5'" "super shift, 5, movetoworkspace, 5"
"super, 6, exec, hyprctl 'dispatch workspace 6'" "super shift, 6, movetoworkspace, 6"
"super, 7, exec, hyprctl 'dispatch workspace 7'" "super shift, 7, movetoworkspace, 7"
"super, 8, exec, hyprctl 'dispatch workspace 8'" "super shift, 8, movetoworkspace, 8"
"super, 9, exec, hyprctl 'dispatch workspace 9'" "super shift, 9, movetoworkspace, 9"
"super, 0, exec, hyprctl 'dispatch workspace 10'" "super shift, 0, movetoworkspace, 10"
"super alt, g, togglegroup" "super, s, togglespecialworkspace, magic"
"super alt, h, changegroupactive, b" "super shift, s, movetoworkspace, special:magic"
"super alt, l, changegroupactive, f" "alt, grave, togglespecialworkspace, console"
"super shift, h, movewindoworgroup, l" "super, mouse_down, workspace, e+1"
"super shift, l, movewindoworgroup, r" "super, mouse_up, workspace, e-1"
"super shift, k, movewindoworgroup, u" ];
"super shift, j, movewindoworgroup, d" bindm = [
"super shift, 1, movetoworkspace, 1" "super, mouse:272, movewindow"
"super shift, 2, movetoworkspace, 2" "super, mouse:273, resizewindow"
"super shift, 3, movetoworkspace, 3" ];
"super shift, 4, movetoworkspace, 4" };
"super shift, 5, movetoworkspace, 5" };
"super shift, 6, movetoworkspace, 6" };
"super shift, 7, movetoworkspace, 7"
"super shift, 8, movetoworkspace, 8"
"super shift, 9, movetoworkspace, 9"
"super shift, 0, movetoworkspace, 10"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
} }

View File

@@ -1,8 +1,6 @@
{ ... }: {...}: {
programs.autojump = {
{ enable = true;
programs.autojump = { enableZshIntegration = true;
enable = true; };
enableZshIntegration = true;
};
} }

View File

@@ -1,6 +1,4 @@
{ inputs, ... }: {inputs, ...}: {
{
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = {

View File

@@ -1,21 +1,19 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.btop = { programs.btop = {
enable = true; enable = true;
settings = { settings = {
color_theme = "tokyo-night"; color_theme = "tokyo-night";
theme_background = false; theme_background = false;
update_ms = 500; update_ms = 500;
vim_keys = true; vim_keys = true;
proc_tree = true; proc_tree = true;
temp_scale = "fahrenheit"; temp_scale = "fahrenheit";
disks_filter = "exclude=/boot"; disks_filter = "exclude=/boot";
show_swap = false; show_swap = false;
swap_disk = false; swap_disk = false;
}; };
}; };
home.packages = (with pkgs; [ nvtopPackages.intel ]); home.packages = with pkgs; [nvtopPackages.intel];
} }

View File

@@ -1,12 +1,16 @@
{ inputs, pkgs, ... }:
{ {
inputs,
pkgs,
...
}: {
programs.cava = { programs.cava = {
enable = true; enable = true;
}; };
# https://github.com/catppuccin/cava # https://github.com/catppuccin/cava
home.file.".config/cava/config".text = '' home.file.".config/cava/config".text =
# custom cava config ''
'' + builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava"; # custom cava config
''
+ builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
} }

View File

@@ -1,11 +1,9 @@
{ ... }: {...}: {
programs.eza = {
{ enable = true;
programs.eza = { enableZshIntegration = false;
enable = true; extraOptions = ["-1" "-h" "--group-directories-first"];
enableZshIntegration = false; icons = "auto";
extraOptions = [ "-1" "-h" "--group-directories-first" ]; git = true;
icons = "auto"; };
git = true;
};
} }

View File

@@ -1,109 +1,122 @@
{ nur, username }:
{ {
programs.firefox = { nur,
enable = true; username,
policies = { }: {
DisableTelemetry = true; programs.firefox = {
DisableFirefoxStudies = true; enable = true;
EnableTrackingProtection = { policies = {
Value= true; DisableTelemetry = true;
Locked = true; DisableFirefoxStudies = true;
Cryptomining = true; EnableTrackingProtection = {
Fingerprinting = true; Value = true;
}; Locked = true;
DisablePocket = true; Cryptomining = true;
DisableFirefoxAccounts = true; Fingerprinting = true;
DisableAccounts = true; };
DisableFirefoxScreenshots = true; DisablePocket = true;
OverrideFirstRunPage = ""; DisableFirefoxAccounts = true;
OverridePostUpdatePage = ""; DisableAccounts = true;
DontCheckDefaultBrowser = true; DisableFirefoxScreenshots = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab" OverrideFirstRunPage = "";
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" OverridePostUpdatePage = "";
SearchBar = "unified"; # alternative: "separate" isDefault = true; DontCheckDefaultBrowser = true;
}; DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
profiles.${username} = { DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
name = "${username}"; SearchBar = "unified"; # alternative: "separate" isDefault = true;
bookmarks = [ };
{ name = "Nix sites"; profiles.${username} = {
toolbar = true; name = "${username}";
bookmarks = [ bookmarks = [
{ name = "NixOS Options"; {
url = "https://search.nixos.org/options"; name = "Nix sites";
} toolbar = true;
{ name = "Home Manager Options"; bookmarks = [
url = "https://home-manager-options.extranix.com/"; {
} name = "NixOS Options";
{ name = "Nixvim Docs"; url = "https://search.nixos.org/options";
url = "https://nix-community.github.io/nixvim/"; }
} {
{ name = "Noogle"; name = "Home Manager Options";
url = "https://noogle.dev/"; url = "https://home-manager-options.extranix.com/";
} }
{ name = "NixOS Wiki"; {
url = "https://nixos.wiki/"; name = "Nixvim Docs";
} url = "https://nix-community.github.io/nixvim/";
{ name = "NixOS Manual"; }
url = "https://nixos.org/manual/nixos/stable"; {
} name = "Noogle";
{ name = "Nixpkgs Reference"; url = "https://noogle.dev/";
url = "https://nixos.org/manual/nixpkgs/stable"; }
} {
]; name = "NixOS Wiki";
} url = "https://nixos.wiki/";
{ name = "Rust Manual"; }
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html"; {
} name = "NixOS Manual";
{ name = "ChatGPT"; url = "https://nixos.org/manual/nixos/stable";
url = "https://chatgpt.com/"; }
} {
{ name = "DataAnnotation"; name = "Nixpkgs Reference";
url = "https://app.dataannotation.tech/users/sign_in"; url = "https://nixos.org/manual/nixpkgs/stable";
} }
{ name = "Nerd Fonts Cheatsheet"; ];
url = "https://www.nerdfonts.com/cheat-sheet"; }
} {
]; name = "Rust Manual";
extensions = with nur.repos.rycee.firefox-addons; [ url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
darkreader }
adnauseam {
cookie-autodelete name = "ChatGPT";
disconnect url = "https://chatgpt.com/";
firefox-color }
vimium {
firenvim name = "DataAnnotation";
privacy-badger url = "https://app.dataannotation.tech/users/sign_in";
new-tab-override }
tampermonkey {
]; name = "Nerd Fonts Cheatsheet";
extraConfig = '' url = "https://www.nerdfonts.com/cheat-sheet";
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html"; }
"browser.active_color" = "#EE0000"; ];
"browser.active_color.dark" = "#FF6666"; extensions = with nur.repos.rycee.firefox-addons; [
"browser.anchor_color" = "#0000EE"; darkreader
"browser.anchor_color.dark" = "#8C8CFF"; adnauseam
"browser.display.background_color" = "#FFFFFF"; cookie-autodelete
"browser.display.background_color.dark" = "#1C1B22"; disconnect
"browser.display.document_color_use" = "1"; firefox-color
"browser.display.foreground_color" = "#000000"; vimium
"browser.display.foreground_color.dark" = "#FBFBFE"; firenvim
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true"; privacy-badger
"browser.display.use_system_colors" = "false"; new-tab-override
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A"; tampermonkey
"browser.theme.colorway-closet" = "true"; ];
"browser.theme.colorway-migration" = "true"; extraConfig = ''
"browser.theme.windows.accent-color-in-tabs.enabled" = "false"; "browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.visited_color" = "#551A8B"; "browser.active_color" = "#EE0000";
"browser.visited_color.dark" = "#FFADFF"; "browser.active_color.dark" = "#FF6666";
"browser.newtabpage.pinned" = [{ "browser.anchor_color" = "#0000EE";
title = "Homepage"; "browser.anchor_color.dark" = "#8C8CFF";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html"; "browser.display.background_color" = "#FFFFFF";
}]; "browser.display.background_color.dark" = "#1C1B22";
"devtools.defaultColorUnit" = "authored"; "browser.display.document_color_use" = "1";
"editor.background_color" = "#FFFFFF"; "browser.display.foreground_color" = "#000000";
"editor.use_custom_colors" = "false"; "browser.display.foreground_color.dark" = "#FBFBFE";
''; "browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
}; "browser.display.use_system_colors" = "false";
}; "browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
"browser.theme.colorway-closet" = "true";
"browser.theme.colorway-migration" = "true";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
} }

View File

@@ -1,6 +1,4 @@
{ ... }: {...}: {
{
programs.fuzzel = { programs.fuzzel = {
enable = true; enable = true;
settings = { settings = {
@@ -9,7 +7,7 @@
line-height = 25; line-height = 25;
fields = "name,generic,comment,categories,filename,keywords"; fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty"; terminal = "kitty";
prompt = "' '" ; prompt = "' '";
icon-theme = "Papirus-Dark"; icon-theme = "Papirus-Dark";
layer = "top"; layer = "top";
lines = 10; lines = 10;

View File

@@ -1,8 +1,6 @@
{ ... }: {...}: {
programs.fzf = {
{ enable = true;
programs.fzf = { enableZshIntegration = true;
enable = true; };
enableZshIntegration = true;
};
} }

View File

@@ -1,9 +1,7 @@
{ ... }: {...}: {
programs.git = {
{ enable = true;
programs.git = { userEmail = "pagedmov@gmail.com";
enable = true; userName = "pagedmov";
userEmail = "pagedmov@gmail.com"; };
userName = "pagedmov";
};
} }

View File

@@ -1,11 +1,9 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
themeFile = "Catppuccin-Mocha"; themeFile = "Catppuccin-Mocha";
font = { font = {
name = "JetBrainsMono Nerd Font"; name = "JetBrainsMono Nerd Font";
size = 13; size = 13;
@@ -13,13 +11,13 @@
settings = { settings = {
confirm_os_window_close = 0; confirm_os_window_close = 0;
background_opacity = "0.60"; background_opacity = "0.60";
window_padding_width = 10; window_padding_width = 10;
scrollback_lines = 10000; scrollback_lines = 10000;
enable_audio_bell = false; enable_audio_bell = false;
allow_remote_control = true; allow_remote_control = true;
mouse_hide_wait = 60; mouse_hide_wait = 60;
## Tabs ## Tabs
tab_title_template = "{index}"; tab_title_template = "{index}";
active_tab_font_style = "normal"; active_tab_font_style = "normal";
@@ -32,7 +30,7 @@
inactive_tab_background = "#313244"; inactive_tab_background = "#313244";
}; };
keybindings = { keybindings = {
## Tabs ## Tabs
"alt+1" = "goto_tab 1"; "alt+1" = "goto_tab 1";
"alt+2" = "goto_tab 2"; "alt+2" = "goto_tab 2";

View File

@@ -1,13 +1,10 @@
{ username, ... }: {username, ...}: let
home = "/home/${username}";
let in {
home = "/home/${username}"; programs.password-store = {
in enable = true;
{ settings = {
programs.password-store = { PASSWORD_STORE_DIR = "${home}/.password-store";
enable = true; };
settings = { };
PASSWORD_STORE_DIR = "${home}/.password-store";
};
};
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,16 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "compress" ''
#!/usr/bin/env bash
if (( $# == 1 )) then
pkgs.writeShellScriptBin "compress" ('' # echo -ne "Archive name: "
#!/usr/bin/env bash # read name
# tar -cvzf "$name.tar.gz" $1
if (( $# == 1 )) then tar -cvzf "$1.tar.gz" $1
# echo -ne "Archive name: " else
# read name echo "Wrong number of arguments..."
# tar -cvzf "$name.tar.gz" $1 fi
tar -cvzf "$1.tar.gz" $1 ''
else
echo "Wrong number of arguments..."
fi
'')

View File

@@ -1,9 +1,10 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "crs" ''
#!/run/current-system/sw/bin/bash
cargo test && \
pkgs.writeShellScriptBin "crs" ('' cargo run
#!/run/current-system/sw/bin/bash ''
cargo test && \
cargo run
'')

View File

@@ -1,11 +1,12 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "extract" ''
#!/usr/bin/env bash
for i in "$@" ; do
pkgs.writeShellScriptBin "extract" ('' tar -xvzf $i
#!/usr/bin/env bash break
done
for i in "$@" ; do ''
tar -xvzf $i
break
done
'')

View File

@@ -1,8 +1,9 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "invoke" ''
#!/run/current-system/sw/bin/bash
nix run nixpkgs#$"@"
pkgs.writeShellScriptBin "invoke" ('' ''
#!/run/current-system/sw/bin/bash
nix run nixpkgs#$"@"
'')

View File

@@ -1,11 +1,12 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "keybinds" ''
#!/usr/bin/env bash
config_file=~/.config/hypr/hyprland.conf
pkgs.writeShellScriptBin "keybinds" ('' keybinds=$(grep -oP '(?<=bind=).*' $config_file)
#!/usr/bin/env bash keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -theme-str 'window {width: 50%;}' <<< "$keybinds"
config_file=~/.config/hypr/hyprland.conf ''
keybinds=$(grep -oP '(?<=bind=).*' $config_file)
keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -theme-str 'window {width: 50%;}' <<< "$keybinds"
'')

View File

@@ -1,10 +1,11 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "mcd" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "mcd" ('' mkdir -p "$1"
#!/run/current-system/sw/bin/bash cd "$1" || exit
''
mkdir -p "$1"
cd "$1" || exit
'')

View File

@@ -1,21 +1,22 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "runbg" ''
#!/usr/bin/env bash
[ $# -eq 0 ] && { # $# is number of args
pkgs.writeShellScriptBin "runbg" ('' echo "$(basename $0): missing command" >&2
#!/usr/bin/env bash exit 1
}
[ $# -eq 0 ] && { # $# is number of args prog="$(which "$1")" # see below
echo "$(basename $0): missing command" >&2 [ -z "$prog" ] && {
exit 1 echo "$(basename $0): unknown command: $1" >&2
} exit 1
prog="$(which "$1")" # see below }
[ -z "$prog" ] && { shift # remove $1, now $prog, from args
echo "$(basename $0): unknown command: $1" >&2 tty -s && exec </dev/null # if stdin is a terminal, redirect from null
exit 1 tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
} tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
shift # remove $1, now $prog, from args "$prog" "$@" & # $@ is all args
tty -s && exec </dev/null # if stdin is a terminal, redirect from null ''
tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
"$prog" "$@" & # $@ is all args
'')

View File

@@ -1,8 +1,9 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "scheck" ''
#!/run/current-system/sw/bin/bash
[ "$SOUNDS_ENABLED" -eq 1 ]
pkgs.writeShellScriptBin "scheck" ('' ''
#!/run/current-system/sw/bin/bash
[ "$SOUNDS_ENABLED" -eq 1 ]
'')

View File

@@ -1,12 +1,12 @@
{ self, pkgs }: {
self,
pkgs,
pkgs.writeShellScriptBin "splash" ('' }:
#!/bin/bash pkgs.writeShellScriptBin "splash" ''
#!/bin/bash
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"
echo -e "\033[38;2;0;180;205m$(toilet -t -f Slant.flf glasshouse)\033[0m"
echo
'')
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"
echo -e "\033[38;2;0;180;205m$(toilet -t -f Slant.flf glasshouse)\033[0m"
echo
''

View File

@@ -1,62 +1,144 @@
{ host, self, pkgs, ... }:
let
compress = (import ./commands/compress.nix { self = self; pkgs = pkgs;});
passhelper = (import ./wm-controls/passhelper.nix { self = self; pkgs = pkgs;});
crs = (import ./commands/crs.nix { self = self; pkgs = pkgs;});
extract = (import ./commands/extract.nix { self = self; pkgs = pkgs;});
invoke = (import ./commands/invoke.nix { self = self; pkgs = pkgs;});
splash = (import ./commands/splash.nix { self = self; pkgs = pkgs;});
scheck = (import ./commands/s_check.nix { self = self; pkgs = pkgs;});
runbg = (import ./commands/runbg.nix { self = self; pkgs = pkgs;});
mcd = (import ./commands/mcd.nix { self = self; pkgs = pkgs;});
garbage-collect = (import ./nix/garbage-collect.nix { self = self; pkgs = pkgs;});
homep = (import ./nix/homep.nix { self = self; pkgs = pkgs;});
homer = (import ./nix/homer.nix { self = self; pkgs = pkgs;});
nsp = (import ./nix/nsp.nix { self = self; pkgs = pkgs;});
nixr = (import ./nix/nixr.nix { self = self; pkgs = pkgs;});
nixp = (import ./nix/nixp.nix { self = self; pkgs = pkgs;});
hyprland = (import ./wm-controls/hyprland.nix { pkgs=pkgs; });
lofi = (import ./wm-controls/lofi.nix { self = self; pkgs = pkgs;});
music = (import ./wm-controls/music.nix { self = self; pkgs = pkgs;});
shutdown-script = (import ./wm-controls/shutdown-script.nix { self = self; pkgs = pkgs;});
switchmon = (import ./wm-controls/switchmon.nix { self = self; pkgs = pkgs;});
toggle_blur = (import ./wm-controls/toggle_blur.nix { self = self; pkgs = pkgs;});
toggle_float = (import ./wm-controls/toggle_float.nix { self = self; pkgs = pkgs;});
toggle_oppacity = (import ./wm-controls/toggle_oppacity.nix { self = self; pkgs = pkgs;});
toggle_waybar = (import ./wm-controls/toggle_waybar.nix { self = self; pkgs = pkgs;});
rebuild = (import ./nix/rebuild.nix { host = host; self = self; pkgs = pkgs;});
nixcommit = (import ./nix/nixcommit.nix { host = host; self = self; pkgs = pkgs;});
nixpush = (import ./nix/nixpush.nix { self = self; pkgs = pkgs;});
in
{ {
home.packages = [ host,
compress self,
passhelper pkgs,
crs ...
extract }: let
garbage-collect compress = import ./commands/compress.nix {
homep self = self;
homer pkgs = pkgs;
hyprland };
invoke passhelper = import ./wm-controls/passhelper.nix {
lofi self = self;
mcd pkgs = pkgs;
music };
nixcommit crs = import ./commands/crs.nix {
nixp self = self;
nixpush pkgs = pkgs;
nixr };
rebuild extract = import ./commands/extract.nix {
nsp self = self;
runbg pkgs = pkgs;
scheck };
shutdown-script invoke = import ./commands/invoke.nix {
splash self = self;
switchmon pkgs = pkgs;
toggle_blur };
toggle_float splash = import ./commands/splash.nix {
toggle_oppacity self = self;
toggle_waybar pkgs = pkgs;
]; };
scheck = import ./commands/s_check.nix {
self = self;
pkgs = pkgs;
};
runbg = import ./commands/runbg.nix {
self = self;
pkgs = pkgs;
};
mcd = import ./commands/mcd.nix {
self = self;
pkgs = pkgs;
};
garbage-collect = import ./nix/garbage-collect.nix {
self = self;
pkgs = pkgs;
};
homep = import ./nix/homep.nix {
self = self;
pkgs = pkgs;
};
homer = import ./nix/homer.nix {
self = self;
pkgs = pkgs;
};
nsp = import ./nix/nsp.nix {
self = self;
pkgs = pkgs;
};
nixr = import ./nix/nixr.nix {
self = self;
pkgs = pkgs;
};
nixp = import ./nix/nixp.nix {
self = self;
pkgs = pkgs;
};
hyprland = import ./wm-controls/hyprland.nix {pkgs = pkgs;};
lofi = import ./wm-controls/lofi.nix {
self = self;
pkgs = pkgs;
};
music = import ./wm-controls/music.nix {
self = self;
pkgs = pkgs;
};
shutdown-script = import ./wm-controls/shutdown-script.nix {
self = self;
pkgs = pkgs;
};
switchmon = import ./wm-controls/switchmon.nix {
self = self;
pkgs = pkgs;
};
toggle_blur = import ./wm-controls/toggle_blur.nix {
self = self;
pkgs = pkgs;
};
toggle_float = import ./wm-controls/toggle_float.nix {
self = self;
pkgs = pkgs;
};
toggle_oppacity = import ./wm-controls/toggle_oppacity.nix {
self = self;
pkgs = pkgs;
};
toggle_waybar = import ./wm-controls/toggle_waybar.nix {
self = self;
pkgs = pkgs;
};
rebuild = import ./nix/rebuild.nix {
host = host;
self = self;
pkgs = pkgs;
};
nixcommit = import ./nix/nixcommit.nix {
host = host;
self = self;
pkgs = pkgs;
};
nixpush = import ./nix/nixpush.nix {
self = self;
pkgs = pkgs;
};
in {
home.packages = [
compress
passhelper
crs
extract
garbage-collect
homep
homer
hyprland
invoke
lofi
mcd
music
nixcommit
nixp
nixpush
nixr
rebuild
nsp
runbg
scheck
shutdown-script
splash
switchmon
toggle_blur
toggle_float
toggle_oppacity
toggle_waybar
];
} }

View File

@@ -1,31 +1,32 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "garbage-collect" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "garbage-collect" ('' echo "This will delete all unused paths in the nix store and delete any files in the gtrash folder."
#!/run/current-system/sw/bin/bash echo -e "\033[1;4;38;2;243;139;168mThis process is irreversible.\033[0m Are you sure?"
select yn in "Yes" "No"; do
case $yn in
Yes ) echo "Sweeping system...";scheck && runbg aplay "$HOME/media/sound/sys/collectgarbage.wav";break;;
No ) echo "Canceling garbage collection."; return;;
esac
done
output=$(nix-collect-garbage | tee /dev/tty)
nix_freed=$(echo "$output" | grep -oP '\d+(\.\d+)? MiB freed' | cut -d' ' -f1)
echo "This will delete all unused paths in the nix store and delete any files in the gtrash folder." if [ "$(ls -A ~/.local/share/Trash/files/ 2>/dev/null)" ]; then
echo -e "\033[1;4;38;2;243;139;168mThis process is irreversible.\033[0m Are you sure?" rm_freed=$(du ~/.local/share/Trash/files 2> /dev/null | awk '{print $1}')
select yn in "Yes" "No"; do rm_freed=$(echo "scale=2; $rm_freed / 1000" | bc)
case $yn in /run/current-system/sw/bin/rm -rfv ~/.local/share/Trash/files
Yes ) echo "Sweeping system...";scheck && runbg aplay "$HOME/media/sound/sys/collectgarbage.wav";break;; mkdir ~/.local/share/Trash/files
No ) echo "Canceling garbage collection."; return;; else
esac rm_freed="0"
done fi
output=$(nix-collect-garbage | tee /dev/tty) total_freed=$(echo "$nix_freed + $rm_freed" | bc)
echo -e "System cleaning complete, freed \033[1;4;38;2;166;227;161m$total_freed MiB\033[0m in total"
nix_freed=$(echo "$output" | grep -oP '\d+(\.\d+)? MiB freed' | cut -d' ' -f1) scheck && runbg aplay "$HOME/media/sound/sys/rm.wav"
''
if [ "$(ls -A ~/.local/share/Trash/files/ 2>/dev/null)" ]; then
rm_freed=$(du ~/.local/share/Trash/files 2> /dev/null | awk '{print $1}')
rm_freed=$(echo "scale=2; $rm_freed / 1000" | bc)
/run/current-system/sw/bin/rm -rfv ~/.local/share/Trash/files
mkdir ~/.local/share/Trash/files
else
rm_freed="0"
fi
total_freed=$(echo "$nix_freed + $rm_freed" | bc)
echo -e "System cleaning complete, freed \033[1;4;38;2;166;227;161m$total_freed MiB\033[0m in total"
scheck && runbg aplay "$HOME/media/sound/sys/rm.wav"
'')

View File

@@ -1,35 +1,36 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "homep" ''
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
pkgs.writeShellScriptBin "homep" ('' # Select packages using fzf with multi-select enabled
#!/run/current-system/sw/bin/bash selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Ensure the package manifest is generated or updated # Check if any packages were selected
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then if [ -n "$selected_packages" ]; then
echo "Generating Nixpkgs manifest..." echo "$selected_packages" | while read -r package; do
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt # Append each selected package to the Nix config file
fi sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Added $package to the Home Manager configuration."
done
# Select packages using fzf with multi-select enabled echo "Packages added successfully. Rebuild system config?"
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m) select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
# Check if any packages were selected else
if [ -n "$selected_packages" ]; then echo "No packages selected."
echo "$selected_packages" | while read -r package; do fi
# Append each selected package to the Nix config file ''
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Added $package to the Home Manager configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi
'')

View File

@@ -1,29 +1,30 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "homer" ''
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" | sed '1d;$d' | fzf -m)
pkgs.writeShellScriptBin "homer" ('' if [ -n "$selected_packages" ]; then
#!/run/current-system/sw/bin/bash echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Removed $package from the Home Manager configuration."
done
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" | sed '1d;$d' | fzf -m) echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
if [ -n "$selected_packages" ]; then else
echo "$selected_packages" | while read -r package; do echo "No packages removed."
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" fi
echo "Removed $package from the Home Manager configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi
'') ''

View File

@@ -1,46 +1,49 @@
{ self, pkgs, host}: {
self,
pkgs,
host,
}:
pkgs.writeShellScriptBin "nixcommit" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
pkgs.writeShellScriptBin "nixcommit" ('' if [ -n "$2" ]; then
#!/run/current-system/sw/bin/bash echo "too many arguments"
exit
fi
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav diffcheck=$(git status | grep "working tree clean")
builtin cd "$HOME/sysflakes" || exit if [ -n "$diffcheck" ]; then
nix flake update scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to commit"
exit
fi
if [ -n "$2" ]; then alejandra . &> /dev/null
echo "too many arguments" git add .
exit
fi
diffcheck=$(git status | grep "working tree clean") # Automatic fixup commit to the most recent commit (HEAD~1)
if [ -n "$diffcheck" ]; then if [ -z "$1" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
echo "Nothing to commit" if [ -n "$commits" ]; then
exit git commit --fixup HEAD
fi echo "No commit message given"
echo "Squashing into most recent commit"
git rebase --autosquash master
else
echo "No prior local commits to squash into, please provide a commit message"
exit
fi
else
# Generate the system generation number
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
gen=$((gen + 1))
git commit -m "(${host}) Gen $gen: $1"
fi
git add . scheck && runbg aplay ${self}/media/sound/gitcommit.wav
builtin cd - || exit
# Automatic fixup commit to the most recent commit (HEAD~1) ''
if [ -z "$1" ]; then
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
if [ -n "$commits" ]; then
git commit --fixup HEAD
echo "No commit message given"
echo "Squashing into most recent commit"
git rebase --autosquash master
else
echo "No prior local commits to squash into, please provide a commit message"
exit
fi
else
# Generate the system generation number
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
gen=$((gen + 1))
git commit -m "(${host}) Gen $gen: $1"
fi
scheck && runbg aplay ${self}/media/sound/gitcommit.wav
builtin cd - || exit
'')

View File

@@ -1,35 +1,36 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixp" ''
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
pkgs.writeShellScriptBin "nixp" ('' # Select packages using fzf with multi-select enabled
#!/run/current-system/sw/bin/bash selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Ensure the package manifest is generated or updated # Check if any packages were selected
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then if [ -n "$selected_packages" ]; then
echo "Generating Nixpkgs manifest..." echo "$selected_packages" | while read -r package; do
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt # Append each selected package to the Nix config file
fi sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Added $package to the Nix configuration."
done
# Select packages using fzf with multi-select enabled echo "Packages added successfully. Rebuild system config?"
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m) select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
# Check if any packages were selected else
if [ -n "$selected_packages" ]; then echo "No packages selected."
echo "$selected_packages" | while read -r package; do fi
# Append each selected package to the Nix config file ''
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Added $package to the Nix configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi
'')

View File

@@ -1,24 +1,25 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixpush" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
pkgs.writeShellScriptBin "nixpush" ('' commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
#!/run/current-system/sw/bin/bash if [ -z "$commits" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to push"
exit
fi
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav echo "Pushing the following commits upstream on branch '$(git branch | rg "\*" | awk '{print $2}')'"
set -e echo "$commits"
pushd "$HOME/sysflakes"
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline) git push
if [ -z "$commits" ]; then scheck && runbg aplay ${self}/media/sound/gitpush.wav
scheck && runbg aplay ${self}/media/sound/warning.wav popd
echo "Nothing to push" ''
exit
fi
echo "Pushing the following commits upstream on branch '$(git branch | rg "\*" | awk '{print $2}')'"
echo "$commits"
git push
scheck && runbg aplay ${self}/media/sound/gitpush.wav
popd
'')

View File

@@ -1,29 +1,30 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixr" ''
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" | sed '1d;$d' | fzf -m)
pkgs.writeShellScriptBin "nixr" ('' if [ -n "$selected_packages" ]; then
#!/run/current-system/sw/bin/bash echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Removed $package from the Nix configuration."
done
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" | sed '1d;$d' | fzf -m) echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
if [ -n "$selected_packages" ]; then else
echo "$selected_packages" | while read -r package; do echo "No packages removed."
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" fi
echo "Removed $package from the Nix configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi
'') ''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "nsp" ''
#!/run/current-system/sw/bin/bash
nix-shell -p "$@" --run zsh
pkgs.writeShellScriptBin "nsp" ('' ''
#!/run/current-system/sw/bin/bash
nix-shell -p "$@" --run zsh
'')

View File

@@ -1,20 +1,21 @@
{ host, self, pkgs }: {
host,
self,
pkgs,
}:
pkgs.writeShellScriptBin "rebuild" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
pkgs.writeShellScriptBin "rebuild" ('' nix flake update
#!/run/current-system/sw/bin/bash sudo nixos-rebuild switch --flake "$HOME/sysflakes#${host}"
if [ $? -eq 0 ]; then
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav scheck && runbg aplay ${self}/media/sound/update.wav
set -e else
pushd "$HOME/sysflakes" scheck && runbg aplay ${self}/media/sound/error.wav
fi
nix flake update popd
git diff ''
sudo nixos-rebuild switch --flake "$HOME/sysflakes#${host}"
if [ $? -eq 0 ]; then
scheck && runbg aplay ${self}/media/sound/update.wav
else
scheck && runbg aplay ${self}/media/sound/error.wav
fi
popd
'')

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }: {pkgs, ...}:
pkgs.writeShellScriptBin "hyprland" ''
pkgs.writeShellScriptBin "hyprland" ('' export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share"
export XDG_DATA_HOME="$HOME/.local/share" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CACHE_HOME="$HOME/.cache"
exec Hyprland
'')
exec Hyprland
''

View File

@@ -1,12 +1,13 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "lofi" ''
#!/usr/bin/env bash
if (ps aux | grep mpv | grep -v grep > /dev/null) then
pkgs.writeShellScriptBin "lofi" ('' pkill mpv
#!/usr/bin/env bash else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
if (ps aux | grep mpv | grep -v grep > /dev/null) then fi
pkill mpv ''
else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
fi
'')

View File

@@ -1,15 +1,16 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "music" ''
#!/usr/bin/env bash
if (ps aux | grep audacious | grep -v grep > /dev/null) then
pkgs.writeShellScriptBin "music" ('' pkill audacious
#!/usr/bin/env bash else
hyprctl dispatch exec "[workspace 5 silent] audacious -t ~/Music/playlist"
if (ps aux | grep audacious | grep -v grep > /dev/null) then sleep 0.5
pkill audacious audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
else audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
hyprctl dispatch exec "[workspace 5 silent] audacious -t ~/Music/playlist" fi
sleep 0.5 ''
audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
fi
'')

View File

@@ -1,20 +1,23 @@
{ self, pkgs, ... }: {
self,
pkgs,
...
}:
pkgs.writeShellScriptBin "passhelper" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "passhelper" ('' # prevent multiple instances, conditional check happens in the hyprland bind
#!/run/current-system/sw/bin/bash touch /tmp/passhelperfile
trap "[ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile" EXIT SIGHUP SIGINT
# prevent multiple instances, conditional check happens in the hyprland bind # get passwords from password store, remove .password store/ prefix and .gpg suffix, exlude .gpg-id file, open results in fzf
touch /tmp/passhelperfile pass_string=$(find $HOME/.password-store -type f | sed 's|.*/.password-store/||; s|\.gpg$||' | sed 's|^\([^/]*\)|\x1b[32m\1\x1b[0m|' | rg -v "\.git|.gpg-id" | sort -r | fzf --border --border-label="$(whoami)'s keyring" --ansi --layout=reverse)
trap "[ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile" EXIT SIGHUP SIGINT
# get passwords from password store, remove .password store/ prefix and .gpg suffix, exlude .gpg-id file, open results in fzf [ $? = 0 ] || { [ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile; exit 1; }
pass_string=$(find $HOME/.password-store -type f | sed 's|.*/.password-store/||; s|\.gpg$||' | sed 's|^\([^/]*\)|\x1b[32m\1\x1b[0m|' | rg -v "\.git|.gpg-id" | sort -r | fzf --border --border-label="$(whoami)'s keyring" --ansi --layout=reverse)
[ $? = 0 ] || { [ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile; exit 1; } # pass it through fmt for soft word wrapping
pass -c "$pass_string" | fmt -w 45
# pass it through fmt for soft word wrapping /run/current-system/sw/bin/rm /tmp/passhelperfile
pass -c "$pass_string" | fmt -w 45 sleep 0.5
/run/current-system/sw/bin/rm /tmp/passhelperfile exit 0
sleep 0.5 ''
exit 0
'')

View File

@@ -1,8 +1,9 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "power-menu" ''
#!/usr/bin/env bash
rofi -show p -modi p:'rofi-power-menu' -theme-str 'window {width: 10em; height: 15em;} listview {lines: 5;}'
pkgs.writeShellScriptBin "power-menu" ('' ''
#!/usr/bin/env bash
rofi -show p -modi p:'rofi-power-menu' -theme-str 'window {width: 10em; height: 15em;} listview {lines: 5;}'
'')

View File

@@ -1,20 +1,21 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "shutdown-script" ''
#!/usr/bin/env zsh
respond="$(echo " Shutdown\n Restart\n Cancel" | rofi -dmenu)"
pkgs.writeShellScriptBin "shutdown-script" ('' if [ $respond = ' Shutdown' ]
#!/usr/bin/env zsh then
echo "shutdown"
respond="$(echo " Shutdown\n Restart\n Cancel" | rofi -dmenu)" shutdown now
elif [ $respond = ' Restart' ]
if [ $respond = ' Shutdown' ] then
then echo "restart"
echo "shutdown" reboot
shutdown now else
elif [ $respond = ' Restart' ] notify-send "cancel shutdown"
then fi
echo "restart" ''
reboot
else
notify-send "cancel shutdown"
fi
'')

View File

@@ -1,8 +1,9 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "switchmon" ''
#!/bin/zsh
hyprctl dispatch focusmonitor $(echo "$(hyprctl -j monitors)" | jq -r '.[] | select(.focused == false) | .name')
pkgs.writeShellScriptBin "switchmon" ('' ''
#!/bin/zsh
hyprctl dispatch focusmonitor $(echo "$(hyprctl -j monitors)" | jq -r '.[] | select(.focused == false) | .name')
'')

View File

@@ -1,12 +1,13 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_blur" ''
#!/usr/bin/env bash
if hyprctl getoption decoration:blur:enabled | grep "int: 1" >/dev/null ; then
pkgs.writeShellScriptBin "toggle_blur" ('' hyprctl keyword decoration:blur:enabled false >/dev/null
#!/usr/bin/env bash else
hyprctl keyword decoration:blur:enabled true >/dev/null
if hyprctl getoption decoration:blur:enabled | grep "int: 1" >/dev/null ; then fi
hyprctl keyword decoration:blur:enabled false >/dev/null ''
else
hyprctl keyword decoration:blur:enabled true >/dev/null
fi
'')

View File

@@ -1,10 +1,11 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_float" ''
#!/usr/bin/env bash
hyprctl dispatch togglefloating
pkgs.writeShellScriptBin "toggle_float" ('' hyprctl dispatch resizeactive exact 950 600
#!/usr/bin/env bash hyprctl dispatch centerwindow
''
hyprctl dispatch togglefloating
hyprctl dispatch resizeactive exact 950 600
hyprctl dispatch centerwindow
'')

View File

@@ -1,14 +1,15 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_oppacity" ''
#!/usr/bin/env bash
if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then
pkgs.writeShellScriptBin "toggle_oppacity" ('' hyprctl keyword decoration:active_opacity 0.90 >/dev/null
#!/usr/bin/env bash hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null
else
if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then hyprctl keyword decoration:active_opacity 1 >/dev/null
hyprctl keyword decoration:active_opacity 0.90 >/dev/null hyprctl keyword decoration:inactive_opacity 1 >/dev/null
hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null fi
else ''
hyprctl keyword decoration:active_opacity 1 >/dev/null
hyprctl keyword decoration:inactive_opacity 1 >/dev/null
fi
'')

View File

@@ -1,15 +1,16 @@
{ self, pkgs }: {
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_waybar" ''
#!/usr/bin/env bash
SERVICE=".waybar-wrapped"
pkgs.writeShellScriptBin "toggle_waybar" ('' if pgrep -x "$SERVICE" >/dev/null
#!/usr/bin/env bash then
pkill -9 waybar
SERVICE=".waybar-wrapped" else
runbg waybar
if pgrep -x "$SERVICE" >/dev/null fi
then ''
pkill -9 waybar
else
runbg waybar
fi
'')

View File

@@ -1,7 +1,5 @@
{ pkgs, ... }: {pkgs, ...}: {
home.packages = with pkgs; [swaynotificationcenter];
{
home.packages = (with pkgs; [ swaynotificationcenter ]);
xdg.configFile."swaync/style.css".source = ./style.css; xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json; xdg.configFile."swaync/config.json".source = ./config.json;
} }

View File

@@ -1,7 +1,6 @@
{ ... }: {...}: {
imports =
{ [(import ./waybar.nix)]
imports = [ (import ./waybar.nix) ] ++ [(import ./settings.nix)]
++ [ (import ./settings.nix) ] ++ [(import ./style.nix)];
++ [ (import ./style.nix) ];
} }

View File

@@ -1,149 +1,147 @@
{ ... }: {...}: {
{
programs.waybar.settings.mainBar = { programs.waybar.settings.mainBar = {
position= "top"; position = "top";
layer= "top"; layer = "top";
height= 5; height = 5;
margin-top= 0; margin-top = 0;
margin-bottom= 0; margin-bottom = 0;
margin-left= 0; margin-left = 0;
margin-right= 0; margin-right = 0;
modules-left= [ modules-left = [
"custom/launcher" "custom/launcher"
"custom/separator" "custom/separator"
"hyprland/workspaces" "hyprland/workspaces"
]; ];
modules-center= [ modules-center = [
"clock" "clock"
]; ];
modules-right= [ modules-right = [
"tray" "tray"
"custom/separator" "custom/separator"
"cpu" "cpu"
"memory" "memory"
"disk" "disk"
"custom/separator" "custom/separator"
"pulseaudio" "pulseaudio"
"battery" "battery"
"network" "network"
"custom/separator" "custom/separator"
"custom/notification" "custom/notification"
]; ];
clock= { clock = {
calendar = { calendar = {
format = { today = "<span color='#b4befe'><b><u>{}</u></b></span>"; }; format = {today = "<span color='#b4befe'><b><u>{}</u></b></span>";};
}; };
format = " {:%H:%M}"; format = " {:%H:%M}";
tooltip= "true"; tooltip = "true";
tooltip-format= "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt= " {:%d/%m}"; format-alt = " {:%d/%m}";
}; };
"hyprland/workspaces"= { "hyprland/workspaces" = {
active-only= false; active-only = false;
disable-scroll= true; disable-scroll = true;
format = "{icon}"; format = "{icon}";
on-click= "activate"; on-click = "activate";
format-icons= { format-icons = {
"1"= ""; "1" = "";
"2"= ""; "2" = "";
"3"= ""; "3" = "";
"4"= ""; "4" = "";
"5"= ""; "5" = "";
"6"= ""; "6" = "";
urgent= ""; urgent = "";
default = ""; default = "";
sort-by-number= true; sort-by-number = true;
}; };
persistent-workspaces = { persistent-workspaces = {
"1"= []; "1" = [];
"2"= []; "2" = [];
"3"= []; "3" = [];
"4"= []; "4" = [];
"5"= []; "5" = [];
"6"= []; "6" = [];
}; };
}; };
memory= { memory = {
format= "󰟜 {}%"; format = "󰟜 {}%";
format-alt= "󰟜 {used} GiB"; #  format-alt = "󰟜 {used} GiB"; # 
interval= 2; interval = 2;
}; };
cpu= { cpu = {
format= " {usage}%"; format = " {usage}%";
format-alt= " {avg_frequency} GHz"; format-alt = " {avg_frequency} GHz";
interval= 2; interval = 2;
}; };
disk = { disk = {
# path = "/"; # path = "/";
format = "󰋊 {percentage_used}%"; format = "󰋊 {percentage_used}%";
interval= 60; interval = 60;
}; };
network = { network = {
format-wifi = " {signalStrength}%"; format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 "; format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)"; format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 "; format-disconnected = "󰖪 ";
}; };
tray= { tray = {
icon-size= 20; icon-size = 20;
spacing= 8; spacing = 8;
}; };
pulseaudio= { pulseaudio = {
format= "{icon} {volume}%"; format = "{icon} {volume}%";
format-muted= " {volume}%"; format-muted = " {volume}%";
format-icons= { format-icons = {
default= [" "]; default = [" "];
}; };
scroll-step= 5; scroll-step = 5;
on-click= "pamixer -t"; on-click = "pamixer -t";
on-click-right= "pavucontrol"; on-click-right = "pavucontrol";
}; };
battery = { battery = {
format = "{icon} {capacity}%"; format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "]; format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%"; format-charging = " {capacity}%";
format-full = " {capacity}%"; format-full = " {capacity}%";
format-warning = " {capacity}%"; format-warning = " {capacity}%";
interval = 5; interval = 5;
states = { states = {
warning = 20; warning = 20;
}; };
format-time = "{H}h{M}m"; format-time = "{H}h{M}m";
tooltip = true; tooltip = true;
tooltip-format = "{time}"; tooltip-format = "{time}";
}; };
"custom/launcher"= { "custom/launcher" = {
format= ""; format = "";
on-click= "fuzzel"; on-click = "fuzzel";
on-click-right= "wallpaper-picker"; on-click-right = "wallpaper-picker";
tooltip= "false"; tooltip = "false";
}; };
"custom/notification" = { "custom/notification" = {
tooltip = false; tooltip = false;
format = "{icon} "; format = "{icon} ";
format-icons = { format-icons = {
notification = "<span foreground='red'><sup></sup></span> "; notification = "<span foreground='red'><sup></sup></span> ";
none = " "; none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> "; dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " "; dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> "; inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " "; inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> "; dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " "; dnd-inhibited-none = " ";
}; };
return-type = "json"; return-type = "json";
exec-if = "which swaync-client"; exec-if = "which swaync-client";
exec = "swaync-client -swb"; exec = "swaync-client -swb";
on-click = "swaync-client -t -sw"; on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw"; on-click-right = "swaync-client -d -sw";
escape = true; escape = true;
};
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
}; };
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
};
}; };
} }

View File

@@ -1,6 +1,5 @@
{ ... }: {...}: let
custom = {
let custom = {
font = "JetBrainsMono Nerd Font"; font = "JetBrainsMono Nerd Font";
font_size = "22px"; font_size = "22px";
font_weight = "bold"; font_weight = "bold";
@@ -8,93 +7,92 @@ let custom = {
secondary_accent = "#89b4fa"; secondary_accent = "#89b4fa";
tertiary_accent = "#f5f5f5"; tertiary_accent = "#f5f5f5";
background = "#11111B"; background = "#11111B";
}; };
in in {
{
programs.waybar.style = '' programs.waybar.style = ''
* { * {
border: none; border: none;
border-radius: 0px; border-radius: 0px;
padding: 0; padding: 0;
margin: 0; margin: 0;
min-height: 0px; min-height: 0px;
font-family: ${custom.font}; font-family: ${custom.font};
font-weight: ${custom.font_weight}; font-weight: ${custom.font_weight};
} }
window#waybar { window#waybar {
background: ${custom.background}; background: ${custom.background};
} }
#workspaces { #workspaces {
font-size: ${custom.font_size}; font-size: ${custom.font_size};
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification { }
font-size: ${custom.font_size}; #workspaces button {
color: ${custom.text_color}; color: ${custom.text_color};
} padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
#cpu { #tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
padding-left: 5px; font-size: ${custom.font_size};
padding-right: 9px; color: ${custom.text_color};
} }
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#tray { #cpu {
margin-left: 7px; padding-left: 5px;
padding-right: 5px; padding-right: 9px;
} }
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#pulseaudio { #tray {
padding-left: 5px; margin-left: 7px;
padding-right: 9px; padding-right: 5px;
} }
#battery {
padding-left: 9px;
padding-right: 9px;
}
#network {
padding-left: 9px;
padding-right: 5px;
}
custom-notification { #pulseaudio {
padding-left: 15px; padding-left: 5px;
padding-right: 20px; padding-right: 9px;
} }
#battery {
#clock { padding-left: 9px;
padding-left: 9px; padding-right: 9px;
padding-right: 15px; }
} #network {
padding-left: 9px;
padding-right: 5px;
}
#custom-launcher { custom-notification {
font-size: ${custom.font_size}; padding-left: 15px;
color: #b4befe; padding-right: 20px;
font-weight: ${custom.font_weight}; }
padding-left: 10px;
padding-right: 15px; #clock {
} padding-left: 9px;
padding-right: 15px;
}
#custom-launcher {
font-size: ${custom.font_size};
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 15px;
}
''; '';
} }

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.waybar = { programs.waybar = {
enable = true; enable = true;
}; };
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: { programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
}); });
} }

View File

@@ -1,13 +1,19 @@
{ inputs, nixpkgs, config, self, username, host, ... }:
{ {
imports = inputs,
[ (import ./hardware/bootloader.nix) ] nixpkgs,
++ [ (import ./hardware/network.nix) ] config,
++ [ (import ./software/fonts.nix) ] self,
++ [ (import ./software/sddm.nix) ] username,
++ [ (import ./software/packages.nix) ] host,
++ [ (import ./software/programs.nix) ] ...
++ [ (import ./software/services.nix) ] }: {
++ [ (import ./software/users.nix) ]; imports =
[(import ./hardware/bootloader.nix)]
++ [(import ./hardware/network.nix)]
++ [(import ./software/fonts.nix)]
++ [(import ./software/sddm.nix)]
++ [(import ./software/packages.nix)]
++ [(import ./software/programs.nix)]
++ [(import ./software/services.nix)]
++ [(import ./software/users.nix)];
} }

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }: {pkgs, ...}: {
boot = {
{ loader.systemd-boot.enable = true;
boot = { loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.enable = true; loader.systemd-boot.configurationLimit = 10;
loader.efi.canTouchEfiVariables = true; kernelPackages = pkgs.linuxPackages_latest;
loader.systemd-boot.configurationLimit = 10; };
kernelPackages = pkgs.linuxPackages_latest;
};
} }

View File

@@ -1,18 +1,18 @@
{ host, ... }: {host, ...}: {
networking = {
{ networkmanager.enable = true;
networking = { hostName =
networkmanager.enable = true; if (host == "desktop")
hostName = if (host == "desktop") then then "argon"
"argon" else "mercury"; else "mercury";
hosts = { hosts = {
"192.168.1.163" = [ "glasshaus" ]; "192.168.1.163" = ["glasshaus"];
"192.168.1.111" = [ "argon" ]; "192.168.1.111" = ["argon"];
"192.168.1.223" = [ "mercury" ]; "192.168.1.223" = ["mercury"];
}; };
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ 30000 ]; allowedTCPPorts = [30000];
}; };
}; };
} }

View File

@@ -1,9 +1,7 @@
{ pkgs, ... }: {pkgs, ...}: {
fonts.packages = with pkgs; [
{ times-newer-roman
fonts.packages = with pkgs; [ nerdfonts
times-newer-roman jetbrains-mono
nerdfonts ];
jetbrains-mono
];
} }

View File

@@ -1,71 +1,74 @@
{ pkgs, inputs, ... }:
{ {
environment.systemPackages = with pkgs; [ pkgs,
alsa-lib inputs,
alsa-utils ...
bc }: {
cava environment.systemPackages = with pkgs; [
clang alejandra
clang-tools alsa-lib
cmake alsa-utils
fail2ban bc
feh cava
ffmpeg-full clang
fuse clang-tools
git cmake
gnumake fail2ban
gst_all_1.gstreamer feh
htop ffmpeg-full
hyprland fuse
hyprland-workspaces git
hyprpaper gnumake
hyprpicker gst_all_1.gstreamer
imagemagick htop
inetutils hyprland
kitty hyprland-workspaces
libclang hyprpaper
libcxx hyprpicker
lolcat imagemagick
lsof inetutils
lua-language-server kitty
luarocks libclang
mesa libcxx
mpd lolcat
mullvad lsof
neofetch lua-language-server
nix-index luarocks
nix-prefetch-scripts mesa
nixos-option mpd
nix-search-cli mullvad
openssl neofetch
p7zip nix-index
jq nix-prefetch-scripts
pamixer nixos-option
parted nix-search-cli
pavucontrol openssl
pkg-config p7zip
playerctl jq
protonmail-bridge pamixer
protontricks parted
pyright pavucontrol
quintom-cursor-theme pkg-config
socat playerctl
sox protonmail-bridge
stress protontricks
tor pyright
tree quintom-cursor-theme
unrar socat
unzip sox
usbutils stress
vim tor
vscode-langservers-extracted tree
vulkan-loader unrar
wget unzip
wine usbutils
wl-clipboard vim
xpad vscode-langservers-extracted
libnotify vulkan-loader
file wget
]; wine
wl-clipboard
xpad
libnotify
file
];
} }

View File

@@ -1,19 +1,17 @@
{ pkgs, ... }: {pkgs, ...}: {
programs = {
{ hyprland.enable = true;
programs = { zsh.enable = true;
hyprland.enable = true; nix-ld = {
zsh.enable = true; enable = true;
nix-ld = { libraries = with pkgs; [
enable = true; stdenv.cc.cc
libraries = with pkgs; [ ffmpeg-full
stdenv.cc.cc ];
ffmpeg-full };
]; gnupg.agent = {
}; enable = true;
gnupg.agent = { enableSSHSupport = true;
enable = true; };
enableSSHSupport = true; };
};
};
} }

View File

@@ -1,18 +1,23 @@
{ pkgs, self, config, ... }:
{ {
environment.systemPackages = [( pkgs,
pkgs.catppuccin-sddm.override { self,
flavor="mocha"; config,
font="JetBrains Mono"; ...
fontSize="9"; }: {
background="${self}/media/wallpapers/catppuccin/nixos-catppuccin.png"; environment.systemPackages = [
} (
)]; pkgs.catppuccin-sddm.override {
services.displayManager.sddm = { flavor = "mocha";
enable = true; font = "JetBrains Mono";
wayland.enable = true; fontSize = "9";
theme = "catppuccin-mocha"; background = "${self}/media/wallpapers/catppuccin/nixos-catppuccin.png";
package = pkgs.kdePackages.sddm; }
}; )
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
};
} }

View File

@@ -1,18 +1,16 @@
{ pkgs, ...}: {pkgs, ...}: {
services = {
{ pipewire = {
services = { enable = true;
pipewire = { pulse.enable = true;
enable = true; wireplumber.enable = true;
pulse.enable = true; alsa.enable = true;
wireplumber.enable = true; alsa.support32Bit = true;
alsa.enable = true; };
alsa.support32Bit = true; udev.enable = true;
}; dbus.enable = true;
udev.enable = true; mullvad-vpn.enable = true;
dbus.enable = true; blueman.enable = true;
mullvad-vpn.enable = true; openssh.enable = true;
blueman.enable = true; };
openssh.enable = true;
};
} }

View File

@@ -1,37 +1,42 @@
{ config, inputs, pkgs, username, self, host, ... }:
let
nur = config.nur;
in
{ {
imports = [ inputs.home-manager.nixosModules.home-manager ]; config,
home-manager = { inputs,
useUserPackages = true; pkgs,
useGlobalPkgs = true; username,
backupFileExtension = "backup"; self,
extraSpecialArgs = { inherit self inputs host username nur; }; host,
users.${username} = { ...
programs.home-manager.enable = true; }: let
imports = [ ./../../home ]; nur = config.nur;
home = { in {
username = "${username}"; imports = [inputs.home-manager.nixosModules.home-manager];
homeDirectory = "/home/${username}"; home-manager = {
stateVersion = "24.05"; useUserPackages = true;
pointerCursor = { useGlobalPkgs = true;
name = "Quintom_Ink"; backupFileExtension = "backup";
size = 36; extraSpecialArgs = {inherit self inputs host username nur;};
package = pkgs.quintom-cursor-theme; users.${username} = {
}; programs.home-manager.enable = true;
}; imports = [./../../home];
}; home = {
}; username = "${username}";
users.users.${username} = { homeDirectory = "/home/${username}";
isNormalUser = true; stateVersion = "24.05";
shell = pkgs.zsh; pointerCursor = {
extraGroups = [ "wheel" ]; name = "Quintom_Ink";
}; size = 36;
security.sudo.extraConfig = '' package = pkgs.quintom-cursor-theme;
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild };
''; };
nix.settings.allowed-users = [ "${username}" ]; };
};
users.users.${username} = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = ["wheel"];
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = ["${username}"];
} }

View File

@@ -1,24 +1,24 @@
{ {
autoCmd = [ autoCmd = [
{ {
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh"; command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = [ "VimEnter" ]; event = ["VimEnter"];
pattern = [ "*" ]; pattern = ["*"];
} }
{ {
command = "silent! mkview"; command = "silent! mkview";
event = [ "BufWinLeave" ]; event = ["BufWinLeave"];
pattern = [ "*" ]; pattern = ["*"];
} }
{ {
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &"; command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = [ "BufWinLeave" ]; event = ["BufWinLeave"];
pattern = [ "*" ]; pattern = ["*"];
} }
{ {
command = "silent! loadview"; command = "silent! loadview";
event = [ "BufWinEnter" ]; event = ["BufWinEnter"];
pattern = [ "*" ]; pattern = ["*"];
} }
]; ];
} }

View File

@@ -1,19 +1,18 @@
{ {
imports = [ imports = [
./plugins/alpha.nix ./plugins/alpha.nix
./plugins/vim-matchup.nix ./plugins/vim-matchup.nix
./plugins/coq.nix ./plugins/coq.nix
./plugins/barbar.nix ./plugins/barbar.nix
./plugins/cmp.nix ./plugins/cmp.nix
./plugins/lsp.nix ./plugins/lsp.nix
./plugins/lualine.nix ./plugins/lualine.nix
./plugins/plugins.nix ./plugins/plugins.nix
./plugins/nvim-tree.nix ./plugins/nvim-tree.nix
./plugins/telescope.nix ./plugins/telescope.nix
./plugins/extra_plugins.nix ./plugins/extra_plugins.nix
./options.nix ./options.nix
./keymaps.nix ./keymaps.nix
./autocmd.nix ./autocmd.nix
]; ];
} }

View File

@@ -1,29 +1,29 @@
{ {
keymaps = [ keymaps = [
{ {
action = "<C-W>W"; action = "<C-W>W";
key = "<S-Tab>"; key = "<S-Tab>";
mode = "n"; mode = "n";
} }
{ {
action = "<C-w>w"; action = "<C-w>w";
key = "<Tab>"; key = "<Tab>";
mode = "n"; mode = "n";
} }
{ {
action = "<cmd>FloatermToggle shadeterm<CR>"; action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>"; key = "<F2>";
mode = "n"; mode = "n";
} }
{ {
action = "<cmd>NvimTreeToggle<CR>"; action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>"; key = "<F3>";
mode = "n"; mode = "n";
} }
{ {
action = "<cmd>FloatermToggle shadeterm<CR>"; action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>"; key = "<F2>";
mode = "t"; mode = "t";
} }
]; ];
} }

View File

@@ -1,41 +1,41 @@
{ {
colorschemes = { colorschemes = {
catppuccin = { catppuccin = {
enable = true; enable = true;
settings.flavour = "mocha"; settings.flavour = "mocha";
}; };
kanagawa = { kanagawa = {
enable = false; enable = false;
}; };
}; };
diagnostics.signs = false;
extraConfigLua = ''
if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0
end
if vim.g.neovide then
vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.g.neovide_cursor_animate_in_insert_mode = false
end
vim.opt.number = true diagnostics.signs = false;
vim.opt.relativenumber = true extraConfigLua = ''
vim.opt.hlsearch = true if vim.g.started_by_firenvim == true then
vim.opt.incsearch = true vim.o.laststatus = 0
vim.opt.shiftwidth = 4 end
vim.opt.tabstop = 4 if vim.g.neovide then
vim.opt.termguicolors = true vim.g.neovide_refresh_rate = 144
vim.opt.ruler = true vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.opt.scrolloff = 6 vim.g.neovide_cursor_animate_in_insert_mode = false
vim.opt.undofile = true end
vim.opt.foldmethod = "manual"
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.textwidth = 135
vim.opt.breakat = " \t!@*-+;:,./?"
vim.g.mapleader = "!" vim.opt.number = true
''; vim.opt.relativenumber = true
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.termguicolors = true
vim.opt.ruler = true
vim.opt.scrolloff = 6
vim.opt.undofile = true
vim.opt.foldmethod = "manual"
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.textwidth = 135
vim.opt.breakat = " \t!@*-+;:,./?"
vim.g.mapleader = "!"
'';
} }

View File

@@ -1,6 +1,6 @@
{ {
plugins.alpha = { plugins.alpha = {
enable = true; enable = true;
theme = "dashboard"; theme = "dashboard";
}; };
} }

View File

@@ -1,8 +1,8 @@
{ {
plugins.barbar = { plugins.barbar = {
enable = true; enable = true;
settings = { settings = {
auto_hide = 1; auto_hide = 1;
}; };
}; };
} }

View File

@@ -1,10 +1,10 @@
{ {
plugins.cmp = { plugins.cmp = {
autoEnableSources = true; autoEnableSources = true;
settings.sources = [ settings.sources = [
{ name = "nvim_lsp"; } {name = "nvim_lsp";}
{ name = "path"; } {name = "path";}
{ name = "buffer"; } {name = "buffer";}
]; ];
}; };
} }

View File

@@ -1,8 +1,8 @@
{ {
plugins.coq-nvim = { plugins.coq-nvim = {
enable = true; enable = true;
settings = { settings = {
auto_start = true; auto_start = true;
}; };
}; };
} }

View File

@@ -1,51 +1,50 @@
{ pkgs, ... }: {pkgs, ...}: {
extraPlugins = [
{ (pkgs.vimUtils.buildVimPlugin {
extraPlugins = [ # vimwiki
(pkgs.vimUtils.buildVimPlugin { # vimwiki name = "vimwiki";
name = "vimwiki"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "vimwiki";
owner = "vimwiki"; repo = "vimwiki";
repo = "vimwiki"; rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf";
rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf"; hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM=";
hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM="; };
}; })
}) (pkgs.vimUtils.buildVimPlugin {
(pkgs.vimUtils.buildVimPlugin { name = "vim-markdown";
name = "vim-markdown"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "preservim";
owner = "preservim"; repo = "vim-markdown";
repo = "vim-markdown"; rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51";
rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51"; hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM=";
hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM="; };
}; })
}) (pkgs.vimUtils.buildVimPlugin {
(pkgs.vimUtils.buildVimPlugin { name = "vim-sneak";
name = "vim-sneak"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "justinmk";
owner = "justinmk"; repo = "vim-sneak";
repo = "vim-sneak"; rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd";
rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd"; hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk=";
hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk="; };
}; })
}) (pkgs.vimUtils.buildVimPlugin {
(pkgs.vimUtils.buildVimPlugin { name = "vim-slash";
name = "vim-slash"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "junegunn";
owner = "junegunn"; repo = "vim-slash";
repo = "vim-slash"; rev = "31aee09b7ea8893a18fa34f65e63e364fc998444";
rev = "31aee09b7ea8893a18fa34f65e63e364fc998444"; hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU=";
hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU="; };
}; })
}) (pkgs.vimUtils.buildVimPlugin {
(pkgs.vimUtils.buildVimPlugin { name = "automkdir.nvim";
name = "automkdir.nvim"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "mateuszwieloch";
owner = "mateuszwieloch"; repo = "automkdir.nvim";
repo = "automkdir.nvim"; rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de";
rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de"; hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU=";
hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU="; };
}; })
}) ];
];
} }

View File

@@ -1,18 +1,18 @@
{ {
plugins.lsp = { plugins.lsp = {
enable = true; enable = true;
servers = { servers = {
bashls.enable = true; bashls.enable = true;
ccls.enable = true; ccls.enable = true;
clangd.enable = true; clangd.enable = true;
cmake.enable = true; cmake.enable = true;
html.enable = true; html.enable = true;
jsonls.enable = true; jsonls.enable = true;
lua-ls.enable = true; lua-ls.enable = true;
marksman.enable = true; marksman.enable = true;
nil-ls.enable = true; nil-ls.enable = true;
pyright.enable = true; pyright.enable = true;
sqls.enable = true; sqls.enable = true;
}; };
}; };
} }

View File

@@ -1,36 +1,42 @@
{ {
plugins.lualine = { plugins.lualine = {
enable = true; enable = true;
settings = { settings = {
options = { options = {
icons_enabled = true; icons_enabled = true;
theme = "auto"; theme = "auto";
component_separators = {left = ""; right = "";}; component_separators = {
section_separators = {left = ""; right = "";}; left = "";
always_divide_middle = true; right = "";
globalstatus = false; };
refresh = { section_separators = {
statusline = 1000; left = "";
tabline = 1000; right = "";
winbar = 1000; };
}; always_divide_middle = true;
}; globalstatus = false;
sections = { refresh = {
lualine_a = ["mode"]; statusline = 1000;
lualine_b = ["buffers"]; tabline = 1000;
lualine_c = [""]; winbar = 1000;
lualine_x = ["searchcount" "fileformat" "filetype"]; };
lualine_y = ["branch" "diff" "diagnostics"]; };
lualine_z = ["location"]; sections = {
}; lualine_a = ["mode"];
inactive_sections = { lualine_b = ["buffers"];
lualine_a = []; lualine_c = [""];
lualine_b = []; lualine_x = ["searchcount" "fileformat" "filetype"];
lualine_c = ["filename"]; lualine_y = ["branch" "diff" "diagnostics"];
lualine_x = ["location"]; lualine_z = ["location"];
lualine_y = []; };
lualine_z = []; inactive_sections = {
}; lualine_a = [];
}; lualine_b = [];
}; lualine_c = ["filename"];
lualine_x = ["location"];
lualine_y = [];
lualine_z = [];
};
};
};
} }

View File

@@ -1,84 +1,86 @@
{ {
plugins.nvim-tree = { plugins.nvim-tree = {
enable = true; enable = true;
hijackUnnamedBufferWhenOpening = false; hijackUnnamedBufferWhenOpening = false;
openOnSetup = false; openOnSetup = false;
onAttach = { __raw = '' onAttach = {
function(bufnr) __raw = ''
local api = require('nvim-tree.api') function(bufnr)
local api = require('nvim-tree.api')
local function opts(desc) local function opts(desc)
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end end
-- BEGIN_DEFAULT_ON_ATTACH -- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD')) vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place')) vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info')) vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename')) vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab')) vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split')) vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split')) vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory')) vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open')) vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview')) vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory')) vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory'))
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked')) vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked'))
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer')) vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean')) vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All'))
vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename'))
vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic'))
vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic'))
vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear')) vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear'))
vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start')) vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename')) vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles')) vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore')) vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty')) vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty'))
vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark')) vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close')) vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path')) vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path'))
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden')) vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
-- END_DEFAULT_ON_ATTACH -- END_DEFAULT_ON_ATTACH
end end
''; }; '';
view = { };
side = "right"; view = {
centralizeSelection = true; side = "right";
number = true; centralizeSelection = true;
relativenumber = true; number = true;
width = 40; relativenumber = true;
}; width = 40;
}; };
};
} }

View File

@@ -1,22 +1,22 @@
{ {
plugins = { plugins = {
nvim-surround.enable = true; nvim-surround.enable = true;
indent-blankline.enable = true; indent-blankline.enable = true;
treesitter.enable = true; treesitter.enable = true;
lastplace.enable = true; lastplace.enable = true;
markdown-preview.enable = true; markdown-preview.enable = true;
gitsigns.enable = true; gitsigns.enable = true;
web-devicons.enable = true; web-devicons.enable = true;
endwise.enable = true; endwise.enable = true;
marks.enable = true; marks.enable = true;
trouble.enable = true; trouble.enable = true;
floaterm.enable = true; floaterm.enable = true;
fugitive.enable = true; fugitive.enable = true;
rustaceanvim.enable = true; rustaceanvim.enable = true;
firenvim.enable = true; firenvim.enable = true;
dap = { dap = {
enable = true; enable = true;
extensions.dap-ui.enable = true; extensions.dap-ui.enable = true;
}; };
}; };
} }

View File

@@ -1,12 +1,12 @@
{ {
plugins.telescope = { plugins.telescope = {
enable = true; enable = true;
settings = { settings = {
pickers = { pickers = {
find_files = { find_files = {
hidden = true; hidden = true;
}; };
}; };
}; };
}; };
} }

View File

@@ -1,21 +1,21 @@
{ {
plugins.vim-matchup = { plugins.vim-matchup = {
enable = true; enable = true;
enableSurround = true; enableSurround = true;
textObj.enable = true; textObj.enable = true;
motion = { motion = {
enable = true; enable = true;
cursorEnd = true; cursorEnd = true;
}; };
matchParen = { matchParen = {
hiSurroundAlways = true; hiSurroundAlways = true;
offscreen = { offscreen = {
method = "popup"; method = "popup";
}; };
}; };
treesitterIntegration = { treesitterIntegration = {
enable = true; enable = true;
includeMatchWords = true; includeMatchWords = true;
}; };
}; };
} }

View File

@@ -14,14 +14,13 @@
}; };
}; };
outputs = outputs = {
{ nixvim,
nixvim, flake-parts,
flake-parts, pre-commit-hooks,
pre-commit-hooks, ...
... } @ inputs:
}@inputs: flake-parts.lib.mkFlake {inherit inputs;} {
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ systems = [
"aarch64-linux" "aarch64-linux"
"x86_64-linux" "x86_64-linux"
@@ -29,44 +28,41 @@
"x86_64-darwin" "x86_64-darwin"
]; ];
perSystem = perSystem = {
{ system,
system, pkgs,
pkgs, self',
self', ...
... }: let
}: nixvim' = nixvim.legacyPackages.${system};
let nvim = nixvim'.makeNixvimWithModule {
nixvim' = nixvim.legacyPackages.${system}; inherit pkgs;
nvim = nixvim'.makeNixvimWithModule { module = ./config;
inherit pkgs; };
module = ./config; in {
}; checks = {
in pre-commit-check = pre-commit-hooks.lib.${system}.run {
{ src = ./.;
checks = { hooks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run { statix.enable = true;
src = ./.; nixfmt-rfc-style.enable = true;
hooks = { deadnix = {
statix.enable = true; enable = true;
nixfmt-rfc-style.enable = true; settings = {
deadnix = { edit = true;
enable = true;
settings = {
edit = true;
};
}; };
}; };
}; };
}; };
formatter = pkgs.nixfmt-rfc-style;
packages.default = nvim;
devShells = {
default = with pkgs; mkShell { inherit (self'.checks.pre-commit-check) shellHook; };
};
}; };
formatter = pkgs.nixfmt-rfc-style;
packages.default = nvim;
devShells = {
default = with pkgs; mkShell {inherit (self'.checks.pre-commit-check) shellHook;};
};
};
}; };
} }

View File

@@ -5,8 +5,11 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
}; };
outputs = { self, nixpkgs, ... }@inputs: outputs = {
let self,
nixpkgs,
...
} @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
@@ -14,13 +17,13 @@
extraFonts = pkgs.fetchFromGitHub { extraFonts = pkgs.fetchFromGitHub {
owner = "xero"; owner = "xero";
repo = "figlet-fonts"; repo = "figlet-fonts";
rev = "master"; # Or specify a particular commit/tag rev = "master"; # Or specify a particular commit/tag
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; # Replace with actual hash sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; # Replace with actual hash
}; };
in { in {
packages.${system} = { packages.${system} = {
default = pkgs.toilet.overrideAttrs (oldAttrs: rec { default = pkgs.toilet.overrideAttrs (oldAttrs: rec {
buildInputs = oldAttrs.buildInputs or [] ++ [ extraFonts ]; buildInputs = oldAttrs.buildInputs or [] ++ [extraFonts];
installPhase = '' installPhase = ''
make install PREFIX=$out make install PREFIX=$out