summaryrefslogtreecommitdiff
path: root/hosts/local/i3.nix
blob: 9c68af3989296b3c093a6da9d06981934c108a23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
{
  inputs,
  pkgs,
  ...
}: let
  old-pkgs = import inputs.nixpkgs-old {
    system = pkgs.system;
    config.allowUnfree = true;
  };
in {
  environment.pathsToLink = ["/libexec"];
  services.xserver = {
    xkb.options = "compose:ralt";
    # xkb.layout = "us";
    # xkb.variant = "";
    enable = true;
    autorun = false;
    # displayManager = {
    #   startx.enable = true;
    # };
    desktopManager = {
      xterm.enable = false;
    };
    windowManager.i3 = {
      enable = true;
      extraPackages = with pkgs; [
        dmenu
        i3status
        i3status-rust
        i3lock
        i3blocks
      ];
    };
  };

  # Boot to terminal
  services.displayManager = {
    defaultSession = "none+i3";
  };

  # gnome stuff
  services.gvfs.enable = true;
  programs.dconf.enable = true;
  # screen tearing
  services.picom = {
    enable = true;
    vSync = true;
  };
  environment.systemPackages = with pkgs; [
    #notifications
    dunst
    polybar
    rofi
    # screenshots
    flameshot
    shutter
    maim
    xclip
    pavucontrol
    # icons
    polkit_gnome
    gnome-themes-extra
    gtk-engine-murrine
    gtk_engines
    gsettings-desktop-schemas
    lxappearance
    adwaita-qt
    adwaita-icon-theme
  ];
  services.flatpak.enable = true;

  # screen capture
  #

  xdg.portal = {
    enable = true;
    xdgOpenUsePortal = true;
    extraPortals = [
      pkgs.xdg-desktop-portal-gtk
      pkgs.xdg-desktop-portal-gnome
    ];
  };
  xdg.portal.config.common.default = "*";
  xdg.portal.wlr.enable = true;
  services.dbus.enable = true;
  ## Remove sound.enable or set it to false if you had it set previously, as sound.enable is only meant for ALSA-based configurations

  # rtkit is optional but recommended
  services.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    wireplumber.enable = true;
    # If you want to use JACK applications, uncomment this
    jack.enable = true;
  };

  # pipewire requires these off
  # sound.enable = true;
  # hardware.pulseaudio.enable = true;
  hardware.bluetooth = {
    enable = true;
    powerOnBoot = true;
  };
  services.blueman.enable = true;
}