Compare commits
34 Commits
f536023a14
...
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 |
@@ -1,5 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
virtualisation.waydroid.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
programs.qgroundcontrol.enable = true;
|
programs.qgroundcontrol.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
inav-configurator
|
||||||
mission-planner
|
mission-planner
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
audacity
|
audacity
|
||||||
darktable
|
darktable
|
||||||
davinci-resolve
|
|
||||||
inkscape
|
inkscape
|
||||||
kdePackages.kdenlive
|
kdePackages.kdenlive
|
||||||
obs-studio
|
obs-studio
|
||||||
|
pinta
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
|
||||||
spotifyPlayerDesktopEntry = pkgs.writeTextFile {
|
|
||||||
name = "spotify-player-desktop";
|
|
||||||
destination = "/share/applications/spotify-player.desktop";
|
|
||||||
text = ''
|
|
||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=Spotify Player
|
|
||||||
Exec=kitty -e spotify_player
|
|
||||||
Icon=spotify_player
|
|
||||||
Terminal=false
|
|
||||||
Categories=Media;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
# Make v4l2loopback kernel module available to NixOS.
|
# Make v4l2loopback kernel module available to NixOS.
|
||||||
@@ -41,13 +26,14 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
deadbeef
|
|
||||||
glava
|
glava
|
||||||
|
gimp
|
||||||
|
imv
|
||||||
plex-desktop
|
plex-desktop
|
||||||
projectm_3
|
projectm_3
|
||||||
sox
|
sox
|
||||||
|
spotify
|
||||||
spotify-player
|
spotify-player
|
||||||
spotifyPlayerDesktopEntry
|
|
||||||
vlc
|
vlc
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -2,5 +2,7 @@
|
|||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
obsidian
|
obsidian
|
||||||
|
kdePackages.okular
|
||||||
|
texliveFull
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,11 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
{
|
||||||
jetbrainsToolboxDesktopEntry = pkgs.writeTextFile {
|
|
||||||
name = "jetbrains-toolbox-desktop";
|
|
||||||
destination = "/share/applications/jetbrains-toolbox.desktop";
|
|
||||||
text = ''
|
|
||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=JetBrains Toolbox
|
|
||||||
Exec=jetbrains-toolbox
|
|
||||||
Icon=jetbrains-toolbox
|
|
||||||
Terminal=false
|
|
||||||
Categories=Development;IDE;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
arduino-ide
|
arduino-ide
|
||||||
|
dfu-util
|
||||||
gcc
|
gcc
|
||||||
gnumake
|
gnumake
|
||||||
jetbrains-toolbox
|
jetbrains-toolbox
|
||||||
jetbrainsToolboxDesktopEntry
|
|
||||||
nix-update
|
nix-update
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
nixos-generators
|
nixos-generators
|
||||||
|
|||||||
@@ -1,26 +1,25 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
hardware.keyboard.qmk.enable = true;
|
||||||
|
hardware.logitech.wireless.enable = true;
|
||||||
|
hardware.logitech.wireless.enableGraphical = true;
|
||||||
|
|
||||||
programs.thunar.enable = true;
|
programs.thunar.enable = true;
|
||||||
programs.thunar.plugins = with pkgs.xfce; [
|
programs.thunar.plugins = with pkgs.xfce; [
|
||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
thunar-volman
|
thunar-volman
|
||||||
];
|
];
|
||||||
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
|
||||||
services.tumbler.enable = true; # Thumbnail support for images
|
|
||||||
|
|
||||||
programs.ydotool.enable = true;
|
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.openssh.enable = true;
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
services.tumbler.enable = true; # Thumbnail support for images
|
||||||
hardware.logitech.wireless.enable = true;
|
|
||||||
hardware.logitech.wireless.enableGraphical = true;
|
|
||||||
hardware.keyboard.qmk.enable = true;
|
|
||||||
|
|
||||||
services.hardware.openrgb.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
btop
|
btop-cuda
|
||||||
desktop-file-utils
|
desktop-file-utils
|
||||||
dnsutils
|
dnsutils
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
@@ -31,9 +30,12 @@
|
|||||||
imagemagick
|
imagemagick
|
||||||
iotop
|
iotop
|
||||||
jq
|
jq
|
||||||
|
kdePackages.qt6ct
|
||||||
killall
|
killall
|
||||||
kitty
|
kitty
|
||||||
|
swappy
|
||||||
lf
|
lf
|
||||||
|
minicom
|
||||||
ncdu
|
ncdu
|
||||||
networkmanager
|
networkmanager
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
@@ -42,7 +44,7 @@
|
|||||||
openrgb-with-all-plugins
|
openrgb-with-all-plugins
|
||||||
pciutils
|
pciutils
|
||||||
rofi-bluetooth
|
rofi-bluetooth
|
||||||
rpi-imager
|
# rpi-imager # <- Build Failure
|
||||||
rpiboot
|
rpiboot
|
||||||
s-tui
|
s-tui
|
||||||
scrcpy
|
scrcpy
|
||||||
@@ -53,6 +55,7 @@
|
|||||||
usbutils
|
usbutils
|
||||||
util-linux
|
util-linux
|
||||||
wget
|
wget
|
||||||
|
xev
|
||||||
xfce.mousepad
|
xfce.mousepad
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
virtualisation.containers.policy = {
|
||||||
|
default = [ { type = "insecureAcceptAnything"; } ];
|
||||||
|
|
||||||
|
};
|
||||||
virtualisation.podman = {
|
virtualisation.podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = true;
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-emoji
|
noto-fonts-color-emoji
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
fira-code
|
fira-code
|
||||||
fira-code-symbols
|
fira-code-symbols
|
||||||
|
|||||||
@@ -1,38 +1,36 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.displayManager.gdm = {
|
|
||||||
enable = true;
|
|
||||||
wayland = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = 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.enable = true;
|
||||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
|
||||||
programs.hyprlock.enable = true;
|
|
||||||
programs.waybar.enable = true;
|
|
||||||
services.hypridle.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
arandr
|
arandr
|
||||||
|
bemenu
|
||||||
dunst
|
dunst
|
||||||
flameshot
|
|
||||||
grim
|
grim
|
||||||
hyprpaper
|
hyprpaper
|
||||||
hyprpicker
|
hyprpicker
|
||||||
|
j4-dmenu-desktop
|
||||||
kanshi
|
kanshi
|
||||||
libnotify
|
libnotify
|
||||||
mako
|
mako
|
||||||
@@ -42,7 +40,7 @@
|
|||||||
swayimg
|
swayimg
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wlogout
|
wlogout
|
||||||
wofi
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,14 @@
|
|||||||
programs.bash.shellAliases = {
|
programs.bash.shellAliases = {
|
||||||
# Nix rebuild, switch
|
# Nix rebuild, switch
|
||||||
nrs = "bash -c \"cd /etc/nixos && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\"";
|
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
|
# Nix flake update, rebuild, switch
|
||||||
nus = "bash -c \"cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\"";
|
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.
|
# 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...
|
# Remember to make that partition bigger in the future...
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
extraRules = [
|
extraRules = [
|
||||||
{
|
{
|
||||||
|
groups = [ "wheel" ];
|
||||||
commands = [
|
commands = [
|
||||||
{
|
{
|
||||||
command = "${pkgs.systemd}/bin/reboot";
|
command = "${pkgs.systemd}/bin/reboot";
|
||||||
@@ -14,7 +15,16 @@
|
|||||||
options = [ "NOPASSWD" ];
|
options = [ "NOPASSWD" ];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
groups = [ "wheel" ];
|
}
|
||||||
|
{
|
||||||
|
users = [ "caperren" ];
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
command = "${pkgs.nvtopPackages.full}/bin/nvtop";
|
||||||
|
options = [ "NOPASSWD" "SETENV" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,12 +13,13 @@ in
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Corwin Perren";
|
description = "Corwin Perren";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
|
||||||
"wheel"
|
|
||||||
"input"
|
|
||||||
"dialout"
|
|
||||||
"plugdev"
|
|
||||||
"adbusers"
|
"adbusers"
|
||||||
|
"dialout"
|
||||||
|
"input"
|
||||||
|
"networkmanager"
|
||||||
|
"plugdev"
|
||||||
|
"podman"
|
||||||
|
"wheel"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -33,25 +34,74 @@ in
|
|||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Corwin Perren";
|
settings.user = {
|
||||||
userEmail = "caperren@gmail.com";
|
name = "Corwin Perren";
|
||||||
|
email = "caperren@gmail.com";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
programs.bash.enable = true;
|
||||||
|
programs.bemenu.enable = true;
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
font.name = "JetBrains Mono";
|
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/hypridle.conf".source = ./dotfiles/hypridle/hypridle.conf;
|
||||||
home.file.".config/hypr/hyprpaper.conf".source = ./dotfiles/hyprpaper/hyprpaper.conf;
|
home.file.".config/hypr/hyprpaper.conf".source = ./dotfiles/hyprpaper/hyprpaper.conf;
|
||||||
home.file.".config/hypr/backgrounds/black.png".source = ./dotfiles/hyprpaper/black.png;
|
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-common.conf".source = ./dotfiles/hyprland/hyprland-common.conf;
|
||||||
home.file.".config/hypr/hyprland.conf".source = hyprlandConfigPath + "/hyprland.conf";
|
home.file.".config/hypr/hyprland.conf".source = hyprlandConfigPath + "/hyprland.conf";
|
||||||
home.file.".config/kanshi/config".source = kanshiConfigPath + "/config";
|
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/spotify-player/app.toml".text = spotifyPlayerAppTomlText;
|
||||||
home.file.".config/waybar/config".source = waybarConfigPath + "/config";
|
home.file.".config/waybar/config".source = waybarConfigPath + "/config";
|
||||||
home.file.".config/waybar/style.css".source = ./dotfiles/waybar/style.css;
|
home.file.".config/waybar/style.css".source = ./dotfiles/waybar/style.css;
|
||||||
home.file.".config/wlogout/layout".source = ./dotfiles/wlogout/layout;
|
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 = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
@@ -73,10 +123,24 @@ in
|
|||||||
font.name = "JetBrains Mono 11";
|
font.name = "JetBrains Mono 11";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.sessionPath = [
|
||||||
|
"$HOME/.local/share"
|
||||||
|
];
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
GTK_THEME = "Adwaita-dark";
|
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 = {
|
xresources.properties = {
|
||||||
"Xft.font" = "JetBrains Mono";
|
"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;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# Unfortunate legacy config needed because hyprland can't hot switch variable refresh rate
|
# Unfortunate legacy config needed because hyprland can't hot switch variable refresh rate
|
||||||
monitor=eDP-2,2560x1600@165,auto,1,vrr,1
|
monitor = eDP-2,2560x1600@165,auto,1,vrr,1
|
||||||
|
|
||||||
# Source configs
|
# Source configs
|
||||||
source = ~/.config/hypr/hyprland-common.conf
|
source = ~/.config/hypr/hyprland-common.conf
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
# Always enable new monitors in automatic mode
|
# Always enable new monitors in automatic mode, for when kanshi doesn't know about the setup
|
||||||
monitor=,preferred,auto,1
|
monitor=,preferred,auto,1
|
||||||
|
|
||||||
# Set programs that you use
|
# Set programs that you use
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$menu = wofi --show drun
|
$menu = j4-dmenu-desktop --dmenu='bemenu --ignorecase --line-height 22 --hf "##10AC25" --ff "##10AC25" --tf "##10AC25"' --term='kitty'
|
||||||
|
|
||||||
# Some default env vars.
|
# Some default env vars
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
|
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||||
|
|
||||||
input {
|
input {
|
||||||
kb_layout = us
|
kb_layout = us
|
||||||
@@ -83,14 +83,13 @@ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
|||||||
|
|
||||||
$mainMod = SUPER
|
$mainMod = SUPER
|
||||||
|
|
||||||
bind = $mainMod, T, exec, $terminal
|
|
||||||
bind = $mainMod, C, killactive,
|
|
||||||
|
|
||||||
# Launch terminal
|
# Launch terminal
|
||||||
|
bind = $mainMod, T, exec, $terminal
|
||||||
bind = SHIFT_SUPER, Return, exec, $terminal
|
bind = SHIFT_SUPER, Return, exec, $terminal
|
||||||
|
|
||||||
# Close active window
|
# Close active window
|
||||||
bind = $mainMod, Shift+q, killactive,
|
bind = $mainMod, Shift+q, killactive,
|
||||||
|
bind = $mainMod, C, killactive,
|
||||||
|
|
||||||
bind = $mainMod, M, exit,
|
bind = $mainMod, M, exit,
|
||||||
bind = $mainMod, E, exec, $fileManager
|
bind = $mainMod, E, exec, $fileManager
|
||||||
@@ -157,18 +156,31 @@ bindl=, XF86AudioNext, exec, playerctl next
|
|||||||
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
|
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
|
||||||
bind = ,XF86MonBrightnessUp, 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
|
# Application launch
|
||||||
exec-once = kanshi
|
exec-once = kanshi # Automatically handles display configurations
|
||||||
exec-once = ydotoold
|
exec-once = ydotoold # Autoclicker/autokeyboard for automation
|
||||||
exec-once = hypridle
|
exec-once = hypridle # Hyprland/wayland specific idle lock tool
|
||||||
exec-once = hyprpaper
|
exec-once = hyprpaper # Hyprland/wayland specific wallpaper tool
|
||||||
|
|
||||||
exec-once = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 10%
|
exec-once = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 10% # Keep eardrums intact on reboot
|
||||||
|
|
||||||
# Loop needed until waybar gtk icon crash fixed
|
exec-once = waybar # Wayland specific status bar
|
||||||
exec-once = bash -c "while true; do waybar; sleep 3; done"
|
|
||||||
|
|
||||||
exec-once = sleep 5 && nm-applet
|
exec-once = sleep 5 && nm-applet # Traditional notifications area
|
||||||
exec-once = sleep 5 && blueman-applet
|
exec-once = sleep 5 && blueman-applet # Traditional bluetooth management tool
|
||||||
exec-once = sleep 5 && streamdeck -n
|
exec-once = sleep 5 && streamdeck -n # Streamdeck management tool
|
||||||
exec-once = sleep 5 && Telegram -startintray
|
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 |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
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 |