Compare commits
68 Commits
2a8f6f3ded
...
working-br
| Author | SHA1 | Date | |
|---|---|---|---|
| 3392366413 | |||
| 85e1ecd46a | |||
| 3f83fc9d57 | |||
| f536cea5c3 | |||
| 3d5c6a443b | |||
| 283f9ad213 | |||
| 513cf526d8 | |||
| 069de41562 | |||
| 5bf0216460 | |||
| 62a324a746 | |||
| e380f07018 | |||
| 424a74773f | |||
| 064a996b73 | |||
| 20e338c380 | |||
| 57b5471d58 | |||
| c53b236d5b | |||
| aa5037b107 | |||
| 1de9399021 | |||
| 5748f4b2e7 | |||
| 8a573b1726 | |||
| 6d59c86b02 | |||
| f3843fd686 | |||
| e71e9c7a1d | |||
| 5e44c0e28c | |||
| 6b43a528f9 | |||
| cdb9b3f2f8 | |||
| 8f05b33391 | |||
| b7ba045305 | |||
| c631417ec5 | |||
| 702907d454 | |||
| f15568d031 | |||
| 76405677a0 | |||
| ffdbf536b5 | |||
| cce655e475 | |||
| f536023a14 | |||
| e8357a95ee | |||
| cb1249357d | |||
| 5aa036def8 | |||
| 1b45ef06f1 | |||
| 692558b7b8 | |||
| ae61c718e6 | |||
| fcf8b46e38 | |||
| 88366d7dbe | |||
| 972ca7186a | |||
| 7943950c79 | |||
| b3a27173eb | |||
| f6087ae017 | |||
| c18257042d | |||
| 93ac73b583 | |||
| 56c18519b3 | |||
| 17495207aa | |||
| b138866194 | |||
| 37398fccac | |||
| 994e2b18cd | |||
| 7bc49c9ba3 | |||
| 78a9be43cb | |||
| dd2068166a | |||
| 366d238141 | |||
| 6216d108a9 | |||
| 69522943d7 | |||
| 03cd45aac4 | |||
| 5cd18d4fcb | |||
| dab6ad4f42 | |||
| 287febcf99 | |||
| 4d7f3000cd | |||
| eb1666f310 | |||
| c110357818 | |||
| 98f47d6c6a |
4
README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# nixos-configs
|
||||
|
||||
## Misc references used
|
||||
* https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/tree/main
|
||||
25
flake.nix
@@ -28,7 +28,6 @@
|
||||
};
|
||||
modules = [
|
||||
./hosts/cap-slim7/configuration.nix
|
||||
./modules/nixos/hyprland-amd.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
nixos-hardware.nixosModules.lenovo-legion-16arha7
|
||||
];
|
||||
@@ -38,32 +37,8 @@
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hosts/cap-nr200p/configuration.nix
|
||||
./modules/nixos/hyprland.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
"caperren@cap-slim7" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraModules = [
|
||||
./home/caperren/common.nix
|
||||
./home/caperren/laptop.nix
|
||||
];
|
||||
username = "caperren";
|
||||
homeDirectory = "/home/caperren";
|
||||
};
|
||||
|
||||
"caperren@cap-nr200p" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraModules = [
|
||||
./home/caperren/common.nix
|
||||
./home/caperren/desktop1.nix
|
||||
];
|
||||
username = "caperren";
|
||||
homeDirectory = "/home/caperren";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,413 +11,50 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
# Hardware Scan
|
||||
./hardware-configuration.nix
|
||||
|
||||
# Users
|
||||
../../users/caperren/caperren.nix
|
||||
|
||||
# System Configuration
|
||||
../../modules/system/cpu-amd.nix
|
||||
../../modules/system/desktop.nix
|
||||
../../modules/system/fonts.nix
|
||||
../../modules/system/gpu-nvidia.nix
|
||||
../../modules/system/home-manager-settings.nix
|
||||
../../modules/system/hyprland.nix
|
||||
../../modules/system/internationalization.nix
|
||||
../../modules/system/networking.nix
|
||||
../../modules/system/nix-settings.nix
|
||||
../../modules/system/pipewire.nix
|
||||
../../modules/system/security.nix
|
||||
../../modules/system/systemd-boot.nix
|
||||
|
||||
# Application Groups
|
||||
../../modules/application-groups/3d-design.nix
|
||||
../../modules/application-groups/android.nix
|
||||
../../modules/application-groups/downloads.nix
|
||||
../../modules/application-groups/gaming.nix
|
||||
../../modules/application-groups/hobby-rc.nix
|
||||
../../modules/application-groups/homelab.nix
|
||||
../../modules/application-groups/media.nix
|
||||
../../modules/application-groups/media-creation.nix
|
||||
../../modules/application-groups/pcb-design.nix
|
||||
../../modules/application-groups/productivity.nix
|
||||
../../modules/application-groups/programming.nix
|
||||
../../modules/application-groups/radio.nix
|
||||
../../modules/application-groups/social.nix
|
||||
../../modules/application-groups/system-utilities.nix
|
||||
../../modules/application-groups/virtualization.nix
|
||||
../../modules/application-groups/web.nix
|
||||
];
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
boot = {
|
||||
# Make v4l2loopback kernel module available to NixOS.
|
||||
extraModulePackages = with config.boot.kernelPackages; [
|
||||
v4l2loopback
|
||||
];
|
||||
# Activate kernel module(s).
|
||||
kernelModules = [
|
||||
# Virtual camera.
|
||||
"v4l2loopback"
|
||||
# Virtual Microphone. Custom DroidCam v4l2loopback driver needed for audio.
|
||||
# "snd-aloop"
|
||||
];
|
||||
};
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
|
||||
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
|
||||
# https://github.com/umlaeute/v4l2loopback
|
||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||
'';
|
||||
|
||||
#
|
||||
nix.settings.download-buffer-size = 524288000;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "cap-nr200p"; # Define your hostname. #-#
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# hardware.u2f.enable = true;
|
||||
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# Enable flakes
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
]; # -#
|
||||
networking.hostName = "cap-nr200p"; # Define your hostname.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# services.xserver.enable = true;
|
||||
|
||||
# Enable the XFCE Desktop Environment.
|
||||
# services.xserver.displayManager.lightdm.enable = true;
|
||||
# services.xserver.desktopManager.xfce.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.caperren = {
|
||||
isNormalUser = true;
|
||||
description = "Corwin Perren";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"input"
|
||||
"dialout"
|
||||
"plugdev"
|
||||
"adbusers"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
# users.users.crestline = {
|
||||
# isNormalUser = true;
|
||||
# description = "Crestline";
|
||||
# extraGroups = [
|
||||
# "networkmanager"
|
||||
# "wheel"
|
||||
# "input"
|
||||
# "dialout"
|
||||
# ];
|
||||
# packages = with pkgs; [
|
||||
# # thunderbird
|
||||
# ];
|
||||
|
||||
# };
|
||||
|
||||
#services.displayManager.autoLogin = {
|
||||
# enable = true;
|
||||
# user = "crestline";
|
||||
#};
|
||||
|
||||
#services.xserver.displayManager.gdm.autoLogin.delay = 60;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true; # -#
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
lf
|
||||
git
|
||||
wofi
|
||||
nvtopPackages.full
|
||||
htop
|
||||
iftop
|
||||
iotop
|
||||
pulsemixer
|
||||
arandr
|
||||
util-linux
|
||||
usbutils
|
||||
telegram-desktop
|
||||
discord
|
||||
# spotify
|
||||
vscode-with-extensions
|
||||
swayimg
|
||||
pavucontrol
|
||||
networkmanagerapplet
|
||||
pasystray
|
||||
glava
|
||||
spotify-player
|
||||
hyprpicker
|
||||
unetbootin
|
||||
lf
|
||||
dnsutils
|
||||
unzip
|
||||
playerctl
|
||||
google-chrome
|
||||
killall
|
||||
#jetbrains.pycharm-professional
|
||||
wget
|
||||
jq
|
||||
rofi-bluetooth
|
||||
wl-clipboard
|
||||
networkmanager
|
||||
alsa-utils
|
||||
nixfmt-rfc-style
|
||||
mako
|
||||
podman
|
||||
kicad
|
||||
obsidian
|
||||
speedcrunch
|
||||
deadbeef
|
||||
vlc
|
||||
sox
|
||||
audacity
|
||||
platformio
|
||||
|
||||
# flatcam
|
||||
pcb2gcode
|
||||
jetbrains-toolbox
|
||||
arduino-ide
|
||||
# python311Full
|
||||
gcc
|
||||
stm32cubemx
|
||||
stm32flash
|
||||
easyeffects
|
||||
ncspot
|
||||
#yubikey-personalization-gui
|
||||
#yubikey-manager-qt
|
||||
#zoom-us
|
||||
mangohud
|
||||
distrobox
|
||||
# plex-desktop
|
||||
rpi-imager
|
||||
rpiboot
|
||||
imagemagick
|
||||
prusa-slicer
|
||||
freecad
|
||||
wlogout
|
||||
gparted
|
||||
nix-update
|
||||
ffmpeg-full
|
||||
projectm_3
|
||||
heroic
|
||||
flameshot
|
||||
krename
|
||||
xfce.mousepad
|
||||
yt-dlp
|
||||
soapysdr
|
||||
soapyrtlsdr
|
||||
# sdrpp
|
||||
# brave
|
||||
python3
|
||||
#nodejs_23
|
||||
streamdeck-ui
|
||||
scrcpy
|
||||
kanshi
|
||||
#wsmancli
|
||||
#realvnc-vnc-viewer
|
||||
ncdu
|
||||
hyprlock
|
||||
openrgb-with-all-plugins
|
||||
swayidle
|
||||
transmission_4-qt
|
||||
nixos-generators
|
||||
openwsman
|
||||
wsmancli
|
||||
bs-manager
|
||||
];
|
||||
|
||||
services.monado = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
highPriority = true;
|
||||
};
|
||||
|
||||
services.hardware.openrgb.enable = true;
|
||||
|
||||
services.meshcentral.enable = true;
|
||||
programs.ydotool.enable = true;
|
||||
programs.adb.enable = true;
|
||||
|
||||
hardware.logitech.wireless.enable = true;
|
||||
hardware.logitech.wireless.enableGraphical = true;
|
||||
|
||||
services.sunshine = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
capSysAdmin = true;
|
||||
openFirewall = true;
|
||||
|
||||
};
|
||||
|
||||
programs.bash.shellAliases = {
|
||||
nixrebuild = "pushd /etc/nixos && { trap 'popd' EXIT; sudo nixos-rebuild switch --flake .#$(hostname); }";
|
||||
nixupdate = "cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname)";
|
||||
nixedit = "sudo nano /etc/nixos/hosts/$(hostname)/configuration.nix";
|
||||
|
||||
nixlimitfive = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | head -n -5 | cut -d ' ' -f2 | xargs -I {} sudo nix-env --delete-generations --profile /nix/var/nix/profiles/system {}";
|
||||
|
||||
scrwebcam = "sudo pkill scrcpy ; sudo modprobe -r v4l2loopback ; sudo modprobe v4l2loopback && nohup scrcpy --camera-facing=back --video-source=camera --v4l2-sink=/dev/video0 --no-window --no-audio-playback 2>&1 1>/dev/null";
|
||||
};
|
||||
|
||||
virtualisation.waydroid.enable = true;
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# ST-LINK V2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2_%n"
|
||||
|
||||
# ST-LINK V2.1
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
|
||||
# ST-LINK V3
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3loader_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
|
||||
# CP2101 - CP 2104
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_%n"
|
||||
|
||||
# ATEN UC-232A
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0557", ATTRS{idProduct}=="2008", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_aten_%n"
|
||||
'';
|
||||
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.fontconfig.antialias = true;
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
jetbrains-mono
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
proggyfonts
|
||||
font-awesome
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
|
||||
programs.thunar.enable = true;
|
||||
programs.thunar.plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
||||
services.tumbler.enable = true; # Thumbnail support for images
|
||||
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
services.blueman.enable = true;
|
||||
|
||||
hardware.rtl-sdr.enable = true;
|
||||
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
extraRules = [
|
||||
{
|
||||
commands = [
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/reboot";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/poweroff";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
groups = [ "wheel" ];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
programs.gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true; # -#
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
@@ -425,5 +62,4 @@
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
@@ -6,418 +6,51 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
# Hardware Scan
|
||||
./hardware-configuration.nix
|
||||
|
||||
# Users
|
||||
../../users/caperren/caperren.nix
|
||||
|
||||
# System Configuration
|
||||
../../modules/system/cpu-amd.nix
|
||||
../../modules/system/displaylink.nix
|
||||
../../modules/system/fonts.nix
|
||||
../../modules/system/gpu-amd.nix
|
||||
../../modules/system/home-manager-settings.nix
|
||||
../../modules/system/hyprland.nix
|
||||
../../modules/system/internationalization.nix
|
||||
../../modules/system/laptop.nix
|
||||
../../modules/system/networking.nix
|
||||
../../modules/system/nix-settings.nix
|
||||
../../modules/system/pipewire.nix
|
||||
../../modules/system/security.nix
|
||||
../../modules/system/systemd-boot.nix
|
||||
|
||||
# Application Groups
|
||||
../../modules/application-groups/3d-design.nix
|
||||
../../modules/application-groups/android.nix
|
||||
../../modules/application-groups/downloads.nix
|
||||
../../modules/application-groups/gaming.nix
|
||||
../../modules/application-groups/hobby-rc.nix
|
||||
../../modules/application-groups/homelab.nix
|
||||
../../modules/application-groups/media.nix
|
||||
../../modules/application-groups/media-creation.nix
|
||||
../../modules/application-groups/pcb-design.nix
|
||||
../../modules/application-groups/productivity.nix
|
||||
../../modules/application-groups/programming.nix
|
||||
../../modules/application-groups/radio.nix
|
||||
../../modules/application-groups/social.nix
|
||||
../../modules/application-groups/system-utilities.nix
|
||||
../../modules/application-groups/virtualization.nix
|
||||
../../modules/application-groups/web.nix
|
||||
];
|
||||
|
||||
#boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
#
|
||||
nix.settings.download-buffer-size = 524288000;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.grub.configurationLimit = 8;
|
||||
|
||||
networking.hostName = "cap-slim7"; # Define your hostname. #-#
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
#security.sudo.extraConfig = ''
|
||||
# Defaults timestamp_timeout=15
|
||||
#'';
|
||||
|
||||
# security.polkit.extraConfig = ''
|
||||
# polkit.addRule(function(action, subject) {
|
||||
# if ((action.id == "org.freedesktop.login1.reboot" ||
|
||||
# action.id == "org.freedesktop.login1.poweroff") &&
|
||||
# subject.isInGroup("powerusers")) {
|
||||
# return polkit.Result.YES;
|
||||
# }
|
||||
# });
|
||||
# '';
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Enable flakes
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
]; # -#
|
||||
networking.hostName = "cap-slim7";
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
# time.timeZone = "Pacific/Honolulu";
|
||||
#time.timeZone = "Europe/Oslo";
|
||||
# services.tzupdate.enable = true;
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# services.xserver.enable = true;
|
||||
|
||||
# Enable the XFCE Desktop Environment.
|
||||
# services.xserver.displayManager.lightdm.enable = true;
|
||||
# services.xserver.desktopManager.xfce.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.caperren = {
|
||||
isNormalUser = true;
|
||||
description = "Corwin Perren";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"input"
|
||||
"dialout"
|
||||
"plugdev"
|
||||
"adbusers"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true; # -#
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# droidcam-obs
|
||||
# teensyduino
|
||||
# ];
|
||||
# plugins = with obs-studio-plugins; [
|
||||
# PKGS END
|
||||
# bottles
|
||||
# lenovo-legion
|
||||
obs-studio
|
||||
#(wrapOBS {
|
||||
#arduino-ide
|
||||
#audacity
|
||||
#deadbeef
|
||||
#dolphin-emu
|
||||
#dualsensectl
|
||||
#easyeffects
|
||||
#flameshot
|
||||
#gcc
|
||||
#glmark2
|
||||
#heroic
|
||||
#jetbrains.pycharm-professional
|
||||
#lf
|
||||
#lf
|
||||
#librewolf
|
||||
#lutris
|
||||
#meshcentral
|
||||
#pcb2gcode
|
||||
#projectm_3
|
||||
#python311Full
|
||||
#qemu
|
||||
#quickemu
|
||||
#rofi-bluetooth
|
||||
#s-tui
|
||||
#scrcpy
|
||||
#sox
|
||||
#stm32cubemx
|
||||
#stm32flash
|
||||
#teensy-udev-rules
|
||||
#transmission_4-qt
|
||||
#via
|
||||
#vlc
|
||||
#vscode
|
||||
#winetricks
|
||||
#})
|
||||
vlc
|
||||
alsa-utils
|
||||
arandr
|
||||
brightnessctl
|
||||
discord
|
||||
dnsutils
|
||||
git
|
||||
glava
|
||||
google-chrome
|
||||
htop
|
||||
hyprpicker
|
||||
iftop
|
||||
iotop
|
||||
jetbrains-toolbox
|
||||
flameshot
|
||||
jq
|
||||
kanshi
|
||||
killall
|
||||
mako
|
||||
ncdu
|
||||
networkmanager
|
||||
networkmanagerapplet
|
||||
nixfmt-rfc-style
|
||||
nodejs
|
||||
nvtopPackages.full
|
||||
obsidian
|
||||
pasystray
|
||||
pavucontrol
|
||||
playerctl
|
||||
podman
|
||||
powertop
|
||||
pulsemixer
|
||||
speedcrunch
|
||||
spotify-player
|
||||
streamdeck-ui
|
||||
telegram-desktop
|
||||
unetbootin
|
||||
unzip
|
||||
usbutils
|
||||
util-linux
|
||||
wget
|
||||
wl-clipboard
|
||||
wlogout
|
||||
wofi
|
||||
xfce.mousepad
|
||||
imagemagick
|
||||
hyprlock
|
||||
# plex-desktop
|
||||
darktable
|
||||
arduino
|
||||
yt-dlp
|
||||
nmap
|
||||
signal-desktop
|
||||
swayidle
|
||||
hyprlock
|
||||
pciutils
|
||||
s-tui
|
||||
woeusb
|
||||
gparted
|
||||
];
|
||||
|
||||
hardware.logitech.wireless.enable = true;
|
||||
hardware.logitech.wireless.enableGraphical = true;
|
||||
|
||||
#programs.adb.enable = true;
|
||||
services.meshcentral.enable = true;
|
||||
services.xserver.videoDrivers = [
|
||||
"displaylink"
|
||||
"modesetting"
|
||||
];
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
#boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||
# v4l2loopback
|
||||
#];
|
||||
#boot.extraModprobeConfig = ''
|
||||
# options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
#'';
|
||||
|
||||
#programs.virt-manager.enable = true;
|
||||
#users.groups.libvirtd.members = [ "caperren" ];
|
||||
#virtualisation.libvirtd.enable = true;
|
||||
#virtualisation.spiceUSBRedirection.enable = true;
|
||||
#services.spice-vdagentd.enable = true;
|
||||
|
||||
# services.automatic-timezoned.enable = true;
|
||||
|
||||
programs.bash.shellAliases = {
|
||||
nixrebuild = "pushd /etc/nixos && { trap 'popd' EXIT; sudo nixos-rebuild switch --flake .#$(hostname); }";
|
||||
nixupdate = "cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname)";
|
||||
nixedit = "sudo nano /etc/nixos/hosts/$(hostname)/configuration.nix";
|
||||
|
||||
nixlimitfive = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | head -n -5 | cut -d ' ' -f2 | xargs -I {} sudo nix-env --delete-generations --profile /nix/var/nix/profiles/system {}";
|
||||
};
|
||||
|
||||
#programs.appimage = {
|
||||
# enable = true;
|
||||
# binfmt = true;
|
||||
#};
|
||||
|
||||
# services.power-profiles-daemon.enable = true;
|
||||
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
##### Defaults ######
|
||||
# WIFI
|
||||
WIFI_PWR_ON_AC = "off";
|
||||
WIFI_PWR_ON_BAT = "off";
|
||||
|
||||
# AC
|
||||
CPU_MIN_PERF_ON_AC = 0;
|
||||
|
||||
# BATT
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MAX_PERF_ON_BAT = 35;
|
||||
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
|
||||
START_CHARGE_THRESH_BAT0 = 1; # On non-thinkpad lenovo, this sets conservation mode to 0
|
||||
STOP_CHARGE_THRESH_BAT0 = 1; # ..., but to 1
|
||||
|
||||
###### Airplane Settings #####
|
||||
# AC
|
||||
# CPU_MAX_PERF_ON_AC = 35;
|
||||
|
||||
# CPU_SCALING_GOVERNOR_ON_AC = "powersave";
|
||||
# CPU_ENERGY_PERF_POLICY_ON_AC = "power";
|
||||
|
||||
###### Normal Settings ######
|
||||
# AC
|
||||
CPU_MAX_PERF_ON_AC = 100;
|
||||
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performanc";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
# BATT
|
||||
|
||||
##### Special Overrides #####
|
||||
#Optional helps save long term battery health
|
||||
# START_CHARGE_THRESH_BAT0 = 0; # On non-thinkpad lenovo, this sets conservation mode to 0
|
||||
# STOP_CHARGE_THRESH_BAT0 = 0; # ..., but to 1
|
||||
};
|
||||
};
|
||||
|
||||
#hardware.keyboard.qmk.enable = true;
|
||||
#services.udev.packages = [ pkgs.via ];
|
||||
services.udev.extraRules = ''
|
||||
# ST-LINK V2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2_%n"
|
||||
|
||||
# ST-LINK V2.1
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
|
||||
# ST-LINK V3
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3loader_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
|
||||
# CP2101 - CP 2104
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_%n"
|
||||
|
||||
# ATEN UC-232A
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0557", ATTRS{idProduct}=="2008", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_aten_%n"
|
||||
'';
|
||||
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.fontconfig.antialias = true;
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
jetbrains-mono
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
proggyfonts
|
||||
font-awesome
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
|
||||
programs.thunar.enable = true;
|
||||
programs.thunar.plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
||||
services.tumbler.enable = true; # Thumbnail support for images
|
||||
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
services.blueman.enable = true;
|
||||
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
extraRules = [
|
||||
{
|
||||
commands = [
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/reboot";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/poweroff";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
groups = [ "wheel" ];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true; # -#
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
|
||||
@@ -6,7 +6,7 @@ set -e
|
||||
SCRIPT_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
|
||||
|
||||
GIT_REPO_NAME="nixos-configs"
|
||||
GIT_RELEASE_BRANCH="playground"
|
||||
GIT_RELEASE_BRANCH="$(hostname)"
|
||||
GIT_REPO_URL="git@github.com:caperren/$GIT_REPO_NAME.git"
|
||||
|
||||
NIXOS_REPO_CONFIG_PARENT_PATH="/opt"
|
||||
|
||||
8
modules/application-groups/3d-design.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
prusa-slicer
|
||||
freecad
|
||||
];
|
||||
|
||||
}
|
||||
39
modules/application-groups/ai.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
loadModels = [
|
||||
"llama3.2:3b"
|
||||
"phi4-reasoning:14b"
|
||||
"dolphin3:8b"
|
||||
"smallthinker:3b"
|
||||
"gemma3:4b"
|
||||
"gemma3:12b"
|
||||
"gemma3:27b"
|
||||
"deepcoder:14b"
|
||||
"qwen3:14b"
|
||||
"nomic-embed-text"
|
||||
];
|
||||
acceleration = "cuda";
|
||||
};
|
||||
|
||||
services.open-webui = {
|
||||
enable = true;
|
||||
port = 8888;
|
||||
host = "127.0.0.1";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
oterm
|
||||
alpaca
|
||||
aichat
|
||||
fabric-ai
|
||||
aider-chat
|
||||
|
||||
# tgpt
|
||||
# smartcat
|
||||
# nextjs-ollama-llm-ui
|
||||
# open-webui
|
||||
];
|
||||
}
|
||||
4
modules/application-groups/android.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.adb.enable = true;
|
||||
}
|
||||
8
modules/application-groups/downloads.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
gallery-dl
|
||||
transmission_4-qt
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
32
modules/application-groups/gaming.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Support steam hardware like the index and steam controller
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
||||
# Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
# Valve's micro-compositor
|
||||
programs.gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
|
||||
# Open source OpenXR runtime for VR
|
||||
services.monado = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
highPriority = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
bs-manager
|
||||
heroic
|
||||
monado
|
||||
];
|
||||
}
|
||||
9
modules/application-groups/hobby-rc.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.qgroundcontrol.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
inav-configurator
|
||||
mission-planner
|
||||
];
|
||||
}
|
||||
4
modules/application-groups/homelab.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.meshcentral.enable = true;
|
||||
}
|
||||
11
modules/application-groups/media-creation.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
audacity
|
||||
darktable
|
||||
inkscape
|
||||
kdePackages.kdenlive
|
||||
obs-studio
|
||||
pinta
|
||||
];
|
||||
}
|
||||
40
modules/application-groups/media.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
# Make v4l2loopback kernel module available to NixOS.
|
||||
extraModulePackages = with config.boot.kernelPackages; [
|
||||
v4l2loopback
|
||||
];
|
||||
# Activate kernel module(s).
|
||||
kernelModules = [
|
||||
# Virtual camera.
|
||||
"v4l2loopback"
|
||||
# Virtual Microphone. Custom DroidCam v4l2loopback driver needed for audio.
|
||||
# "snd-aloop"
|
||||
];
|
||||
};
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
|
||||
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
|
||||
# https://github.com/umlaeute/v4l2loopback
|
||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||
'';
|
||||
|
||||
programs.bash.shellAliases = {
|
||||
scrwebcam = "sudo pkill scrcpy ; sudo modprobe -r v4l2loopback ; sudo modprobe v4l2loopback && nohup scrcpy --camera-facing=back --video-source=camera --v4l2-sink=/dev/video0 --no-window --no-audio-playback 2>&1 1>/dev/null";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
glava
|
||||
gimp
|
||||
imv
|
||||
plex-desktop
|
||||
projectm_3
|
||||
sox
|
||||
spotify
|
||||
spotify-player
|
||||
vlc
|
||||
];
|
||||
|
||||
}
|
||||
8
modules/application-groups/pcb-design.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
kicad
|
||||
#pcb2gcode
|
||||
];
|
||||
|
||||
}
|
||||
8
modules/application-groups/productivity.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
obsidian
|
||||
kdePackages.okular
|
||||
texliveFull
|
||||
];
|
||||
}
|
||||
42
modules/application-groups/programming.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
arduino-ide
|
||||
dfu-util
|
||||
gcc
|
||||
gnumake
|
||||
jetbrains-toolbox
|
||||
nix-update
|
||||
nixfmt-rfc-style
|
||||
nixos-generators
|
||||
nodejs
|
||||
# platformio
|
||||
python314
|
||||
stm32cubemx
|
||||
stm32flash
|
||||
teensy-udev-rules
|
||||
vscode-with-extensions
|
||||
];
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# ST-LINK V2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2_%n"
|
||||
|
||||
# ST-LINK V2.1
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
|
||||
|
||||
# ST-LINK V3
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3loader_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
|
||||
|
||||
# CP2101 - CP 2104
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_%n"
|
||||
|
||||
# ATEN UC-232A
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0557", ATTRS{idProduct}=="2008", MODE="600", TAG+="uaccess", SYMLINK+="usb2ser_aten_%n"
|
||||
'';
|
||||
|
||||
}
|
||||
11
modules/application-groups/radio.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
hardware.rtl-sdr.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
chirp
|
||||
soapysdr
|
||||
soapyrtlsdr
|
||||
];
|
||||
|
||||
}
|
||||
8
modules/application-groups/social.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
discord
|
||||
slack
|
||||
telegram-desktop
|
||||
];
|
||||
}
|
||||
62
modules/application-groups/system-utilities.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
hardware.keyboard.qmk.enable = true;
|
||||
hardware.logitech.wireless.enable = true;
|
||||
hardware.logitech.wireless.enableGraphical = true;
|
||||
|
||||
programs.thunar.enable = true;
|
||||
programs.thunar.plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.glances.enable = true;
|
||||
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
||||
services.hardware.openrgb.enable = true;
|
||||
services.openssh.enable = true;
|
||||
services.printing.enable = true;
|
||||
services.tumbler.enable = true; # Thumbnail support for images
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
btop-cuda
|
||||
desktop-file-utils
|
||||
dnsutils
|
||||
ffmpeg-full
|
||||
git
|
||||
gparted
|
||||
htop
|
||||
iftop
|
||||
imagemagick
|
||||
iotop
|
||||
jq
|
||||
kdePackages.qt6ct
|
||||
killall
|
||||
kitty
|
||||
swappy
|
||||
lf
|
||||
minicom
|
||||
ncdu
|
||||
networkmanager
|
||||
networkmanagerapplet
|
||||
nmap
|
||||
nvtopPackages.full
|
||||
openrgb-with-all-plugins
|
||||
pciutils
|
||||
rofi-bluetooth
|
||||
# rpi-imager # <- Build Failure
|
||||
rpiboot
|
||||
s-tui
|
||||
scrcpy
|
||||
speedcrunch
|
||||
streamdeck-ui
|
||||
stress
|
||||
unzip
|
||||
usbutils
|
||||
util-linux
|
||||
wget
|
||||
xev
|
||||
xfce.mousepad
|
||||
];
|
||||
|
||||
}
|
||||
18
modules/application-groups/virtualization.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
virtualisation.containers.policy = {
|
||||
default = [ { type = "insecureAcceptAnything"; } ];
|
||||
|
||||
};
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
dockerSocket.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
distrobox
|
||||
];
|
||||
|
||||
}
|
||||
8
modules/application-groups/web.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.firefox.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
google-chrome
|
||||
];
|
||||
}
|
||||
71
modules/applications/netextender/flake.nix
Normal file
@@ -0,0 +1,71 @@
|
||||
# TODO: This was hacked together until it worked...Clean it up before merging
|
||||
{
|
||||
description = "SonicWall NetExtender Flake";
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs, ... }:
|
||||
let
|
||||
systems = [ "x86_64-linux" ];
|
||||
neVersion = "10.3.0-21";
|
||||
neUrl = "https://software.sonicwall.com/NetExtender/NetExtender-linux-amd64-${neVersion}.tar.gz";
|
||||
|
||||
# ✅ Define the overlay function directly
|
||||
overlay = final: prev: {
|
||||
netextender = prev.stdenv.mkDerivation rec {
|
||||
pname = "netextender";
|
||||
version = neVersion;
|
||||
src = prev.fetchurl {
|
||||
url = neUrl;
|
||||
sha256 = "sha256-pnF/KRQMAcPnTj0Ni+sKKkw+H72WHf2iYVkWsWNCndc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
prev.autoPatchelfHook
|
||||
prev.makeWrapper
|
||||
];
|
||||
buildInputs = [
|
||||
prev.openssl_3
|
||||
prev.zlib
|
||||
prev.gtk2
|
||||
prev.pango
|
||||
prev.cairo
|
||||
prev.xorg.libX11
|
||||
];
|
||||
|
||||
unpackPhase = "tar -xzf $src";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
BIN_CLI=$(find . -type f -iname nxcli -perm -111 | head -n1)
|
||||
BIN_SVC=$(find . -type f -iname neservice -perm -111 | head -n1)
|
||||
install -Dm755 "$BIN_CLI" $out/bin/nxcli
|
||||
install -Dm755 "$BIN_SVC" $out/bin/neservice
|
||||
ln -sf nxcli $out/bin/netextender
|
||||
ln -sf neservice $out/bin/nxservice
|
||||
for exe in nxcli neservice; do
|
||||
wrapProgram $out/bin/$exe \
|
||||
--prefix LD_LIBRARY_PATH : ${prev.lib.makeLibraryPath buildInputs}
|
||||
done
|
||||
'';
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
overlays = {
|
||||
x86_64-linux = overlay;
|
||||
};
|
||||
|
||||
packages = {
|
||||
x86_64-linux =
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
system = "x86_64-linux";
|
||||
overlays = [ overlay ];
|
||||
};
|
||||
in
|
||||
{
|
||||
default = pkgs.netextender;
|
||||
netextender = pkgs.netextender;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# programs.waybar = {
|
||||
# enable = true;
|
||||
## systemd.enable = true;
|
||||
# };
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
# environment.sessionVariables = {
|
||||
# If your cursor becomes invisible
|
||||
# WLR_NO_HARDWARE_CURSORS = "1";
|
||||
# Hint electron apps to use wayland
|
||||
# NIXOS_OZONE_WL = "1";
|
||||
# Fix waiting on vsync
|
||||
# __GL_SYNC_TO_VBLANK = "0";
|
||||
# };
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "amdgpu" ];
|
||||
};
|
||||
services.displayManager.gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
|
||||
# services.displayManager.autoLogin = {
|
||||
# enable = true;
|
||||
# user = "caperren";
|
||||
# };
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
# hardware.nvidia = {
|
||||
# Enable modesetting for Wayland compositors (hyprland)
|
||||
# modesetting.enable = true;
|
||||
# Use the open source version of the kernel module (for driver 515.43.04+)
|
||||
# Actually, just overridden to false for now
|
||||
# open = false;
|
||||
# Enable the Nvidia settings menu
|
||||
# nvidiaSettings = true;
|
||||
# Select the appropriate driver version for your specific GPU
|
||||
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
# };
|
||||
environment.systemPackages = [
|
||||
pkgs.hyprland
|
||||
pkgs.kitty
|
||||
pkgs.waybar
|
||||
pkgs.dunst
|
||||
pkgs.libnotify
|
||||
pkgs.rofi-wayland
|
||||
pkgs.nwg-look
|
||||
pkgs.desktop-file-utils
|
||||
pkgs.grim
|
||||
pkgs.slurp
|
||||
pkgs.nwg-displays
|
||||
|
||||
(pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
}))
|
||||
];
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
# If your cursor becomes invisible
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
# Hint electron apps to use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
# Fix waiting on vsync
|
||||
__GL_SYNC_TO_VBLANK = "0";
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
services.displayManager.gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
|
||||
# services.displayManager.autoLogin = {
|
||||
# enable = true;
|
||||
# user = "caperren";
|
||||
# };
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
# Enable modesetting for Wayland compositors (hyprland)
|
||||
modesetting.enable = true;
|
||||
# Use the open source version of the kernel module (for driver 515.43.04+)
|
||||
# Actually, just overridden to false for now
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu
|
||||
nvidiaSettings = true;
|
||||
# Select the appropriate driver version for your specific GPU
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.hyprland
|
||||
pkgs.kitty
|
||||
pkgs.waybar
|
||||
pkgs.dunst
|
||||
pkgs.libnotify
|
||||
pkgs.rofi-wayland
|
||||
pkgs.nwg-look
|
||||
pkgs.desktop-file-utils
|
||||
pkgs.grim
|
||||
pkgs.slurp
|
||||
pkgs.nwg-displays
|
||||
|
||||
(pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
}))
|
||||
];
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
}
|
||||
4
modules/system/cpu-amd.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
10
modules/system/desktop.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
services.blueman.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
];
|
||||
}
|
||||
17
modules/system/displaylink.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
extraModulePackages = [ config.boot.kernelPackages.evdi ];
|
||||
initrd = {
|
||||
# List of modules that are always loaded by the initrd.
|
||||
kernelModules = [
|
||||
"evdi"
|
||||
];
|
||||
};
|
||||
};
|
||||
services.xserver.videoDrivers = [
|
||||
"displaylink"
|
||||
"modesetting"
|
||||
];
|
||||
|
||||
}
|
||||
28
modules/system/fonts.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
antialias = true;
|
||||
defaultFonts = {
|
||||
monospace = [ "JetBrains Mono" ];
|
||||
sansSerif = [ "JetBrains Mono" ];
|
||||
serif = [ "JetBrains Mono" ];
|
||||
};
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
jetbrains-mono
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
proggyfonts
|
||||
font-awesome
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
}
|
||||
5
modules/system/gpu-amd.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
}
|
||||
26
modules/system/gpu-nvidia.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.sessionVariables = {
|
||||
# If your cursor becomes invisible
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
# Hint electron apps to use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
# Fix waiting on vsync
|
||||
__GL_SYNC_TO_VBLANK = "0";
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.nvidia = {
|
||||
# Enable modesetting for Wayland compositors (hyprland)
|
||||
modesetting.enable = true;
|
||||
# Use the open source version of the kernel module (for driver 515.43.04+)
|
||||
# Actually, just overridden to false for now
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu
|
||||
nvidiaSettings = true;
|
||||
# Select the appropriate driver version for your specific GPU
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
}
|
||||
5
modules/system/home-manager-settings.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.backupFileExtension = "bkp";
|
||||
}
|
||||
46
modules/system/hyprland.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
programs.hyprlock.enable = true;
|
||||
programs.waybar.enable = true;
|
||||
|
||||
services.displayManager.gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
services.hypridle.enable = true;
|
||||
services.xserver.enable = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
arandr
|
||||
bemenu
|
||||
dunst
|
||||
grim
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
j4-dmenu-desktop
|
||||
kanshi
|
||||
libnotify
|
||||
mako
|
||||
nwg-look
|
||||
rofi
|
||||
slurp
|
||||
swayimg
|
||||
wl-clipboard
|
||||
wlogout
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
24
modules/system/internationalization.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
}
|
||||
56
modules/system/laptop.nix
Normal file
@@ -0,0 +1,56 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = false; # powers up the default Bluetooth controller on boot
|
||||
services.blueman.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
brightnessctl
|
||||
powertop
|
||||
];
|
||||
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
##### Defaults ######
|
||||
# WIFI
|
||||
WIFI_PWR_ON_AC = "off";
|
||||
WIFI_PWR_ON_BAT = "off";
|
||||
|
||||
# AC
|
||||
CPU_MIN_PERF_ON_AC = 0;
|
||||
|
||||
# BATT
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MAX_PERF_ON_BAT = 35;
|
||||
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
|
||||
START_CHARGE_THRESH_BAT0 = 1; # On non-thinkpad lenovo, this sets conservation mode to 0
|
||||
STOP_CHARGE_THRESH_BAT0 = 1; # ..., but to 1
|
||||
|
||||
###### Airplane Settings #####
|
||||
# AC
|
||||
# CPU_MAX_PERF_ON_AC = 35;
|
||||
|
||||
# CPU_SCALING_GOVERNOR_ON_AC = "powersave";
|
||||
# CPU_ENERGY_PERF_POLICY_ON_AC = "power";
|
||||
|
||||
###### Normal Settings ######
|
||||
# AC
|
||||
CPU_MAX_PERF_ON_AC = 100;
|
||||
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
# BATT
|
||||
|
||||
##### Special Overrides #####
|
||||
#Optional helps save long term battery health
|
||||
# START_CHARGE_THRESH_BAT0 = 0; # On non-thinkpad lenovo, this sets conservation mode to 0
|
||||
# STOP_CHARGE_THRESH_BAT0 = 0; # ..., but to 1
|
||||
};
|
||||
};
|
||||
}
|
||||
13
modules/system/networking.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
}
|
||||
39
modules/system/nix-settings.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Enable flakes
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Generally want a larger download buffer
|
||||
nix.settings.download-buffer-size = 524288000;
|
||||
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.optimise.automatic = true;
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 14d";
|
||||
};
|
||||
|
||||
programs.bash.shellAliases = {
|
||||
# Nix rebuild, switch
|
||||
nrs = "bash -c \"cd /etc/nixos && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\"";
|
||||
# with tracing
|
||||
tnrs = "bash -c \"cd /etc/nixos && sudo nixos-rebuild switch --show-trace --flake .#$(hostname) ; exit\"";
|
||||
|
||||
|
||||
# Nix flake update, rebuild, switch
|
||||
nus = "bash -c \"cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\"";
|
||||
# with tracing
|
||||
tnus = "bash -c \"cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --show-trace --flake .#$(hostname) ; exit\"";
|
||||
|
||||
# Special cleanup, needed when efi partition runs out of space. Deletes all but the last five generations.
|
||||
# Remember to make that partition bigger in the future...
|
||||
neficlean = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | head -n -5 | cut -d ' ' -f2 | xargs -I {} sudo nix-env --delete-generations --profile /nix/var/nix/profiles/system {}";
|
||||
};
|
||||
}
|
||||
20
modules/system/pipewire.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.pulseaudio.enable = false;
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
pasystray
|
||||
alsa-utils
|
||||
pulsemixer
|
||||
easyeffects
|
||||
];
|
||||
}
|
||||
31
modules/system/security.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
extraRules = [
|
||||
{
|
||||
groups = [ "wheel" ];
|
||||
commands = [
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/reboot";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/poweroff";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
users = [ "caperren" ];
|
||||
commands = [
|
||||
{
|
||||
command = "${pkgs.nvtopPackages.full}/bin/nvtop";
|
||||
options = [ "NOPASSWD" "SETENV" ];
|
||||
}
|
||||
];
|
||||
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
7
modules/system/systemd-boot.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.grub.configurationLimit = 8;
|
||||
}
|
||||
10
modules/system/xfce.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the XFCE Desktop Environment.
|
||||
services.xserver.displayManager.lightdm.enable = true;
|
||||
services.xserver.desktopManager.xfce.enable = true;
|
||||
|
||||
}
|
||||
148
users/caperren/caperren.nix
Normal file
@@ -0,0 +1,148 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
hyprlandConfigPath = ./. + "/dotfiles/hyprland/${config.networking.hostName}";
|
||||
kanshiConfigPath = ./. + "/dotfiles/kanshi/${config.networking.hostName}";
|
||||
spotifyPlayerAppTomlTextTemplate = builtins.readFile ./dotfiles/spotify-player/app.toml;
|
||||
spotifyPlayerAppTomlText =
|
||||
builtins.replaceStrings [ "{{hostname}}" ] [ config.networking.hostName ]
|
||||
spotifyPlayerAppTomlTextTemplate;
|
||||
waybarConfigPath = ./. + "/dotfiles/waybar/${config.networking.hostName}";
|
||||
in
|
||||
{
|
||||
users.users.caperren = {
|
||||
isNormalUser = true;
|
||||
description = "Corwin Perren";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"dialout"
|
||||
"input"
|
||||
"networkmanager"
|
||||
"plugdev"
|
||||
"podman"
|
||||
"wheel"
|
||||
];
|
||||
};
|
||||
|
||||
home-manager.users.caperren = {
|
||||
home.username = "caperren";
|
||||
home.homeDirectory = "/home/caperren";
|
||||
home.stateVersion = "25.05";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings.user = {
|
||||
name = "Corwin Perren";
|
||||
email = "caperren@gmail.com";
|
||||
};
|
||||
|
||||
};
|
||||
programs.bash.enable = true;
|
||||
programs.bemenu.enable = true;
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font.name = "JetBrains Mono";
|
||||
settings = {
|
||||
allow_remote_control = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Assets/scripts
|
||||
home.file.".config/streamdeck-ui/icons".source = ./dotfiles/streamdeck/icons;
|
||||
home.file.".config/hypr/scripts".source = ./dotfiles/.config/hypr/scripts;
|
||||
|
||||
# Application config files
|
||||
home.file.".config/containers/policy.json".source = ./dotfiles/.config/containers/policy.json;
|
||||
home.file.".config/glances/glances.conf".source = ./dotfiles/.config/glances/glances.conf;
|
||||
home.file.".config/hypr/hypridle.conf".source = ./dotfiles/hypridle/hypridle.conf;
|
||||
home.file.".config/hypr/hyprpaper.conf".source = ./dotfiles/hyprpaper/hyprpaper.conf;
|
||||
home.file.".config/hypr/backgrounds/black.png".source = ./dotfiles/hyprpaper/backgrounds/black.png;
|
||||
home.file.".config/hypr/hyprland-common.conf".source = ./dotfiles/hyprland/hyprland-common.conf;
|
||||
home.file.".config/hypr/hyprland.conf".source = hyprlandConfigPath + "/hyprland.conf";
|
||||
home.file.".config/kanshi/config".source = kanshiConfigPath + "/config";
|
||||
home.file.".config/streamdeck-ui/.streamdeck_ui_link.json" = {
|
||||
source = ./dotfiles/streamdeck/.streamdeck_ui.json;
|
||||
# Copy the symlinked version to its final location, otherwise it has no write permissions
|
||||
# on the config file, which breaks the entire app
|
||||
onChange = ''
|
||||
cat ~/.config/streamdeck-ui/.streamdeck_ui_link.json > ~/.streamdeck_ui.json
|
||||
chmod 600 ~/.streamdeck_ui.json
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
home.file.".config/spotify-player/app.toml".text = spotifyPlayerAppTomlText;
|
||||
home.file.".config/waybar/config".source = waybarConfigPath + "/config";
|
||||
home.file.".config/waybar/style.css".source = ./dotfiles/waybar/style.css;
|
||||
home.file.".config/wlogout/layout".source = ./dotfiles/wlogout/layout;
|
||||
|
||||
# Desktop entry files so bemenu can find them
|
||||
home.file.".local/share/applications/alltop.desktop".source =
|
||||
./dotfiles/.local/share/applications/alltop.desktop;
|
||||
home.file.".local/share/applications/glava.desktop".source =
|
||||
./dotfiles/.local/share/applications/glava.desktop;
|
||||
home.file.".local/share/applications/phonerdp.desktop".source =
|
||||
./dotfiles/.local/share/applications/phonerdp.desktop;
|
||||
home.file.".local/share/applications/spotify-player.desktop".source =
|
||||
./dotfiles/.local/share/applications/spotify-player.desktop;
|
||||
|
||||
# Custom bash aliases
|
||||
home.shellAliases = {
|
||||
# Phone remote desktop over usb (adb), with some default flags I want
|
||||
phonerdp = "scrcpy --no-audio --orientation=0 --turn-screen-off --stay-awake --power-off-on-close";
|
||||
|
||||
# Streamdeck isn't easy to manually edit, so make a save command to copy any updates to the repo
|
||||
savestreamdeck = "cp ~/.streamdeck_ui.json ~/.nixos-configs/users/caperren/dotfiles/streamdeck/.streamdeck_ui.json";
|
||||
|
||||
# Nice to have an alias if I ever want to launch this from cmdline, or see the dbus help string
|
||||
screenshot = "~/.config/hypr/scripts/screenshot.sh";
|
||||
};
|
||||
|
||||
# Theming
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
theme = {
|
||||
name = "Adwaita-dark"; # Or another dark theme
|
||||
package = pkgs.gnome-themes-extra;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = "Bibata-Modern-Ice";
|
||||
package = pkgs.bibata-cursors;
|
||||
};
|
||||
|
||||
font.name = "JetBrains Mono 11";
|
||||
};
|
||||
|
||||
home.sessionPath = [
|
||||
"$HOME/.local/share"
|
||||
];
|
||||
home.sessionVariables = {
|
||||
GTK_THEME = "Adwaita-dark";
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"application/pdf" = [ "okularApplication_pdf.desktop" ];
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
"text/html" = [ "firefox.desktop" ];
|
||||
"image/*" = [ "imv.desktop" ];
|
||||
};
|
||||
};
|
||||
|
||||
xresources.properties = {
|
||||
"Xft.font" = "JetBrains Mono";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
users/caperren/dotfiles/.config/containers/policy.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "insecureAcceptAnything"
|
||||
}
|
||||
]
|
||||
}
|
||||
44
users/caperren/dotfiles/.config/glances/glances.conf
Normal file
@@ -0,0 +1,44 @@
|
||||
##############################################################################
|
||||
# Custom Glances Configuration Overrides
|
||||
##############################################################################
|
||||
[global]
|
||||
# Managed by NixOS configs
|
||||
check_update=false
|
||||
|
||||
[percpu]
|
||||
# All of my systems are 16 core
|
||||
max_cpu_display=16
|
||||
|
||||
[ip]
|
||||
# Useful for validating vpn connectivity
|
||||
public_disabled=False
|
||||
public_refresh_interval=300
|
||||
public_api=https://ipv4.ipleak.net/json/
|
||||
public_field=ip
|
||||
public_template={continent_code}/{country_code}/{region_code}/{city_name}/{isp_name}
|
||||
|
||||
[diskio]
|
||||
# Don't care about loop devices
|
||||
hide=loop.*,/dev/loop.*
|
||||
|
||||
[smart]
|
||||
disable=False
|
||||
|
||||
[fs]
|
||||
# Nix store is duplicate of / on NixOS
|
||||
hide=/nix/store
|
||||
|
||||
# Leaving this all commented for now as it doesn't like large number of files
|
||||
#[folders]
|
||||
# Home overview is helpful
|
||||
#folder_1_path=/home/caperren
|
||||
#folder_1_refresh=120
|
||||
# Steam is normally the largest
|
||||
#folder_2_path=/home/caperren/.local/share/Steam
|
||||
#folder_2_refresh=120
|
||||
# Then Downloads next
|
||||
#folder_3_path=/home/caperren/Downloads
|
||||
#folder_3_refresh=120
|
||||
# With code generally coming last
|
||||
#folder_4_path=/home/caperren/code
|
||||
#folder_4_refresh=120
|
||||
116
users/caperren/dotfiles/.config/hypr/scripts/screenshot.sh
Executable file
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Unashamedly taken from: https://www.reddit.com/r/hyprland/comments/13ivh0c/comment/jkgk65k
|
||||
# Small edits made for my particular needs
|
||||
|
||||
# Flags:
|
||||
|
||||
# r: region
|
||||
# s: screen
|
||||
#
|
||||
# c: clipboard
|
||||
# f: file
|
||||
# i: interactive
|
||||
|
||||
# p: pixel
|
||||
|
||||
# Example hyprland bindings
|
||||
#bind = CTRL, SUPER, ALT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh
|
||||
#bind = , PRINT, exec, ~/.config/hypr/scripts/screenshot.sh rc
|
||||
#bind = SUPER, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh rf
|
||||
#bind = CTRL, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh ri
|
||||
#bind = SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh sc
|
||||
#bind = SUPER SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh sf
|
||||
#bind = CTRL SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh si
|
||||
#bind = ALT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh p
|
||||
|
||||
screenshotPath=~/Pictures/screenshots
|
||||
|
||||
hyprpicker_launch(){
|
||||
# Start hyprpicker with screen render (freeze), no fancy, no zoom
|
||||
# We're just using this to lock the screen in place for grim ingest
|
||||
hyprpicker -r -n -z -d >/dev/null 2>&1 &
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
hyprpicker_kill(){
|
||||
killall hyprpicker >/dev/null 2>&1
|
||||
}
|
||||
|
||||
trap hyprpicker_kill EXIT
|
||||
|
||||
generate_filename(){
|
||||
# Make sure screenshots path exists first
|
||||
if [ ! -d "$screenshotPath" ]; then
|
||||
mkdir -p "$screenshotPath"
|
||||
fi
|
||||
|
||||
echo "$screenshotPath/$(date +%Y-%m-%d_%H-%M-%S).png"
|
||||
}
|
||||
|
||||
active_screen_grim_region(){
|
||||
hyprctl -j monitors | jq -r '.[] | select(.focused) | "\(.x),\(.y) \(.width)x\(.height)"' -
|
||||
}
|
||||
|
||||
grim_from_region() {
|
||||
local filename="${1:-}"
|
||||
local region="${2:-}"
|
||||
|
||||
hyprpicker_launch
|
||||
|
||||
# Get region of screen to capture, if not passed in
|
||||
if [ -z "$region" ]; then
|
||||
region=$(slurp -b '#000000b0' -c '#00000000') || exit 1
|
||||
fi
|
||||
|
||||
# Start grim while screen is still frozen, kill hyprpicker, and pass through data
|
||||
if [ -z "$filename" ]; then
|
||||
grim -g "$region" - | {
|
||||
hyprpicker_kill || true
|
||||
cat
|
||||
}
|
||||
else
|
||||
grim -g "$region" "$filename" | {
|
||||
hyprpicker_kill || true
|
||||
cat
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ $1 == rc ]]; then
|
||||
grim_from_region | wl-copy
|
||||
notify-send 'Copied to Clipboard' Screenshot
|
||||
|
||||
elif [[ $1 == rf ]]; then
|
||||
grim_from_region "$(generate_filename)"
|
||||
notify-send 'Screenshot Taken' "$filename"
|
||||
|
||||
elif [[ $1 == ri ]]; then
|
||||
grim_from_region | swappy -f - -o "$(generate_filename)"
|
||||
|
||||
elif [[ $1 == sc ]]; then
|
||||
grim_from_region "" "$(active_screen_grim_region)" | wl-copy
|
||||
notify-send 'Copied to Clipboard' Screenshot
|
||||
|
||||
elif [[ $1 == sf ]]; then
|
||||
grim_from_region "$(generate_filename)" "$(active_screen_grim_region)"
|
||||
notify-send 'Screenshot Taken' "$filename"
|
||||
|
||||
elif [[ $1 == si ]]; then
|
||||
grim_from_region "" "$(active_screen_grim_region)" | swappy -f - -o "$(generate_filename)"
|
||||
|
||||
elif [[ $1 == p ]]; then
|
||||
color=$(hyprpicker -a -r)
|
||||
wl-copy "$color"
|
||||
notify-send 'Copied to Clipboard' "$color"
|
||||
|
||||
else
|
||||
notify-send 'Screenshot Shortcuts' "Print:\t\t\tRegion to clip
|
||||
Super+Print:\t\tRegion to file
|
||||
Ctrl+Print:\t\tRegion to editor
|
||||
Shift+Print:\t\t\Screen to clip
|
||||
Shift+Super+Print:\tScreen to file
|
||||
Ctrl+Shift+Print:\tScreen to editor
|
||||
Alt+Print:\t\tColor picker to clip" -t 20000
|
||||
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=All Top
|
||||
Exec=bash -c "kitty --single-instance --detach bash -c 'kitten @ launch --type=window --title btop btop ; kitten @ launch --type=window --title nvtop nvtop'"
|
||||
Icon=alltop
|
||||
Terminal=false
|
||||
Categories=Utilities;
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Glava
|
||||
Exec=glava
|
||||
Icon=glava
|
||||
Terminal=false
|
||||
Categories=Media;
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Phone RDP
|
||||
Exec=bash -c "scrcpy --no-audio --orientation=0 --turn-screen-off --stay-awake --power-off-on-close"
|
||||
Icon=phonerdp
|
||||
Terminal=false
|
||||
Categories=Utilities;
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Spotify Player
|
||||
Exec=kitty -e spotify_player
|
||||
Icon=spotify_player
|
||||
Terminal=false
|
||||
Categories=Media;
|
||||
33
users/caperren/dotfiles/hypridle/hypridle.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # Avoid starting multiple hyprlock instances
|
||||
before_sleep_cmd = loginctl lock-session # Lock before suspend
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # To avoid having to press a key twice to turn on the display
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 60 # 1 minute
|
||||
on-timeout = brightnessctl -sd platform::kbd_backlight set 0 # Turn off keyboard backlight
|
||||
on-resume = brightnessctl -rd platform::kbd_backlight # Turn on keyboard backlight
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 180 # 3 minutes
|
||||
on-timeout = brightnessctl -s set 1% # Set monitor backlight to minimum
|
||||
on-resume = brightnessctl -r # monitor backlight restore
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10 minutes
|
||||
on-timeout = loginctl lock-session # Lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 610 # 10 minutes, 10 seconds
|
||||
on-timeout = hyprctl dispatch dpms off # Screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on # Screen on when activity is detected after timeout has fired
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 1200 # 20 minutes
|
||||
# on-timeout = systemctl suspend # Suspend pc
|
||||
# }
|
||||
@@ -0,0 +1,9 @@
|
||||
# Unfortunate legacy config needed because hyprland can't hot switch variable refresh rate
|
||||
monitor=DP-2,3440x1440@144,auto,1,vrr,1
|
||||
|
||||
# Source configs
|
||||
source = ~/.config/hypr/hyprland-common.conf
|
||||
|
||||
# Application launch
|
||||
exec-once = sleep 10 && steam -silent
|
||||
#exec-once = swayidle -w timeout 600 "hyprlock" before-sleep "hyprlock" &
|
||||
9
users/caperren/dotfiles/hyprland/cap-slim7/hyprland.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
# Unfortunate legacy config needed because hyprland can't hot switch variable refresh rate
|
||||
monitor = eDP-2,2560x1600@165,auto,1,vrr,1
|
||||
|
||||
# Source configs
|
||||
source = ~/.config/hypr/hyprland-common.conf
|
||||
|
||||
# Application launch
|
||||
exec-once = brightnessctl -sd platform::kbd_backlight set 1
|
||||
exec-once = brightnessctl -s set 30%
|
||||
186
users/caperren/dotfiles/hyprland/hyprland-common.conf
Normal file
@@ -0,0 +1,186 @@
|
||||
# Always enable new monitors in automatic mode, for when kanshi doesn't know about the setup
|
||||
monitor=,preferred,auto,1
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = thunar
|
||||
$menu = j4-dmenu-desktop --dmenu='bemenu --ignorecase --line-height 22 --hf "##10AC25" --ff "##10AC25" --tf "##10AC25"' --term='kitty'
|
||||
|
||||
# Some default env vars
|
||||
env = XCURSOR_SIZE,24
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = no
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
|
||||
numlock_by_default = 1
|
||||
}
|
||||
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
border_size = 2
|
||||
col.active_border = rgba(0D8A1EFF)
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = dwindle
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
}
|
||||
|
||||
misc {
|
||||
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
}
|
||||
|
||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
# Launch terminal
|
||||
bind = $mainMod, T, exec, $terminal
|
||||
bind = SHIFT_SUPER, Return, exec, $terminal
|
||||
|
||||
# Close active window
|
||||
bind = $mainMod, Shift+q, killactive,
|
||||
bind = $mainMod, C, killactive,
|
||||
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
bind = $mainMod, F, fullscreen
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Volume Keys
|
||||
bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 2%+
|
||||
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume -l 0.0 @DEFAULT_AUDIO_SINK@ 2%-
|
||||
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
|
||||
# Media Controls
|
||||
bindl=, XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl=, XF86AudioPrev, exec, playerctl previous
|
||||
bindl=, XF86AudioNext, exec, playerctl next
|
||||
|
||||
# Brightness Controls
|
||||
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
|
||||
bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1%
|
||||
|
||||
# Screenshots
|
||||
bind = , PRINT, exec, ~/.config/hypr/scripts/screenshot.sh rc
|
||||
bind = SUPER, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh rf
|
||||
bind = CTRL, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh ri
|
||||
bind = SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh sc
|
||||
bind = SUPER_SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh sf
|
||||
bind = CTRL_SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh si
|
||||
bind = ALT, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh p
|
||||
|
||||
|
||||
# Jetbrains window rules
|
||||
# Prevent initial focus for JetBrains popups
|
||||
windowrulev2 = noinitialfocus, class:^jetbrains-.*$, floating:1, title:^$|^\s$|^win\d+$
|
||||
|
||||
# Application launch
|
||||
exec-once = kanshi # Automatically handles display configurations
|
||||
exec-once = ydotoold # Autoclicker/autokeyboard for automation
|
||||
exec-once = hypridle # Hyprland/wayland specific idle lock tool
|
||||
exec-once = hyprpaper # Hyprland/wayland specific wallpaper tool
|
||||
|
||||
exec-once = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 10% # Keep eardrums intact on reboot
|
||||
|
||||
exec-once = waybar # Wayland specific status bar
|
||||
|
||||
exec-once = sleep 5 && nm-applet # Traditional notifications area
|
||||
exec-once = sleep 5 && blueman-applet # Traditional bluetooth management tool
|
||||
exec-once = sleep 5 && streamdeck -n # Streamdeck management tool
|
||||
exec-once = sleep 5 && Telegram -startintray # Gotta keep in touch with peeps
|
||||
BIN
users/caperren/dotfiles/hyprpaper/backgrounds/1.jpg
Normal file
|
After Width: | Height: | Size: 708 KiB |
BIN
users/caperren/dotfiles/hyprpaper/backgrounds/2.jpg
Normal file
|
After Width: | Height: | Size: 912 KiB |
BIN
users/caperren/dotfiles/hyprpaper/backgrounds/black.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
5
users/caperren/dotfiles/hyprpaper/hyprpaper.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
preload = ~/.config/hypr/backgrounds/black.png
|
||||
wallpaper = ,~/.config/hypr/backgrounds/black.png
|
||||
|
||||
ipc = off
|
||||
splash = false
|
||||
7
users/caperren/dotfiles/kanshi/cap-nr200p/config
Normal file
@@ -0,0 +1,7 @@
|
||||
# `hyprctl monitors list` for all outputs
|
||||
|
||||
profile office_desk {
|
||||
output "Hewlett Packard HP Z27n CNK7311FCY" enable position 0,0
|
||||
output "LG Electronics LG ULTRAGEAR 104NTVS1N751" enable mode 3440x1440@143.92Hz position -440,1440 adaptive_sync on
|
||||
output "BOE Display 0x00000060" enable position 950,2880 scale 1.0
|
||||
}
|
||||
26
users/caperren/dotfiles/kanshi/cap-slim7/config
Normal file
@@ -0,0 +1,26 @@
|
||||
# `hyprctl monitors list` for all outputs
|
||||
|
||||
profile builtin_only {
|
||||
output "BOE 0x0A9B Unknown" enable mode 2560x1600@165Hz position 0,0 adaptive_sync on
|
||||
}
|
||||
|
||||
profile bedroom_desk {
|
||||
# Top left to right
|
||||
output "Dell Inc. DELL P2411H F8NDP11G0DVU" enable position 0,1280
|
||||
output "Acer Technologies CB292CU 2217018D42410" enable position 1920,0 transform 90
|
||||
output "DLOGIC Ltd. No Monitor USB_601e-21H1" enable position 3000,1280
|
||||
# output "DLOGIC Ltd. No Monitor USB_601e-21H1" mode --custom 1920x1080@60Hz enable position 3000,1280
|
||||
|
||||
# Bottom left to right
|
||||
output "Aculab Ltd Digital Unknown" enable transform 270 position 0,2360
|
||||
output "Hewlett Packard HP Z27n CNK7311DRR" enable position 1440,2560
|
||||
output "Aculab Ltd QHD270 Unknown" enable transform 90 position 4000,2360
|
||||
|
||||
# Far bottom right (laptop itself)
|
||||
output "BOE 0x0A9B Unknown" enable position 5440,2360 adaptive_sync on
|
||||
}
|
||||
|
||||
profile scotts_apartment_tv {
|
||||
output "BOE 0x0A9B Unknown" enable mode 2560x1600@165Hz position 0,0 adaptive_sync on
|
||||
output "Hisense Electric Co., Ltd. HISENSE 0x00000001" enable mode 1920x1080@60Hz position 2560,0
|
||||
}
|
||||
49
users/caperren/dotfiles/spotify-player/app.toml
Normal file
@@ -0,0 +1,49 @@
|
||||
theme = "dracula"
|
||||
client_id = "65b708073fc0480ea92a077233ca87bd"
|
||||
client_port = 8080
|
||||
login_redirect_uri = "http://127.0.0.1:8989/login"
|
||||
playback_format = """
|
||||
{status} {track} • {artists}
|
||||
{album}
|
||||
{metadata}"""
|
||||
notify_timeout_in_secs = 0
|
||||
tracks_playback_limit = 1000
|
||||
app_refresh_duration_in_ms = 32
|
||||
playback_refresh_duration_in_ms = 0
|
||||
page_size_in_rows = 20
|
||||
play_icon = "▶"
|
||||
pause_icon = "▌▌"
|
||||
liked_icon = "♥"
|
||||
border_type = "Plain"
|
||||
progress_bar_type = "Rectangle"
|
||||
cover_img_length = 9
|
||||
cover_img_width = 5
|
||||
cover_img_scale = 1.0
|
||||
enable_media_control = true
|
||||
enable_streaming = "Always"
|
||||
enable_notify = true
|
||||
enable_cover_image_cache = true
|
||||
default_device = "{{hostname}}"
|
||||
notify_streaming_only = false
|
||||
seek_duration_secs = 5
|
||||
|
||||
[notify_format]
|
||||
summary = "{track} • {artists}"
|
||||
body = "{album}"
|
||||
|
||||
[layout]
|
||||
playback_window_position = "Top"
|
||||
playback_window_height = 6
|
||||
|
||||
[layout.library]
|
||||
playlist_percent = 40
|
||||
album_percent = 40
|
||||
|
||||
[device]
|
||||
name = "{{hostname}}"
|
||||
device_type = "speaker"
|
||||
volume = 100
|
||||
bitrate = 320
|
||||
audio_cache = false
|
||||
normalization = false
|
||||
autoplay = false
|
||||
1599
users/caperren/dotfiles/streamdeck/.streamdeck_ui.json
Normal file
BIN
users/caperren/dotfiles/streamdeck/icons/btop-logo.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/cogs-solid.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/discord-logo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/expand-solid.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/firefox-logo.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/glances-logo.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/glava-standin-icon.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 11 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/kitty-logo.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 20 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/microphone-solid.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/obsidian-logo.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/power-off-solid-red.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/retweet-solid-red.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/slash-solid-full.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/spotify-logo.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/steam_logo.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/telegram-logo.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/thunar-icon.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/unifi-camera-logo.png
Normal file
|
After Width: | Height: | Size: 679 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/unifi-protect-logo.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/video-solid-full.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/volume-down-solid.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/volume-mute-solid.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
users/caperren/dotfiles/streamdeck/icons/volume-up-solid.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 12 KiB |
173
users/caperren/dotfiles/waybar/cap-nr200p/config
Normal file
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
// "custom/logo",
|
||||
"clock",
|
||||
"temperature",
|
||||
"disk",
|
||||
"memory",
|
||||
"cpu"
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window",
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"backlight",
|
||||
"custom/exit"
|
||||
],
|
||||
"reload_style_on_change": true,
|
||||
"custom/logo": {
|
||||
"format": "<span font='15'></span>",
|
||||
"tooltip": false
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": false,
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9"
|
||||
}
|
||||
},
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"adapter": "AC",
|
||||
"interval": 10,
|
||||
"full-at": 100,
|
||||
"states": {
|
||||
"full": 100,
|
||||
"good": 75,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
"empty": 5
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"temperature": {
|
||||
"interval": 1,
|
||||
"critical-threshold": 90,
|
||||
"format": "{icon} {temperatureC}°C",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip-format-activated": "idle-inhibitor <span color='#a6da95'>on</span>",
|
||||
"tooltip-format-deactivated": "idle-inhibitor <span color='#ee99a0'>off</span>"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} |",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<big>{:%I:%M:%S %p | %a | %F}</big>\n\n<tt><big>{calendar}</big></tt>",
|
||||
"calendar-weeks-pos": "right",
|
||||
"today-format": "<span color='#7645AD'><b><u>{}</u></b></span>",
|
||||
"format-calendar": "<span color='#aeaeae'><b>{}</b></span>",
|
||||
"format-calendar-weeks": "<span color='#aeaeae'><b>W{:%V}</b></span>",
|
||||
"format-calendar-weekdays": "<span color='#aeaeae'><b>{}</b></span>"
|
||||
},
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": " {}%",
|
||||
"tooltip-format": "{used} / {total} used"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage:02}% {icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}",
|
||||
"tooltip": false,
|
||||
"interval": 1,
|
||||
"format-icons": [
|
||||
// green,
|
||||
"<span color='#69ff94'>▁</span>",
|
||||
// blue,
|
||||
"<span color='#2aa9ff'>▂</span>",
|
||||
// white,
|
||||
"<span color='#f8f8f2'>▃</span>",
|
||||
// white,
|
||||
"<span color='#f8f8f2'>▄</span>",
|
||||
// yellow,
|
||||
"<span color='#ffffa5'>▅</span>",
|
||||
// yellow,
|
||||
"<span color='#ffffa5'>▆</span>",
|
||||
// orange,
|
||||
"<span color='#ff9977'>▇</span>",
|
||||
// red,
|
||||
"<span color='#dd532e'>█</span>"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"format": " {percentage:02}%"
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": "( {class} )",
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{volume:02}% {icon}",
|
||||
"format-bluetooth": "",
|
||||
"format-muted": "00% {icon}",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"bluetooth": "",
|
||||
"handsfree": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"🕨",
|
||||
"🕩",
|
||||
"🕪"
|
||||
]
|
||||
},
|
||||
"justify": "center",
|
||||
"on-click": "amixer sset Master toggle",
|
||||
"on-click-right": "pavucontrol",
|
||||
"tooltip-format": "{icon} {volume:02}%"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
"custom/exit": {
|
||||
"format": "| ",
|
||||
"on-click": "wlogout -b 2",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
|
||||
174
users/caperren/dotfiles/waybar/cap-slim7/config
Normal file
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
// "custom/logo",
|
||||
"clock",
|
||||
"temperature",
|
||||
"disk",
|
||||
"memory",
|
||||
"cpu"
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window",
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"backlight",
|
||||
"custom/exit"
|
||||
],
|
||||
"reload_style_on_change": true,
|
||||
"custom/logo": {
|
||||
"format": "<span font='15'></span>",
|
||||
"tooltip": false
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": false,
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9"
|
||||
}
|
||||
},
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"adapter": "AC",
|
||||
"interval": 10,
|
||||
"full-at": 100,
|
||||
"states": {
|
||||
"full": 100,
|
||||
"good": 75,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
"empty": 5
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"temperature": {
|
||||
"hwmon-path": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon5/temp1_input",
|
||||
"interval": 1,
|
||||
"critical-threshold": 90,
|
||||
"format": "{icon} {temperatureC}°C",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip-format-activated": "idle-inhibitor <span color='#a6da95'>on</span>",
|
||||
"tooltip-format-deactivated": "idle-inhibitor <span color='#ee99a0'>off</span>"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%I:%M:%S %p} |",
|
||||
"interval": 1,
|
||||
"tooltip-format": "<big>{:%I:%M:%S %p | %a | %F}</big>\n\n<tt><big>{calendar}</big></tt>",
|
||||
"calendar-weeks-pos": "right",
|
||||
"today-format": "<span color='#7645AD'><b><u>{}</u></b></span>",
|
||||
"format-calendar": "<span color='#aeaeae'><b>{}</b></span>",
|
||||
"format-calendar-weeks": "<span color='#aeaeae'><b>W{:%V}</b></span>",
|
||||
"format-calendar-weekdays": "<span color='#aeaeae'><b>{}</b></span>"
|
||||
},
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": " {}%",
|
||||
"tooltip-format": "{used} / {total} used"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage:02}% {icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}",
|
||||
"tooltip": false,
|
||||
"interval": 1,
|
||||
"format-icons": [
|
||||
// green,
|
||||
"<span color='#69ff94'>▁</span>",
|
||||
// blue,
|
||||
"<span color='#2aa9ff'>▂</span>",
|
||||
// white,
|
||||
"<span color='#f8f8f2'>▃</span>",
|
||||
// white,
|
||||
"<span color='#f8f8f2'>▄</span>",
|
||||
// yellow,
|
||||
"<span color='#ffffa5'>▅</span>",
|
||||
// yellow,
|
||||
"<span color='#ffffa5'>▆</span>",
|
||||
// orange,
|
||||
"<span color='#ff9977'>▇</span>",
|
||||
// red,
|
||||
"<span color='#dd532e'>█</span>"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"format": " {percentage:02}%"
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": "( {class} )",
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{volume:02}% {icon}",
|
||||
"format-bluetooth": "",
|
||||
"format-muted": "00% {icon}",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"bluetooth": "",
|
||||
"handsfree": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"🕨",
|
||||
"🕩",
|
||||
"🕪"
|
||||
]
|
||||
},
|
||||
"justify": "center",
|
||||
"on-click": "amixer sset Master toggle",
|
||||
"on-click-right": "pavucontrol",
|
||||
"tooltip-format": "{icon} {volume:02}%"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 14,
|
||||
"spacing": 10
|
||||
},
|
||||
"custom/exit": {
|
||||
"format": "| ",
|
||||
"on-click": "wlogout -b 2",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
|
||||
51
users/caperren/dotfiles/waybar/style.css
Normal file
@@ -0,0 +1,51 @@
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
font-size: 14px;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
window {
|
||||
background: rgba(0, 0, 0, 0.00);
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
color: rgba(217, 216, 216, 0.4);
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: rgba(217, 216, 216, 1);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
border-top: 3px solid rgba(217, 216, 216, 1);
|
||||
border-bottom: 3px solid rgba(217, 216, 216, 0);
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
}
|
||||
|
||||
#memory,
|
||||
#idle_inhibitor,
|
||||
#pulseaudio,
|
||||
#backlight {
|
||||
margin: 0 6px 0 10px;
|
||||
}
|
||||
|
||||
#disk {
|
||||
margin: 0 0 0 10px;
|
||||
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin: 0 6px 0 10px;
|
||||
}
|
||||
|
||||
#custom-exit {
|
||||
margin: 0 16px 0 6px;
|
||||
}
|
||||
24
users/caperren/dotfiles/wlogout/layout
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "loginctl terminate-user $USER",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "systemctl poweroff",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "systemctl reboot",
|
||||
"text" : "Reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||