diff options
Diffstat (limited to 'modules/desktop/hjem')
| -rw-r--r-- | modules/desktop/hjem/default.nix | 12 | ||||
| -rw-r--r-- | modules/desktop/hjem/gtk.nix | 37 | ||||
| -rw-r--r-- | modules/desktop/hjem/programs/firefox.nix | 26 | ||||
| -rw-r--r-- | modules/desktop/hjem/programs/foot.nix | 61 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/dunst.nix | 36 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/fuzzel.nix | 49 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/sway.nix | 110 |
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 + ]; + } |
