aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/hjem
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/hjem')
-rw-r--r--modules/desktop/hjem/default.nix12
-rw-r--r--modules/desktop/hjem/gtk.nix37
-rw-r--r--modules/desktop/hjem/programs/firefox.nix26
-rw-r--r--modules/desktop/hjem/programs/foot.nix61
-rw-r--r--modules/desktop/hjem/wm/dunst.nix36
-rw-r--r--modules/desktop/hjem/wm/fuzzel.nix49
-rw-r--r--modules/desktop/hjem/wm/sway.nix110
7 files changed, 331 insertions, 0 deletions
diff --git a/modules/desktop/hjem/default.nix b/modules/desktop/hjem/default.nix
new file mode 100644
index 0000000..a1a28c5
--- /dev/null
+++ b/modules/desktop/hjem/default.nix
@@ -0,0 +1,12 @@
+{
+ imports = [
+ ./gtk.nix
+
+ ./wm/sway.nix
+ ./wm/dunst.nix
+ ./wm/fuzzel.nix
+
+ ./programs/foot.nix
+ ./programs/firefox.nix
+ ];
+}
diff --git a/modules/desktop/hjem/gtk.nix b/modules/desktop/hjem/gtk.nix
new file mode 100644
index 0000000..bee5936
--- /dev/null
+++ b/modules/desktop/hjem/gtk.nix
@@ -0,0 +1,37 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.gtk;
+in {
+ packages = with pkgs; [
+ dconf
+
+ papirus-icon-theme
+ cfg.cursor_data.package
+ cfg.theme_data.package
+ ];
+
+ xdg.config.files = let
+ value.Settings = {
+ gtk-cursor-theme-name = cfg.cursor_data.name;
+ gtk-cursor-size = 24;
+ gtk-icon-theme-name = "Papirus";
+ gtk-theme-name = cfg.theme_data.name;
+ };
+ in {
+ "gtk-3.0/settings.ini" = {
+ generator = lib.generators.toINI {};
+ inherit value;
+ };
+ "gtk-4.0/settings.ini" = {
+ generator = lib.generators.toINI {};
+ inherit value;
+ };
+ "gtk-4.0/gtk.css".text = ''
+ @import url("file://${cfg.theme_data.package}/gtk-4.0/gtk.css");
+ '';
+ };
+}
diff --git a/modules/desktop/hjem/programs/firefox.nix b/modules/desktop/hjem/programs/firefox.nix
new file mode 100644
index 0000000..73040d2
--- /dev/null
+++ b/modules/desktop/hjem/programs/firefox.nix
@@ -0,0 +1,26 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in
+ lib.mkIf cfg.enable {
+ files.".mozilla/firefox/profiles.ini" = {
+ generator = lib.generators.toINI {};
+ value = {
+ Profile0 = {
+ Name = "collin";
+ IsRelative = 1;
+ Path = "collin";
+ Default = 1;
+ };
+ General = {
+ StartWithLastProfile = 1;
+ Version = 2;
+ };
+ };
+ };
+ packages = [pkgs.firefox];
+ }
diff --git a/modules/desktop/hjem/programs/foot.nix b/modules/desktop/hjem/programs/foot.nix
new file mode 100644
index 0000000..4d630c6
--- /dev/null
+++ b/modules/desktop/hjem/programs/foot.nix
@@ -0,0 +1,61 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.foot;
+
+ settings = {
+ main = {
+ font = "Iosevka Nerd Font:size=12";
+ shell = "${pkgs.fish}/bin/fish";
+ };
+
+ colors = {
+ foreground = "cdd6f4";
+ background = "1e1e2e";
+ cursor = "11111b f5e0dc";
+
+ regular0 = "45475a";
+ regular1 = "f38ba8";
+ regular2 = "a6e3a1";
+ regular3 = "f9e2af";
+ regular4 = "89b4fa";
+ regular5 = "f5c2e7";
+ regular6 = "94e2d5";
+ regular7 = "bac2de";
+
+ bright0 = "585b70";
+ bright1 = "f38ba8";
+ bright2 = "a6e3a1";
+ bright3 = "f9e2af";
+ bright4 = "89b4fa";
+ bright5 = "f5c2e7";
+ bright6 = "94e2d5";
+ bright7 = "a6adc8";
+
+ "16" = "fab387";
+ "17" = "f5e0dc";
+
+ selection-foreground = "cdd6f4";
+ selection-background = "414356";
+
+ search-box-no-match = "11111b f38ba8";
+ search-box-match = "cdd6f4 313244";
+
+ jump-labels = "11111b fab387";
+ urls = "89b4fa";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ files = {
+ ".config/foot/foot.ini" = {
+ generator = lib.generators.toINI {};
+ value = settings;
+ };
+ };
+
+ packages = [pkgs.foot];
+ }
diff --git a/modules/desktop/hjem/wm/dunst.nix b/modules/desktop/hjem/wm/dunst.nix
new file mode 100644
index 0000000..38a8240
--- /dev/null
+++ b/modules/desktop/hjem/wm/dunst.nix
@@ -0,0 +1,36 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.sway.components.dunst;
+
+ settings = ''
+ [global]
+ frame_color = "#89b4fa"
+ separator_color = frame
+ highlight = "#89b4fa"
+ offset = "(8,8)"
+ origin = "top-right"
+ transparency = 10
+ font = "Iosevka Nerd Font"
+
+ [urgency_low]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_normal]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_critical]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+ frame_color = "#fab387"
+ '';
+in
+ lib.mkIf cfg.enable {
+ files.".config/dunst/dunstrc".text = settings;
+ packages = with pkgs; [dunst inotify-tools];
+ }
diff --git a/modules/desktop/hjem/wm/fuzzel.nix b/modules/desktop/hjem/wm/fuzzel.nix
new file mode 100644
index 0000000..7b9d075
--- /dev/null
+++ b/modules/desktop/hjem/wm/fuzzel.nix
@@ -0,0 +1,49 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.sway.components.fuzzel;
+
+ settings = {
+ main = {
+ prompt = "";
+ dpi-aware = false;
+
+ font = "Iosevka Nerd Font";
+ line-height = 25;
+ lines = 10;
+ width = 30;
+
+ horizontal-pad = 8;
+ vertical-pad = 8;
+ };
+ border = {
+ radius = 0;
+ width = 2;
+ };
+
+ colors = {
+ background = "1e1e2edd";
+ text = "cdd6f4ff";
+ prompt = "bac2deff";
+ placeholder = "7f849cff";
+ input = "cdd6f4ff";
+ match = "89b4faff";
+ selection = "585b70ff";
+ selection-text = "cdd6f4ff";
+ selection-match = "89b4faff";
+ counter = "7f849cff";
+ border = "89b4faff";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ files.".config/fuzzel/fuzzel.ini" = {
+ generator = lib.generators.toINI {};
+ value = settings;
+ };
+
+ packages = [pkgs.fuzzel];
+ }
diff --git a/modules/desktop/hjem/wm/sway.nix b/modules/desktop/hjem/wm/sway.nix
new file mode 100644
index 0000000..1cd7750
--- /dev/null
+++ b/modules/desktop/hjem/wm/sway.nix
@@ -0,0 +1,110 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.sway;
+
+ colors = ''
+ set $rosewater #f5e0dc
+ set $flamingo #f2cdcd
+ set $pink #f5c2e7
+ set $mauve #cba6f7
+ set $red #f38ba8
+ set $maroon #eba0ac
+ set $peach #fab387
+ set $yellow #f9e2af
+ set $green #a6e3a1
+ set $teal #94e2d5
+ set $sky #89dceb
+ set $sapphire #74c7ec
+ set $blue #89b4fa
+ set $lavender #b4befe
+ set $text #cdd6f4
+ set $subtext1 #bac2de
+ set $subtext0 #a6adc8
+ set $overlay2 #9399b2
+ set $overlay1 #7f849c
+ set $overlay0 #6c7086
+ set $surface2 #585b70
+ set $surface1 #45475a
+ set $surface0 #313244
+ set $base #1e1e2e
+ set $mantle #181825
+ set $crust #11111b
+ '';
+
+ settings = ''
+ exec ${pkgs.foot}/bin/foot --server
+ exec ${pkgs.swaybg}/bin/swaybg -i ${config.collinux.desktop.wallpaper}
+ exec ${pkgs.dunst}/bin/dunst
+
+ include catppuccin-mocha
+
+ # target title bg text indicator border
+ client.focused $lavender $base $text $rosewater $lavender
+ client.focused_inactive $overlay0 $base $text $rosewater $overlay0
+ client.unfocused $overlay0 $base $text $rosewater $overlay0
+ client.urgent $peach $base $peach $overlay0 $peach
+ client.placeholder $overlay0 $base $text $overlay0 $overlay0
+ client.background $base
+
+ input type:keyboard {
+ xkb_options caps:none
+ }
+
+ bindsym Mod4+1 workspace number 1
+ bindsym Mod4+2 workspace number 2
+ bindsym Mod4+3 workspace number 3
+ bindsym Mod4+4 workspace number 4
+ bindsym Mod4+5 workspace number 5
+ bindsym Mod4+6 workspace number 6
+ bindsym Mod4+7 workspace number 7
+ bindsym Mod4+8 workspace number 8
+ bindsym Mod4+9 workspace number 9
+
+ bindsym Mod4+Shift+1 move container to workspace number 1
+ bindsym Mod4+Shift+2 move container to workspace number 2
+ bindsym Mod4+Shift+3 move container to workspace number 3
+ bindsym Mod4+Shift+4 move container to workspace number 4
+ bindsym Mod4+Shift+5 move container to workspace number 5
+ bindsym Mod4+Shift+6 move container to workspace number 6
+ bindsym Mod4+Shift+7 move container to workspace number 7
+ bindsym Mod4+Shift+8 move container to workspace number 8
+ bindsym Mod4+Shift+9 move container to workspace number 9
+
+ bindsym Mod4+Return exec ${pkgs.foot}/bin/footclient
+ bindsym Mod4+Shift+Return exec ${pkgs.foot}/bin/foot
+ bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel
+ bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
+ bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser
+ bindsym Mod4+q kill
+
+ bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"'
+ bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"'
+
+ bindsym XF86MonBrightnessUp exec 'brightnessctl set 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"'
+ bindsym XF86MonBrightnessDown exec 'brightnessctl set 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"'
+
+ bindsym Home exec 'playerctl previous'
+ bindsym End exec 'playerctl play-pause'
+ bindsym Insert exec 'playerctl next'
+
+ default_border pixel 2
+ smart_borders on
+ smart_gaps on
+ '';
+in
+ lib.mkIf cfg.enable {
+ files = {
+ ".config/sway/config".text = settings;
+ ".config/sway/catppuccin-mocha".text = colors;
+ };
+
+ packages = with pkgs; [
+ sway
+ brightnessctl
+ playerctl
+ ];
+ }