diff --git a/config/common/users/emily/default.nix b/config/common/users/emily/default.nix
index 68f362c..bf2dc50 100644
--- a/config/common/users/emily/default.nix
+++ b/config/common/users/emily/default.nix
@@ -26,6 +26,7 @@
] ++ lib.optionals config.kyouma.machine-type.graphical [
linux-manual
colmena
+ clinfo
thunderbird
obsidian
krita
diff --git a/config/hosts/ryuuko/configuration.nix b/config/hosts/ryuuko/configuration.nix
index b094514..2ee1d17 100644
--- a/config/hosts/ryuuko/configuration.nix
+++ b/config/hosts/ryuuko/configuration.nix
@@ -1,4 +1,4 @@
-{ config, inputs, lib, pkgs, ... }: {
+{ inputs, lib, pkgs, ... }: {
imports = [
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-extreme-gen4
../../common
@@ -10,7 +10,8 @@
boot.extraModprobeConfig = ''
options i915 enable_guc=3
'';
- boot.initrd.kernelModules = [ "i915" ];
+ boot.initrd.kernelModules = [ "i915" "amdgpu" ];
+ boot.initrd.supportedFilesystems = [ "btrfs" ];
boot.kernelParams = [
"intel_iommu=on"
"i915.enable_guc=3"
@@ -32,7 +33,11 @@
hardware.opengl = {
driSupport32Bit = true;
- extraPackages = [ pkgs.intel-media-driver pkgs.libvdpau-va-gl ];
+ extraPackages = with pkgs; [
+ intel-media-driver
+ libvdpau-va-gl
+ rocmPackages.clr.icd
+ ];
};
hardware.sane = {
enable = true;
diff --git a/config/profiles/graphical/default.nix b/config/profiles/graphical/default.nix
index 7c7b700..dfd6d5e 100644
--- a/config/profiles/graphical/default.nix
+++ b/config/profiles/graphical/default.nix
@@ -3,7 +3,6 @@
inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
./nixvim.nix
- ./scripts.nix
];
kyouma.machine-type.graphical = true;
@@ -12,7 +11,7 @@
boot.plymouth.enable = true;
- security.pam.services.swaylock = {};
+ security.pam.services.hyprlock = {};
services.dbus.packages = [ pkgs.gcr ];
services.geoclue2.enable = true;
@@ -32,6 +31,7 @@
GDK_BACKEND = "wayland,x11";
MOZ_ENABLE_WAYLAND = "1";
CLUTTER_BACKEND = "wayland";
+ LIBVA_DRIVER_NAME = "iHD";
};
xdg.icons.enable = true;
xdg.portal = {
@@ -106,6 +106,42 @@
fi
'';
};
+ home.file."./local/bin/hypr/colorpicker.sh" = {
+ enable = true;
+ executable = true;
+ source = pkgs.writeShellApplication {
+ name = "colorpicker";
+ text = builtins.readFile ./files/scripts/colorpicker.sh;
+ runtimeInputs = with pkgs; [ coreutils grim slurp imagemagick_light wl-clipboard libnotify ];
+ };
+ };
+ home.file."./local/bin/hypr/rofi_powermenu.sh" = {
+ enable = true;
+ executable = true;
+ source = pkgs.writeShellApplication {
+ name = "rofi-powermenu";
+ text = builtins.readFile ./files/scripts/rofi_powermenu.sh;
+ runtimeInputs = with pkgs; [ rofi coreutils-full toybox xdg-user-dirs ];
+ };
+ };
+ home.file."./local/bin/hypr/rofi_screenshot.sh" = {
+ enable = true;
+ executable = true;
+ source = pkgs.writeShellApplication {
+ name = "rofi-screenshot";
+ text = builtins.readFile ./files/scripts/rofi_screenshot.sh;
+ runtimeInputs = with pkgs; [ coreutils grim hyprland imv slurp wl-clipboard libnotify pulseaudio toybox rofi xdg-user-dirs ];
+ };
+ };
+ home.file."./local/bin/hypr/screenshot.sh" = {
+ enable = true;
+ executable = true;
+ source = pkgs.writeShellApplication {
+ name = "screenshot";
+ text = builtins.readFile ./files/scripts/screenshot.sh;
+ runtimeInputs = with pkgs; [ coreutils grim imv slurp wl-clipboard libnotify pulseaudio ];
+ };
+ };
home.file."Pictures/wallpapers/sylviaritter/wallpaper.png" = {
enable = true;
source = config.stylix.image;
@@ -114,12 +150,6 @@
enable = true;
source = config.stylix.image;
};
- home.file.".local/bin/hypr" = {
- enable = true;
- executable = true;
- recursive = true;
- source = ./files/scripts;
- };
wayland.windowManager.hyprland = {
enable = true;
settings = let
@@ -127,7 +157,6 @@
pactl = "${pkgs.pulseaudio}/bin/pactl";
playerctl = "${pkgs.playerctl}/bin/playerctl";
notifysend = "${pkgs.libnotify}/bin/notify-send";
- swaylock = "${pkgs.swaylock}/bin/swaylock";
dolphin = "${pkgs.libsForQt5.dolphin}/bin/dolphin";
firefox = "${pkgs.firefox}/bin/firefox";
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
@@ -239,17 +268,21 @@
"eDP-1, 3840x2400@60, 0x0, 1, bitdepth, 10"
#"eDP-1, 2560x1600@60, 0x0, 1, bitdepth, 10"
#"eDP-1, 1920x1200@60, 0x0, 1, bitdepth, 10"
- "desc:ASUSTek COMPUTER INC ASUS VA24E M7LMTF021529, 1920x1080@60, -320x-1080, 1"
- "desc:ASUSTek COMPUTER INC ASUS VA24E M7LMTF021525, 1920x1080@60, 1600x-1080, 1"
+ "desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455, 2560x1440@143.972,3840x0, 1,bitdepth,10"
+ "desc:Samsung Electric Company S27E500 0x3043394D, 1920x1080@70,6400x180, 1"
",preferred,auto,1"
];
workspace = [
- "1, monitor:eDP-1, default:true"
- "2, monitor:eDP-1"
- "3, monitor:eDP-1"
- "8, monitor:DP-2"
- "9, monitor:DP-3"
- "10, monitor:eDP-1"
+ "1, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455, default:true"
+ "2, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "3, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "4, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "5, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "6, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "7, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
+ "8, monitor:desc:Samsung Electric Company S27E500 0x3043394D"
+ "9, monitor:desc:Samsung Electric Company S27E500 0x3043394D"
+ "10,monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455"
];
windowrule = [
"float, foot-float"
@@ -276,10 +309,11 @@
"$mod, D, exec, ${rofi} -show drun -theme ~/.config/rofi/launcher.rasi"
"$mod, R, exec, ${rofi} -show run -theme ~/.config/rofi/runner.rasi"
"$mod, A, exec, ~/.local/bin/hypr/rofi_screenshot.sh"
+ "$mod, X, exec, ~/.local/bin/hypr/rofi_powermenu.sh"
# Misc
"$mod, C, exec, ~/.local/bin/hypr/colorpicker.sh"
- "CTRL_ALT, L, exec, ${swaylock} -f -i $XDG_PICTURES_DIR/wallpapers/lockscreen.png"
+ "CTRL_ALT, L, exec, ${pkgs.hyprlock}/bin/hyprlock"
# Function keys
", XF86AudioMute, exec, ${pactl} set-sink-mute @DEFAULT_SINK@ toggle"
@@ -401,6 +435,10 @@
"$mod ALT, down, moveactive, 0 80"
"$mod ALT, J, moveactive, 0 80"
];
+ bindl = [
+ ",switch:on:Lid Switch,exec, lsusb -d 17ef:30b4 && hyprctl keyword monitor 'eDP-1, disable'"
+ ",switch:off:Lid Switch,exec, hyprctl keyword monitor 'eDP-1, 3840x2400@60, 0x0, 1, bitdepth,10'"
+ ];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
@@ -411,10 +449,51 @@
};
};
+ programs.hyprlock = {
+ enable = true;
+ settings = {
+ general = {
+ grace = 1;
+ hide_cursor = true;
+ disable_loading_bar = true;
+ };
+ background = [{
+ path = "screenshot";
+ #path = "$HOME/Pictures/wallpapers/lockscreen.png";
+ blur_passes = 3;
+ contrast = 1.25;
+ }];
+ input-field = [{
+ size = "250, 60";
+ outline_thickness = 2;
+ dots_size = 0.2;
+ dots_spacing = 0.2;
+ dots_center = true;
+ outer_color = "rgba(0, 0, 0, 0)";
+ inner_color = "rgba(0, 0, 0, 0.5)";
+ font_color = "rgb(200, 200, 200)";
+ fade_on_empty = true;
+ fade_timeout = 5000;
+ font_family = "JetBrains Mono Nerd Font Mono";
+ fail_text = "$FAIL $ATTEMPTS";
+ position = "0, 200";
+ halign = "center";
+ valign = "bottom";
+ }];
+ label = [{
+ text = "cmd[update:250] date +%X";
+ color = "rgba(255, 255, 255, 0.6)";
+ font_size = "100";
+ font_family = "JetBrains Mono Nerd Font Mono ExtraBold";
+ position = "0, -300";
+ halign = "center";
+ valign = "top";
+ }];
+ };
+ };
+
programs.imv.enable = true;
- programs.swaylock.enable = true;
-
programs.wpaperd = {
enable = true;
settings.default = {
@@ -647,13 +726,13 @@
services.swayidle =
let
- swaylock = "${pkgs.swaylock}/bin/swaylock";
+ hyprlock = "${pkgs.hyprlock}/bin/hyprlock";
in {
enable = true;
systemdTarget = "hyprland-session.target";
events = [
- { event = "before-sleep"; command = "${swaylock} -f -i $XDG_PICTURES_DIR/wallpapers/lockscreen.png"; }
- { event = "lock"; command = "${swaylock} -f -i $XDG_PICTURES_DIR/wallpapers/lockscreen.png"; }
+ { event = "before-sleep"; command = hyprlock; }
+ { event = "lock"; command = hyprlock; }
];
};
diff --git a/config/profiles/graphical/files/rofi/confirm.rasi b/config/profiles/graphical/files/rofi/confirm.rasi
new file mode 100644
index 0000000..aa76542
--- /dev/null
+++ b/config/profiles/graphical/files/rofi/confirm.rasi
@@ -0,0 +1,122 @@
+@import "shared/colors.rasi"
+configuration {
+ show-icons: false;
+}
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 300px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 2px solid;
+ border-radius: 15px;
+ border-color: @border;
+ cursor: "default";
+ background-color: @background;
+}
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: var(urgent);
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: var(active);
+ text-color: @background;
+}
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+element {
+ enabled: true;
+ padding: 2px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/config/profiles/graphical/files/rofi/launcher.rasi b/config/profiles/graphical/files/rofi/launcher.rasi
index 6d68674..cc1213f 100644
--- a/config/profiles/graphical/files/rofi/launcher.rasi
+++ b/config/profiles/graphical/files/rofi/launcher.rasi
@@ -1,8 +1,4 @@
-/**
- * Copyright (C) 2020-2023 Aditya Shakya
- **/
-
-/*****----- Configuration -----*****/
+@import "shared/colors.rasi"
configuration {
modi: "drun,run,filebrowser";
show-icons: true;
@@ -11,11 +7,6 @@ configuration {
display-filebrowser: "";
drun-display-format: "{name}";
}
-
-/*****----- Global Properties -----*****/
-@import "shared/colors.rasi"
-
-/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
@@ -36,8 +27,6 @@ window {
cursor: "default";
background-color: @background;
}
-
-/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 10px;
@@ -46,8 +35,6 @@ mainbox {
background-color: transparent;
children: [ "inputbar", "message", "listview", "mode-switcher" ];
}
-
-/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
@@ -58,7 +45,6 @@ inputbar {
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
-
prompt {
enabled: true;
background-color: inherit;
@@ -81,8 +67,6 @@ entry {
placeholder: "Search...";
placeholder-color: inherit;
}
-
-/*****----- Listview -----*****/
listview {
enabled: true;
columns: 2;
@@ -106,8 +90,6 @@ scrollbar {
border-radius: 10px;
background-color: @background-alt;
}
-
-/*****----- Elements -----*****/
element {
enabled: true;
spacing: 10px;
@@ -153,8 +135,6 @@ element-text {
vertical-align: 0.5;
horizontal-align: 0.0;
}
-
-/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 10px;
@@ -174,8 +154,6 @@ button selected {
background-color: var(urgent);
text-color: var(background);
}
-
-/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
diff --git a/config/profiles/graphical/files/rofi/powermenu.rasi b/config/profiles/graphical/files/rofi/powermenu.rasi
new file mode 100644
index 0000000..b6f86ff
--- /dev/null
+++ b/config/profiles/graphical/files/rofi/powermenu.rasi
@@ -0,0 +1,122 @@
+@import "shared/colors.rasi"
+configuration {
+ show-icons: false;
+}
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 510px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 2px solid;
+ border-radius: 15px;
+ border-color: @border;
+ cursor: "default";
+ background-color: @background;
+}
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: var(urgent);
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: var(active);
+ text-color: @background;
+}
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+element {
+ enabled: true;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/config/profiles/graphical/files/rofi/runner.rasi b/config/profiles/graphical/files/rofi/runner.rasi
index dde2854..9e44dbc 100644
--- a/config/profiles/graphical/files/rofi/runner.rasi
+++ b/config/profiles/graphical/files/rofi/runner.rasi
@@ -1,8 +1,4 @@
-/**
- * Copyright (C) 2020-2023 Aditya Shakya
- **/
-
-/*****----- Configuration -----*****/
+@import "shared/colors.rasi"
configuration {
modi: "run";
show-icons: true;
@@ -11,11 +7,6 @@ configuration {
display-filebrowser: "";
drun-display-format: "{name}";
}
-
-/*****----- Global Properties -----*****/
-@import "shared/colors.rasi"
-
-/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
@@ -36,8 +27,6 @@ window {
cursor: "default";
background-color: @background;
}
-
-/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 10px;
@@ -46,8 +35,6 @@ mainbox {
background-color: transparent;
children: [ "inputbar", "listview" ];
}
-
-/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
@@ -58,7 +45,6 @@ inputbar {
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
-
prompt {
enabled: true;
background-color: inherit;
@@ -81,8 +67,6 @@ entry {
placeholder: "Run...";
placeholder-color: inherit;
}
-
-/*****----- Listview -----*****/
listview {
enabled: true;
columns: 2;
@@ -106,8 +90,6 @@ scrollbar {
border-radius: 10px;
background-color: @background-alt;
}
-
-/*****----- Elements -----*****/
element {
enabled: true;
spacing: 10px;
@@ -153,8 +135,6 @@ element-text {
vertical-align: 0.5;
horizontal-align: 0.0;
}
-
-/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 10px;
@@ -174,8 +154,6 @@ button selected {
background-color: var(urgent);
text-color: var(background);
}
-
-/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
diff --git a/config/profiles/graphical/files/rofi/screenshot.rasi b/config/profiles/graphical/files/rofi/screenshot.rasi
index c6ac3fc..f6cabaa 100644
--- a/config/profiles/graphical/files/rofi/screenshot.rasi
+++ b/config/profiles/graphical/files/rofi/screenshot.rasi
@@ -1,20 +1,7 @@
-/**
- * Copyright (C) 2020-2023 Aditya Shakya
- **/
-
-/*****----- Configuration -----*****/
+@import "shared/colors.rasi"
configuration {
show-icons: false;
}
-
-/*****----- Global Properties -----*****/
-@import "shared/colors.rasi"
-
-/*
-USE_ICON=YES
-*/
-
-/*****----- Main Window -----*****/
window {
transparency: "real";
location: center;
@@ -31,8 +18,6 @@ window {
cursor: "default";
background-color: @background;
}
-
-/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 10px;
@@ -41,8 +26,6 @@ mainbox {
background-color: transparent;
children: [ "inputbar", "message", "listview" ];
}
-
-/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
@@ -54,7 +37,6 @@ inputbar {
text-color: @foreground;
children: [ "textbox-prompt-colon", "prompt"];
}
-
textbox-prompt-colon {
enabled: true;
expand: false;
@@ -71,8 +53,6 @@ prompt {
background-color: var(active);
text-color: @background;
}
-
-/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
@@ -89,8 +69,6 @@ textbox {
vertical-align: 0.5;
horizontal-align: 0.0;
}
-
-/*****----- Listview -----*****/
listview {
enabled: true;
columns: 6;
@@ -103,8 +81,6 @@ listview {
background-color: transparent;
cursor: "default";
}
-
-/*****----- Elements -----*****/
element {
enabled: true;
padding: 15px;
@@ -123,7 +99,6 @@ element-text {
vertical-align: 0.5;
horizontal-align: 0.5;
}
-
element normal.normal,
element alternate.normal {
background-color: var(background-alt);
diff --git a/config/profiles/graphical/files/scripts/colorpicker.sh b/config/profiles/graphical/files/scripts/colorpicker.sh
new file mode 100755
index 0000000..f615b93
--- /dev/null
+++ b/config/profiles/graphical/files/scripts/colorpicker.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+color=$(grim -g "$(slurp -b 20262C00 -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n1 | cut -d' ' -f4)
+image=/tmp/${color}.png
+
+main() {
+ if [[ "$color" ]]; then
+ # copy color code to clipboard
+ echo "$color" | tr -d "\n" | wl-copy
+ # generate preview
+ convert -size 48x48 xc:"$color" "${image}"
+ # notify about it
+ notify-send -h string:x-canonical-private-synchronous:sys-notify-picker -u low -i "${image}" "$color, copied to clipboard."
+ fi
+}
+
+main
diff --git a/config/profiles/graphical/files/scripts/rofi_powermenu.sh b/config/profiles/graphical/files/scripts/rofi_powermenu.sh
new file mode 100755
index 0000000..3a2c032
--- /dev/null
+++ b/config/profiles/graphical/files/scripts/rofi_powermenu.sh
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+
+# Import Current Theme
+DIR="$HOME/.config/hypr"
+RASI="$DIR/rofi/powermenu.rasi"
+CNFR="$DIR/rofi/confirm.rasi"
+
+# Theme Elements
+prompt="$(hostname) ($XDG_CURRENT_DESKTOP)"
+mesg="Uptime : $(uptime -p | sed -E -e 's/up //g' -e 's/week|weeks/w/g' -e 's/day|days/d/g' -e 's/hour|hours/h/g' -e 's/minute|minutes/m/g')"
+
+# Options
+option_1=""
+option_2="☀"
+option_3=""
+option_4=""
+option_5="↺"
+option_6=""
+yes=''
+no=''
+
+# Rofi CMD
+rofi_cmd() {
+ rofi -dmenu \
+ -p "$prompt" \
+ -mesg "$mesg" \
+ -markup-rows \
+ -theme "${RASI}"
+}
+
+# Pass variables to rofi dmenu
+run_rofi() {
+ echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
+}
+
+# Confirmation CMD
+confirm_cmd() {
+ rofi -dmenu \
+ -p 'Confirmation' \
+ -mesg 'Are you Sure?' \
+ -theme "${CNFR}"
+}
+
+# Ask for confirmation
+confirm_exit() {
+ echo -e "$yes\n$no" | confirm_cmd
+}
+
+# Confirm and execute
+confirm_run () {
+ selected="$(confirm_exit)"
+ if [[ "$selected" == "$yes" ]]; then
+ ${1} && ${2} && ${3} && ${4}
+ else
+ exit
+ fi
+}
+
+# Execute Command
+run_cmd() {
+ if [[ "$1" == '--opt1' ]]; then
+ hyprlock
+ elif [[ "$1" == '--opt2' ]]; then
+ confirm_run 'hyprctl dispatch exit 0'
+ elif [[ "$1" == '--opt3' ]]; then
+ confirm_run 'pulsemixer --mute' 'hyprlock' 'systemctl suspend' #"$DIR/scripts/lockscreen"
+ elif [[ "$1" == '--opt4' ]]; then
+ confirm_run 'systemctl hibernate'
+ elif [[ "$1" == '--opt5' ]]; then
+ confirm_run 'systemctl reboot'
+ elif [[ "$1" == '--opt6' ]]; then
+ confirm_run 'systemctl poweroff'
+ fi
+}
+
+# Actions
+chosen="$(run_rofi)"
+case ${chosen} in
+ "$option_1")
+ run_cmd --opt1
+ ;;
+ "$option_2")
+ run_cmd --opt2
+ ;;
+ "$option_3")
+ run_cmd --opt3
+ ;;
+ "$option_4")
+ run_cmd --opt4
+ ;;
+ "$option_5")
+ run_cmd --opt5
+ ;;
+ "$option_6")
+ run_cmd --opt6
+ ;;
+esac
diff --git a/config/profiles/graphical/files/scripts/rofi_screenshot.sh b/config/profiles/graphical/files/scripts/rofi_screenshot.sh
index 8959d8c..c57d846 100755
--- a/config/profiles/graphical/files/scripts/rofi_screenshot.sh
+++ b/config/profiles/graphical/files/scripts/rofi_screenshot.sh
@@ -6,10 +6,10 @@ RASI="$DIR/screenshot.rasi"
# Theme Elements
prompt='Screenshot'
-mesg="Directory :: `xdg-user-dir PICTURES`/screenshots"
+mesg="Directory :: $(xdg-user-dir PICTURES)/screenshots"
# Options
-layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
+layout=$(< "${RASI}" grep 'USE_ICON' | cut -d'=' -f2)
if [[ "$layout" == 'NO' ]]; then
option_1=" Capture Desktop"
option_2=" Capture Area"
@@ -30,7 +30,7 @@ rofi_cmd() {
-p "$prompt" \
-mesg "$mesg" \
-markup-rows \
- -theme ${RASI}
+ -theme "${RASI}"
}
# Pass variables to rofi dmenu
@@ -39,9 +39,9 @@ run_rofi() {
}
# Screenshot
-time=`date +%Y-%m-%d-%H-%M-%S`
-dir="`xdg-user-dir PICTURES`/screenshots"
-file="${time}_${geometry}.png"
+time=$(date +%Y-%m-%d-%H-%M-%S)
+dir="$(xdg-user-dir PICTURES)/screenshots"
+file="${time}.png"
# Directory
if [[ ! -d "$dir" ]]; then
@@ -49,7 +49,7 @@ if [[ ! -d "$dir" ]]; then
fi
# notify and view screenshot
-iDIR="$HOME/.config/hypr/mako/icons"
+iDIR="$HOME/.config/hypr/mako-icons"
notify_view() {
notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:sys-notify-shot -u low -i ${iDIR}/picture.png"
${notify_cmd_shot} "Copied to clipboard."
@@ -64,7 +64,7 @@ notify_view() {
# countdown
countdown () {
- for sec in `seq $1 -1 1`; do
+ for sec in $(seq "$1" -1 1); do
notify-send -h string:x-canonical-private-synchronous:sys-notify-count -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec"
sleep 1
done
@@ -72,31 +72,31 @@ countdown () {
# take shots
shotnow () {
- cd ${dir} && sleep 0.5 && grim - | tee "$file" | wl-copy
+ cd "${dir}" && sleep 0.5 && grim - | tee "$file" | wl-copy
notify_view
}
shot5 () {
countdown '5'
- sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
+ sleep 1 && cd "${dir}" && grim - | tee "$file" | wl-copy
notify_view
}
shot10 () {
countdown '10'
- sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
+ sleep 1 && cd "${dir}" && grim - | tee "$file" | wl-copy
notify_view
}
shotwin () {
- w_pos=`hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1`
- w_size=`hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g`
- cd ${dir} && sleep 0.3 && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy
+ w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1)
+ w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g)
+ cd "${dir}" && sleep 0.3 && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy
notify_view
}
shotarea () {
- cd ${dir} && grim -g "$(slurp -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && sleep 0.3)" - | tee "$file" | wl-copy
+ cd "${dir}" && grim -g "$(slurp -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && sleep 0.3)" - | tee "$file" | wl-copy
notify_view
}
@@ -118,19 +118,19 @@ run_cmd() {
# Actions
chosen="$(run_rofi)"
case ${chosen} in
- $option_1)
+ "$option_1")
run_cmd --opt1
;;
- $option_2)
+ "$option_2")
run_cmd --opt2
;;
- $option_3)
+ "$option_3")
run_cmd --opt3
;;
- $option_4)
+ "$option_4")
run_cmd --opt4
;;
- $option_5)
+ "$option_5")
run_cmd --opt5
;;
esac
diff --git a/config/profiles/graphical/files/scripts/screenshot.sh b/config/profiles/graphical/files/scripts/screenshot.sh
new file mode 100755
index 0000000..5642593
--- /dev/null
+++ b/config/profiles/graphical/files/scripts/screenshot.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+iDIR="$HOME/.config/hypr/mako-icons"
+
+time=$(date +%Y-%m-%d-%H-%M-%S)
+dir="$(xdg-user-dir PICTURES)/screenshots"
+file="${time}.png"
+
+# notify and view screenshot
+notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:sys-notify-shot -u low -i ${iDIR}/picture.png"
+notify_view () {
+ ${notify_cmd_shot} "Copied to clipboard."
+ paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
+ imv "${dir}/$file"
+ if [[ -e "$dir/$file" ]]; then
+ ${notify_cmd_shot} "Screenshot Saved."
+ else
+ ${notify_cmd_shot} "Screenshot Deleted."
+ fi
+}
+
+# countdown
+countdown () {
+ for sec in $(seq "$1" -1 1); do
+ notify-send -h string:x-canonical-private-synchronous:sys-notify-count -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec"
+ sleep 1
+ done
+}
+
+# take shots
+shotnow () {
+ cd "${dir}" && sleep 0.5 && grim - | tee "$file" | wl-copy
+ notify_view
+}
+
+shot5 () {
+ countdown '5'
+ sleep 1 && cd "${dir}" && grim - | tee "$file" | wl-copy
+ notify_view
+}
+
+shot10 () {
+ countdown '10'
+ sleep 1 && cd "${dir}" && grim - | tee "$file" | wl-copy
+ notify_view
+}
+
+shotwin () {
+ w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1)
+ w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g)
+ cd "${dir}" && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy
+ notify_view
+}
+
+shotarea () {
+ cd "${dir}" && grim -g "$(slurp -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && sleep 0.3)" - | tee "$file" | wl-copy
+ notify_view
+}
+
+if [[ ! -d "$dir" ]]; then
+ mkdir -p "$dir"
+fi
+
+if [[ "$1" == "--now" ]]; then
+ shotnow
+elif [[ "$1" == "--in5" ]]; then
+ shot5
+elif [[ "$1" == "--in10" ]]; then
+ shot10
+elif [[ "$1" == "--win" ]]; then
+ shotwin
+elif [[ "$1" == "--area" ]]; then
+ shotarea
+else
+ echo -e "Available Options : --now --in5 --in10 --win --area"
+fi
+
+exit 0
diff --git a/config/profiles/graphical/scripts.nix b/config/profiles/graphical/scripts.nix
deleted file mode 100644
index 2b43b2d..0000000
--- a/config/profiles/graphical/scripts.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ pkgs, inputs, ... }: {
- imports = [
- inputs.home-manager.nixosModules.home-manager
- ];
- home-manager.users.emily.home.file.".local/bin/hypr/colorpicker.sh" = {
- enable = true;
- executable = true;
- text = ''
- #!/${pkgs.bash}/bin/bash
- color=$(${pkgs.grim}/bin/grim -g "`${pkgs.slurp}/bin/slurp -b 20262C00 -p`" -t ppm - | \
- ${pkgs.imagemagick_light}/bin/convert - -format '%[pixel:p{0,0}]' txt:- | \
- ${pkgs.coreutils}/bin/tail -n1 | ${pkgs.coreutils}/bin/cut -d' ' -f4)
- image=/tmp/''${color}.png
- main() {
- if [[ "$color" ]]; then
- ${pkgs.coreutils}/bin/echo $color | ${pkgs.coreutils}/bin/tr -d "\n" | ${pkgs.wl-clipboard}/bin/wl-copy
- ${pkgs.imagemagick_light}/bin/convert -size 48x48 xc:"$color" ''${image}
- ${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:sys-notify-picker -u low -i ''${image} "$color, copied to clipboard."
- fi
- }
- main
- '';
- };
- home-manager.users.emily.home.file.".local/bin/hypr/screenshot.sh" = let
- cu = "${pkgs.coreutils}/bin";
- grim = "${pkgs.grim}/bin/grim";
- notify-send = "${pkgs.libnotify}/bin/notify-send";
- paplay = "${pkgs.pulseaudio}/bin/paplay";
- slurp = "${pkgs.slurp}/bin/slurp";
- imv = "${pkgs.imv}/bin/imv";
- wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy";
- in {
- enable = true;
- executable = true;
- text = ''
- #!/${pkgs.bash}/bin/bash
- iDIR="$HOME/.config/mako-icons"
- time=`${cu}/date +%Y-%m-%d-%H-%M-%S`
- dir="$HOME/Pictures/screenshots"
- file="''${time}.png"
-
- notify_cmd_shot="${notify-send} -h string:x-canonical-private-synchronous:sys-notify-shot -u low -i ''${iDIR}/picture.png"
- notify_view () {
- ''${notify_cmd_shot} "Copied to clipboard."
- ${paplay} /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
- ${imv} "''${dir}/$file"
- if [[ -e "$dir/$file" ]]; then
- ''${notify_cmd_shot} "Screenshot Saved."
- else
- ''${notify_cmd_shot} "Screenshot Deleted."
- fi
- }
- countdown () {
- for sec in `${cu}/seq $1 -1 1`; do
- ${notify-send} -h string:x-canonical-private-synchronous:sys-notify-count -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec"
- ${cu}/sleep 1
- done
- }
- shotnow () {
- cd ''${dir} && ${cu}/sleep 0.5 && ${grim} - | ${cu}/tee "$file" | ${wl-copy}
- notify_view
- }
- shotarea () {
- cd ''${dir} && ${grim} -g "$(${slurp} -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && ${cu}/sleep 0.3)" - | ${cu}/tee "$file" | ${wl-copy}
- notify_view
- }
- if [[ ! -d "$dir" ]]; then
- ${cu}/mkdir -p "$dir"
- fi
-
- if [[ "$1" == "--now" ]]; then
- shotnow
- elif [[ "$1" == "--in5" ]]; then
- countdown '5'
- shotnow
- elif [[ "$1" == "--in10" ]]; then
- countdown '10'
- shotnow
- elif [[ "$1" == "--area" ]]; then
- shotarea
- else
- echo -e "Available Options : --now --in5 --in10 --area"
- fi
- exit 0
- '';
- };
-}
diff --git a/pkgs/update-nixfiles/update-nixfiles.sh b/pkgs/update-nixfiles/update-nixfiles.sh
index 4e875e1..785a886 100644
--- a/pkgs/update-nixfiles/update-nixfiles.sh
+++ b/pkgs/update-nixfiles/update-nixfiles.sh
@@ -97,5 +97,4 @@ gitin checkout main
gitin merge --ff-only "${BRANCH}"
gitin push origin main
-pkill ssh-agent
echo "Update successful"