# i3 config { config, pkgs, lib, ... }: { imports = [ ./02_gui_base_apps.nix ]; config = { users.users.${config.user} = { extraGroups = [ "networkmanager" ]; }; security.pam.services.i3lock.enable = true; networking.networkmanager.enable = true; home-manager.users.${config.user} = { pkgs, config, ... }: { home.packages = with pkgs; [ xorg.setxkbmap xbindkeys xdotool networkmanagerapplet arandr volumeicon xclip feh xorg.xev xfce.xfce4-screenshooter ]; programs.rofi = { enable = true; plugins = with pkgs; [ rofi-calc ]; }; xdg.configFile.i3 = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/i3"; }; xdg.configFile.i3blocks = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/i3blocks"; }; xdg.configFile.volumeicon = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/volumeicon"; }; home.file.".xbindkeysrc" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/xbindkeys/xbindkeysrc"; }; xdg.configFile."gtk-3.0" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/gtk-3.0"; }; home.file.".xprofile" = { source = ../../dotfiles/xprofile/xprofile; }; home.file.".config/Thunar/uca.xml" = { source = ../../dotfiles/thunar/uca.xml; }; home.file.".config/xfce4/xfconf/xfce-perchannel-xml" = { recursive = true; source = ../../dotfiles/xfce-perchannel-xml; }; home.file = { ".Xresources" = { text = '' Xcursor.size: 16 ''; }; }; }; services = { displayManager = { defaultSession = "xfce+i3"; # move this to host specific config? }; xserver = { enable = true; videoDrivers = [ "amdgpu" ]; xkb.layout = "us"; desktopManager = { xterm.enable = false; xfce = { enable = true; noDesktop = true; enableXfwm = false; }; }; windowManager = { i3 = { enable = true; extraPackages = with pkgs; [ i3status i3lock i3blocks rofi ]; }; }; }; pulseaudio.enable = false; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; }; security.rtkit.enable = true; # needed for pipewire/PA }; }