mirror of
https://github.com/caperren/nixos-configs.git
synced 2025-11-08 19:51:14 +00:00
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:
@@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = ''
|
||||||
|
|||||||
@@ -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";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
33
users/caperren/dotfiles/hypridle/hypridle.conf
Normal file
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
|
||||||
|
# }
|
||||||
@@ -2,4 +2,8 @@
|
|||||||
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
|
||||||
|
|
||||||
|
# Application launch
|
||||||
|
exec-once = brightnessctl -sd platform::kbd_backlight set 1
|
||||||
|
exec-once = brightnessctl -s set 30%
|
||||||
@@ -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
|
||||||
@@ -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}",
|
||||||
|
|||||||
@@ -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}",
|
||||||
|
|||||||
Reference in New Issue
Block a user