Merge pull request #5 from caperren/jetbrains-thunar-waybar

Better theming, lock and idle control, wofi desktop launchers, brightness and volume defaults
This commit is contained in:
2025-07-02 01:12:27 -07:00
committed by GitHub
8 changed files with 131 additions and 29 deletions

View File

@@ -1,5 +1,19 @@
{ 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.
extraModulePackages = with config.boot.kernelPackages; [ extraModulePackages = with config.boot.kernelPackages; [
@@ -26,18 +40,20 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
deadbeef
vlc
sox
audacity
glava
spotify-player
projectm_3
obs-studio
darktable
# Encountering build failures audacity
# plex-desktop darktable
deadbeef
glava
obs-studio
# plex-desktop --> Encountering build failures
projectm_3
sox
spotify-player
spotifyPlayerDesktopEntry
vlc
]; ];
} }

View File

@@ -1,20 +1,35 @@
{ 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; [
vscode-with-extensions
nixfmt-rfc-style
platformio
jetbrains-toolbox
arduino-ide arduino-ide
python311Full
gcc gcc
jetbrains-toolbox
jetbrainsToolboxDesktopEntry
nix-update
nixfmt-rfc-style
nixos-generators
nodejs nodejs
platformio
python311Full
python3Full
stm32cubemx stm32cubemx
stm32flash stm32flash
python3Full
nix-update
nixos-generators
teensy-udev-rules teensy-udev-rules
vscode-with-extensions
]; ];
services.udev.extraRules = '' services.udev.extraRules = ''

View File

@@ -3,7 +3,9 @@ let
hyprlandConfigPath = ./. + "/dotfiles/hyprland/${config.networking.hostName}"; hyprlandConfigPath = ./. + "/dotfiles/hyprland/${config.networking.hostName}";
kanshiConfigPath = ./. + "/dotfiles/kanshi/${config.networking.hostName}"; kanshiConfigPath = ./. + "/dotfiles/kanshi/${config.networking.hostName}";
spotifyPlayerAppTomlTextTemplate = builtins.readFile ./dotfiles/spotify-player/app.toml; spotifyPlayerAppTomlTextTemplate = builtins.readFile ./dotfiles/spotify-player/app.toml;
spotifyPlayerAppTomlText = builtins.replaceStrings [ "{{hostname}}" ] [ config.networking.hostName ] spotifyPlayerAppTomlTextTemplate; spotifyPlayerAppTomlText =
builtins.replaceStrings [ "{{hostname}}" ] [ config.networking.hostName ]
spotifyPlayerAppTomlTextTemplate;
waybarConfigPath = ./. + "/dotfiles/waybar/${config.networking.hostName}"; waybarConfigPath = ./. + "/dotfiles/waybar/${config.networking.hostName}";
in in
{ {
@@ -35,11 +37,35 @@ in
userEmail = "caperren@gmail.com"; userEmail = "caperren@gmail.com";
}; };
home.file.".config/hypr/hypridle.conf".source = ./dotfiles/hypridle/hypridle.conf;
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/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/wlogout/layout".source = ./dotfiles/wlogout/layout; home.file.".config/wlogout/layout".source = ./dotfiles/wlogout/layout;
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;
};
};
home.sessionVariables = {
GTK_THEME = "Adwaita-dark";
};
}; };
} }

View 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
# }

View File

@@ -3,3 +3,7 @@ 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
# Application launch
exec-once = brightnessctl -sd platform::kbd_backlight set 1
exec-once = brightnessctl -s set 30%

View File

@@ -162,12 +162,16 @@ bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1% bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1%
# Application launch # Application launch
exec-once = kanshi & exec-once = kanshi
exec-once = ydotoold & exec-once = ydotoold
exec-once = hypridle
exec-once = sleep 3 && waybar exec-once = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 10%
# Loop needed until waybar gtk icon crash fixed
exec-once = bash -c "while true; do waybar; sleep 3; done"
exec-once = sleep 5 && nm-applet exec-once = sleep 5 && nm-applet
exec-once = sleep 5 && blueman-applet exec-once = sleep 5 && blueman-applet
exec-once = sleep 5 && streamdeck -n exec-once = sleep 5 && streamdeck -n
exec-once = sleep 5 & telegram-desktop -startintray exec-once = sleep 5 && Telegram -startintray

View File

@@ -43,7 +43,9 @@
"format-icons": { "format-icons": {
"activated": "󰈈", "activated": "󰈈",
"deactivated": "󰈉" "deactivated": "󰈉"
} },
"tooltip-format-activated": "idle-inhibitor <span color='#a6da95'>on</span>",
"tooltip-format-deactivated": "idle-inhibitor <span color='#ee99a0'>off</span>"
}, },
"clock": { "clock": {
"format": "{:%I:%M:%S %p | %a | %F}", "format": "{:%I:%M:%S %p | %a | %F}",

View File

@@ -70,7 +70,9 @@
"format-icons": { "format-icons": {
"activated": "󰈈", "activated": "󰈈",
"deactivated": "󰈉" "deactivated": "󰈉"
} },
"tooltip-format-activated": "idle-inhibitor <span color='#a6da95'>on</span>",
"tooltip-format-deactivated": "idle-inhibitor <span color='#ee99a0'>off</span>"
}, },
"clock": { "clock": {
"format": "{:%I:%M:%S %p | %a | %F}", "format": "{:%I:%M:%S %p | %a | %F}",