move home-manager config to subdirectory
This commit is contained in:
188
home/profiles/xsession/default.nix
Normal file
188
home/profiles/xsession/default.nix
Normal file
@@ -0,0 +1,188 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.profiles.xsession;
|
||||
non-nixos = config.profiles.non-nixos;
|
||||
mkGL = program: "${lib.strings.optionalString non-nixos.enable "${pkgs.nixgl.auto.nixGLDefault}/bin/nixGL "}${program}";
|
||||
execScope = program: "exec bash -c \"systemd-run --user --scope --unit='app-i3-exec-$RANDOM' -p CollectMode=inactive-or-failed -p MemoryHigh=85% -p MemoryMax=92% -p MemorySwapMax=5G -p MemoryAccounting=true \"${program}\"\"";
|
||||
in
|
||||
{
|
||||
imports = [ ./dunstrc.nix ./terminal.nix ./polybar.nix ];
|
||||
|
||||
options.profiles.xsession = {
|
||||
enable = lib.mkEnableOption "Whether or not to control the xsession";
|
||||
};
|
||||
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
profiles.gui.enable = true;
|
||||
|
||||
systemd.user.slices.app.Slice = {
|
||||
MemoryHigh="90%";
|
||||
MemoryMax="94%";
|
||||
MemorySwapMax="8G";
|
||||
CPUQuota="${toString ((config.machine.cores - 1)*100)}%";
|
||||
MemoryAccounting = true;
|
||||
};
|
||||
|
||||
home.keyboard = {
|
||||
layout = "no";
|
||||
variant = "nodeadkeys";
|
||||
};
|
||||
|
||||
services.random-background = {
|
||||
enable = false;
|
||||
imageDirectory = "${pkgs.dan.wallpapers}";
|
||||
interval = "30m";
|
||||
};
|
||||
|
||||
services.dunst.enable = false;
|
||||
|
||||
xsession = {
|
||||
enable = true;
|
||||
|
||||
|
||||
initExtra = ''
|
||||
export PATH="$HOME/.config/nixpkgs/nix-dotfiles/bin:$PATH"
|
||||
|
||||
export XDG_CURRENT_DESKTOP=kde
|
||||
export DESKTOP_SESSION=kde
|
||||
'';
|
||||
|
||||
windowManager = {
|
||||
i3.enable = true;
|
||||
i3.config = {
|
||||
modifier = "Mod4";
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
keybindings = let
|
||||
modifier = config.xsession.windowManager.i3.config.modifier;
|
||||
dmenu = if config.machine.systemd then "${../../scripts/dmenu_run_systemd}" else "dmenu_run";
|
||||
in lib.mkOptionDefault {
|
||||
"${modifier}+0" = "workspace 10";
|
||||
"${modifier}+Shift+0" = "move container to workspace 10";
|
||||
|
||||
"${modifier}+Tab" = "workspace next";
|
||||
"${modifier}+Shift+Tab" = "workspace prev";
|
||||
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pkgs.pulseaudio}/bin/pactl set-sink-volume 0 +5%";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${pkgs.pulseaudio}/bin/pactl set-sink-volume 0 -5%";
|
||||
"XF86AudioMute" = "exec --no-startup-id ${pkgs.pulseaudio}/bin/pactl set-sink-mute 0 toggle";
|
||||
"XF86AudioMicMute" = "exec --no-startup-id ${pkgs.pulseaudio}/bin/pactl set-source-mute 1 toggle";
|
||||
|
||||
# Georg volume controls
|
||||
"Shift+XF86AudioRaiseVolume" = "exec --no-startup-id ${lib.getExe pkgs.gregctl} set-volume -- +5%";
|
||||
"Shift+XF86AudioLowerVolume" = "exec --no-startup-id ${lib.getExe pkgs.gregctl} set-volume -- -5%";
|
||||
"Shift+XF86AudioMute" = "exec --no-startup-id ${lib.getExe pkgs.gregctl} toggle";
|
||||
|
||||
"XF86MonBrightnessUp" = "exec --no-startup-id brightnessctl set +5%";
|
||||
"XF86MonBrightnessDown" = "exec --no-startup-id brightnessctl set 5%-";
|
||||
|
||||
"Print" = "exec scrot %Y-%m-%d_$wx$h_scrot.png -z -e 'mv $f /home/daniel/Pictures/screenshots/'";
|
||||
"${modifier}+Print" = "exec scrot /home/daniel/Pictures/Screenshots/%Y-%m-%d_$wx$h_scrot.png -z";
|
||||
|
||||
"${modifier}+l" = "exec ${pkgs.writers.writeBash "hello_world" ''
|
||||
dunstctl set-paused true
|
||||
${pkgs.i3lock}/bin/i3lock -n -i ~/images/wallpapers/locked.png
|
||||
dunstctl set-paused false
|
||||
''}";
|
||||
|
||||
"XF86Display" = "exec arandr";
|
||||
|
||||
"${modifier}+Shift+U" = "exec $HOME/.config/nixpkgs/nix-dotfiles/scripts/dmenuunicode";
|
||||
"${modifier}+Shift+s" = "exec $HOME/.config/nixpkgs/nix-dotfiles/scripts/dmenuaudio";
|
||||
"${modifier}+Shift+v" = "exec ${pkgs.writers.writeBash "switch_audio" ''
|
||||
if pw-link -l | grep "^VirtualMic:input_FL" -A 2 | grep FilteredMic; then
|
||||
${pkgs.pipewire}/bin/pw-link -d "FilteredMic:capture_MONO" "VirtualMic:input_FL"
|
||||
${pkgs.pipewire}/bin/pw-link -d "FilteredMic:capture_MONO" "VirtualMic:input_FR"
|
||||
${pkgs.pipewire}/bin/pw-link "VoiceChanger:monitor_FL" "VirtualMic:input_FL"
|
||||
${pkgs.pipewire}/bin/pw-link "VoiceChanger:monitor_FR" "VirtualMic:input_FR"
|
||||
${pkgs.pipewire}/bin/pw-link "VoiceChanger:monitor_FL" "VirtualHeadset:playback_FL"
|
||||
${pkgs.pipewire}/bin/pw-link "VoiceChanger:monitor_FR" "VirtualHeadset:playback_FR"
|
||||
else
|
||||
${pkgs.pipewire}/bin/pw-link "FilteredMic:capture_MONO" "VirtualMic:input_FL"
|
||||
${pkgs.pipewire}/bin/pw-link "FilteredMic:capture_MONO" "VirtualMic:input_FR"
|
||||
${pkgs.pipewire}/bin/pw-link -d "VoiceChanger:monitor_FL" "VirtualMic:input_FL"
|
||||
${pkgs.pipewire}/bin/pw-link -d "VoiceChanger:monitor_FR" "VirtualMic:input_FR"
|
||||
${pkgs.pipewire}/bin/pw-link -d "VoiceChanger:monitor_FL" "VirtualHeadset:playback_FL"
|
||||
${pkgs.pipewire}/bin/pw-link -d "VoiceChanger:monitor_FR" "VirtualHeadset:playback_FR"
|
||||
fi
|
||||
''}";
|
||||
|
||||
"${modifier}+d" = "exec ${dmenu}";
|
||||
|
||||
"${modifier}+n" = execScope "dolphin";
|
||||
"${modifier}+b" = execScope "firefox";
|
||||
"${modifier}+t" = execScope "gedit";
|
||||
|
||||
"${modifier}+Return" = execScope "kitty";
|
||||
"${modifier}+Shift+Return" = execScope "kitty -e ssh dandellion@lilith";
|
||||
};
|
||||
startup = [
|
||||
{
|
||||
command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
always = false;
|
||||
#notification = false;
|
||||
}
|
||||
];
|
||||
window = {
|
||||
titlebar = false;
|
||||
hideEdgeBorders = "smart";
|
||||
};
|
||||
floating.criteria = [
|
||||
{ title = "Steam - Update News"; }
|
||||
];
|
||||
};
|
||||
i3.extraConfig = ''
|
||||
for_window [title="Steam Big Picture Mode"] floating enable, resize set 1920 1080, move position 0 0, border pixel 0
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.picom = {
|
||||
enable = true;
|
||||
backend = "xrender";
|
||||
};
|
||||
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
package = pkgs.breeze-gtk;
|
||||
name = "Breeze";
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.breeze-icons;
|
||||
name = "breeze";
|
||||
};
|
||||
};
|
||||
# qt = {
|
||||
# enable = true;
|
||||
# platformTheme = "gtk";
|
||||
# };
|
||||
|
||||
xsession.windowManager.command = lib.mkIf non-nixos.enable (lib.mkForce "${pkgs.nixgl.auto.nixGLDefault}/bin/nixGL ${config.xsession.windowManager.i3.package}/bin/i3");
|
||||
|
||||
home.packages = [
|
||||
pkgs.brightnessctl
|
||||
pkgs.xorg.xkill
|
||||
pkgs.arandr
|
||||
|
||||
pkgs.dunst
|
||||
pkgs.libnotify
|
||||
|
||||
pkgs.dmenu
|
||||
|
||||
pkgs.scrot
|
||||
pkgs.neofetch
|
||||
#pkgs.dan.colors
|
||||
pkgs.xclip
|
||||
|
||||
pkgs.dejavu_fonts
|
||||
|
||||
pkgs.source-code-pro
|
||||
|
||||
pkgs.breeze-qt5
|
||||
pkgs.breeze-icons
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user