diff options
Diffstat (limited to 'home/desktop')
| -rw-r--r-- | home/desktop/athena.nix | 16 | ||||
| -rw-r--r-- | home/desktop/default.nix | 24 | ||||
| -rw-r--r-- | home/desktop/firefox.nix | 34 | ||||
| -rw-r--r-- | home/desktop/sway.nix | 124 |
4 files changed, 198 insertions, 0 deletions
diff --git a/home/desktop/athena.nix b/home/desktop/athena.nix new file mode 100644 index 0000000..6c1cbad --- /dev/null +++ b/home/desktop/athena.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.desktop; +in { + config = mkIf cfg.enable { + local.athena-bccr = { + enable = true; + gaudiHash = "sha256-EFVb3K/hQUD/u8/IftBAIYvSefwPqZDvcT8S9B860MM="; + }; + }; +} diff --git a/home/desktop/default.nix b/home/desktop/default.nix new file mode 100644 index 0000000..5f2d34e --- /dev/null +++ b/home/desktop/default.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.local.desktop; +in { + imports = [ + ./athena.nix + ./firefox.nix + ./sway.nix + ]; + + options.local.desktop = { + enable = lib.mkEnableOption "desktop"; + + portable = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Device is a laptop"; + }; + }; +} diff --git a/home/desktop/firefox.nix b/home/desktop/firefox.nix new file mode 100644 index 0000000..f19b3ad --- /dev/null +++ b/home/desktop/firefox.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.desktop; +in { + config = mkIf cfg.enable { + programs.firefox = { + enable = true; + + package = pkgs.firefox.override { + nativeMessagingHosts = [pkgs.passff-host]; + }; + + profiles."main.profile" = { + id = 0; + name = "default"; + + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ + decentraleyes + darkreader + old-reddit-redirect + passff + privacy-badger + ublock-origin + umatrix + ]; + }; + }; + }; +} diff --git a/home/desktop/sway.nix b/home/desktop/sway.nix new file mode 100644 index 0000000..40fd83a --- /dev/null +++ b/home/desktop/sway.nix @@ -0,0 +1,124 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.desktop; +in { + config = mkIf cfg.enable { + local = { + waybar = { + enable = true; + + battery = cfg.portable; + + fontSize = "24px"; + fontFamily = "Hack Nerd Font"; + }; + }; + + home.packages = [ + pkgs.wlr-randr + ]; + + programs = { + wofi.enable = true; + }; + + services = { + swayidle = { + enable = true; + + timeouts = [ + { + timeout = 600; + command = "${getExe pkgs.gtklock} -d"; + } + ]; + }; + }; + + systemd.user.services.wl-gammarelay-rs = { + Unit.After = ["sway-session.target"]; + Install.WantedBy = ["sway-session.target"]; + + Service.ExecStart = getExe pkgs.wl-gammarelay-rs; + }; + + wayland.windowManager.sway = { + enable = true; + + config = { + modifier = "Mod4"; + focus.followMouse = false; + + fonts = { + size = 11.0; + names = ["DejaVu Sans Mono"]; + style = "Bold Semi-Condensed"; + }; + + bars = singleton { + command = "waybar"; + position = "top"; + }; + + keybindings = let + mod = config.wayland.windowManager.sway.config.modifier; + wofi = config.programs.wofi.package; + + grimshot = getExe pkgs.sway-contrib.grimshot; + in + mkOptionDefault { + "${mod}+a" = "focus parent"; + "${mod}+c" = "focus child"; + "${mod}+d" = "exec --no-startup-id ${getExe wofi} -S run"; + "${mod}+i" = "exec busctl --user call rs.wl-gammarelay / rs.wl.gammarelay ToggleInverted"; + "${mod}+o" = "exec ${getExe pkgs.gtklock} -d"; + "${mod}+Return" = "exec ${getExe pkgs.local.st} -e ${getExe pkgs.local.tmux-lift} ${getExe pkgs.local.tmux-open}"; + "${mod}+Shift+e" = "input * xkb_layout latam"; + "${mod}+Shift+u" = "input * xkb_layout us"; + "${mod}+p" = "exec ${grimshot} copy active"; + "${mod}+Shift+p" = "exec ${grimshot} copy area"; + "${mod}+Ctrl+p" = "exec ${grimshot} copy window"; + }; + + startup = [ + #{ + # command = "${getExe pkgs.xautolock} -time 10 -locker '${pkgs.i3lock-color}/bin/i3lock-color -fe -c222222'"; + #} + ]; + + window.commands = [ + # (No) Title Bars + { + command = "border pixel 5"; + criteria.class = "^.*"; + } + + { + command = "floating enabled"; + criteria.class = "floating"; + } + ]; + }; + + extraSessionCommands = '' + export SDL_VIDEODRIVER=wayland + # needs qt5.qtwayland in systemPackages + export QT_QPA_PLATFORM=wayland + export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" + # Fix for some Java AWT applications (e.g. Android Studio), + # use this if they aren't displayed properly: + export _JAVA_AWT_WM_NONREPARENTING=1 + ''; + + swaynag.enable = true; + systemd.enable = true; + + xwayland = true; + }; + }; +} |
