Compare commits
No commits in common. "9820c97317b8f7c57a06faff0d5388f993b0f01d" and "22f9df73ea704dc344cdeaef8fd528a0e6dbe680" have entirely different histories.
9820c97317
...
22f9df73ea
53
flake.lock
53
flake.lock
|
@ -1,23 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"ags": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718921313,
|
|
||||||
"narHash": "sha256-TFJah1RW5qnYW7kajjAFPAS5j/0q0R3vz9zPjrRA0Mc=",
|
|
||||||
"owner": "Aylur",
|
|
||||||
"repo": "ags",
|
|
||||||
"rev": "646d5ad073ff7f8b1d50cfbd40f5b8a250fcd59d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Aylur",
|
|
||||||
"repo": "ags",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"base16-schemes": {
|
"base16-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -41,11 +23,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719827439,
|
"lastModified": 1719677234,
|
||||||
"narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
|
"narHash": "sha256-qO9WZsj/0E6zcK4Ht1y/iJ8XfwbBzq7xdqhBh44OP/M=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
|
"rev": "36317d4d38887f7629876b0e43c8d9593c5cc48d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -75,16 +57,15 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718714799,
|
"lastModified": 1719816714,
|
||||||
"narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=",
|
"narHash": "sha256-X+uZMLQB5I+oGKJ/Hmp75usklZi95xdsSTuJMWlirOc=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e",
|
"rev": "0ae8fa2d995b5a928597485d5e1989c9817107de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -104,27 +85,11 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719915469,
|
|
||||||
"narHash": "sha256-dNQPEges+os5o3SpV3gkIJk2wNX+eIzv6D48S3WxBRo=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "88d829e52cfbeee71d81704ce28f5b439f6dea16",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ags": "ags",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs";
|
nixpkgs.url = "github:nixos/nixpkgs";
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
ags.url = "github:Aylur/ags";
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
|
|
|
@ -1,219 +0,0 @@
|
||||||
const hyprland = await Service.import("hyprland")
|
|
||||||
const notifications = await Service.import("notifications")
|
|
||||||
const mpris = await Service.import("mpris")
|
|
||||||
const audio = await Service.import("audio")
|
|
||||||
const battery = await Service.import("battery")
|
|
||||||
const systemtray = await Service.import("systemtray")
|
|
||||||
|
|
||||||
const date = Variable("", {
|
|
||||||
poll: [1000, 'date "+%H:%M:%S %b %e."'],
|
|
||||||
})
|
|
||||||
|
|
||||||
// widgets can be only assigned as a child in one container
|
|
||||||
// so to make a reuseable widget, make it a function
|
|
||||||
// then you can simply instantiate one by calling it
|
|
||||||
|
|
||||||
function Workspaces() {
|
|
||||||
const activeId = hyprland.active.workspace.bind("id")
|
|
||||||
const workspaces = hyprland.bind("workspaces")
|
|
||||||
.as(ws => ws.map(({ id }) => Widget.Button({
|
|
||||||
on_clicked: () => hyprland.messageAsync(`dispatch workspace ${id}`),
|
|
||||||
child: Widget.Label(`${id}`),
|
|
||||||
class_name: activeId.as(i => `${i === id ? "focused" : ""}`),
|
|
||||||
})))
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
class_name: "workspaces",
|
|
||||||
children: workspaces,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function ClientTitle() {
|
|
||||||
return Widget.Label({
|
|
||||||
class_name: "client-title",
|
|
||||||
label: hyprland.active.client.bind("title"),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function Clock() {
|
|
||||||
return Widget.Label({
|
|
||||||
class_name: "clock",
|
|
||||||
label: date.bind(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// we don't need dunst or any other notification daemon
|
|
||||||
// because the Notifications module is a notification daemon itself
|
|
||||||
function Notification() {
|
|
||||||
const popups = notifications.bind("popups")
|
|
||||||
return Widget.Box({
|
|
||||||
class_name: "notification",
|
|
||||||
visible: popups.as(p => p.length > 0),
|
|
||||||
children: [
|
|
||||||
Widget.Icon({
|
|
||||||
icon: "preferences-system-notifications-symbolic",
|
|
||||||
}),
|
|
||||||
Widget.Label({
|
|
||||||
label: popups.as(p => p[0]?.summary || ""),
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function Media() {
|
|
||||||
const label = Utils.watch("", mpris, "player-changed", () => {
|
|
||||||
if (mpris.players[0]) {
|
|
||||||
const { track_artists, track_title } = mpris.players[0]
|
|
||||||
return `${track_artists.join(", ")} - ${track_title}`
|
|
||||||
} else {
|
|
||||||
return "Nothing is playing"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return Widget.Button({
|
|
||||||
class_name: "media",
|
|
||||||
on_primary_click: () => mpris.getPlayer("")?.playPause(),
|
|
||||||
on_scroll_up: () => mpris.getPlayer("")?.next(),
|
|
||||||
on_scroll_down: () => mpris.getPlayer("")?.previous(),
|
|
||||||
child: Widget.Label({ label }),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function Volume() {
|
|
||||||
const icons = {
|
|
||||||
101: "overamplified",
|
|
||||||
67: "high",
|
|
||||||
34: "medium",
|
|
||||||
1: "low",
|
|
||||||
0: "muted",
|
|
||||||
}
|
|
||||||
|
|
||||||
function getIcon() {
|
|
||||||
const icon = audio.speaker.is_muted ? 0 : [101, 67, 34, 1, 0].find(
|
|
||||||
threshold => threshold <= audio.speaker.volume * 100)
|
|
||||||
|
|
||||||
return `audio-volume-${icons[icon]}-symbolic`
|
|
||||||
}
|
|
||||||
|
|
||||||
const icon = Widget.Icon({
|
|
||||||
icon: Utils.watch(getIcon(), audio.speaker, getIcon),
|
|
||||||
})
|
|
||||||
|
|
||||||
const slider = Widget.Slider({
|
|
||||||
hexpand: true,
|
|
||||||
draw_value: false,
|
|
||||||
on_change: ({ value }) => audio.speaker.volume = value,
|
|
||||||
setup: self => self.hook(audio.speaker, () => {
|
|
||||||
self.value = audio.speaker.volume || 0
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
class_name: "volume",
|
|
||||||
css: "min-width: 180px",
|
|
||||||
children: [icon, slider],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function BatteryLabel() {
|
|
||||||
const value = battery.bind("percent").as(p => p > 0 ? p / 100 : 0)
|
|
||||||
const icon = battery.bind("percent").as(p =>
|
|
||||||
`battery-level-${Math.floor(p / 10) * 10}-symbolic`)
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
class_name: "battery",
|
|
||||||
visible: battery.bind("available"),
|
|
||||||
children: [
|
|
||||||
Widget.Icon({ icon }),
|
|
||||||
Widget.LevelBar({
|
|
||||||
widthRequest: 140,
|
|
||||||
vpack: "center",
|
|
||||||
value,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function SysTray() {
|
|
||||||
const items = systemtray.bind("items")
|
|
||||||
.as(items => items.map(item => Widget.Button({
|
|
||||||
child: Widget.Icon({ icon: item.bind("icon") }),
|
|
||||||
on_primary_click: (_, event) => item.activate(event),
|
|
||||||
on_secondary_click: (_, event) => item.openMenu(event),
|
|
||||||
tooltip_markup: item.bind("tooltip_markup"),
|
|
||||||
})))
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
children: items,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// layout of the bar
|
|
||||||
function Left() {
|
|
||||||
return Widget.Box({
|
|
||||||
spacing: 8,
|
|
||||||
children: [
|
|
||||||
Workspaces(),
|
|
||||||
ClientTitle(),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function Center() {
|
|
||||||
return Widget.Box({
|
|
||||||
spacing: 8,
|
|
||||||
children: [
|
|
||||||
Media(),
|
|
||||||
Notification(),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function Right() {
|
|
||||||
return Widget.Box({
|
|
||||||
hpack: "end",
|
|
||||||
spacing: 8,
|
|
||||||
children: [
|
|
||||||
Volume(),
|
|
||||||
BatteryLabel(),
|
|
||||||
Clock(),
|
|
||||||
SysTray(),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function Bar(monitor = 0) {
|
|
||||||
return Widget.Window({
|
|
||||||
name: `bar-${monitor}`, // name has to be unique
|
|
||||||
class_name: "bar",
|
|
||||||
monitor,
|
|
||||||
anchor: ["top", "left", "right"],
|
|
||||||
exclusivity: "exclusive",
|
|
||||||
child: Widget.CenterBox({
|
|
||||||
start_widget: Left(),
|
|
||||||
center_widget: Center(),
|
|
||||||
end_widget: Right(),
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
App.config({
|
|
||||||
style: "./style.css",
|
|
||||||
windows: [
|
|
||||||
Bar(),
|
|
||||||
|
|
||||||
// you can call it, for each monitor
|
|
||||||
// Bar(0),
|
|
||||||
// Bar(1)
|
|
||||||
],
|
|
||||||
})
|
|
||||||
|
|
||||||
export { }
|
|
|
@ -1,8 +0,0 @@
|
||||||
{pkgs, ...}:
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
programs.ags = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
window.bar {
|
|
||||||
background-color: @theme_bg_color;
|
|
||||||
color: @theme_fg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
min-width: 0;
|
|
||||||
padding-top: 0;
|
|
||||||
padding-bottom: 0;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:active {
|
|
||||||
background-color: @theme_selected_bg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:hover {
|
|
||||||
border-bottom: 3px solid @theme_fg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspaces button.focused {
|
|
||||||
border-bottom: 3px solid @theme_selected_bg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.client-title {
|
|
||||||
color: @theme_selected_bg_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification {
|
|
||||||
color: yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
levelbar block,
|
|
||||||
highlight {
|
|
||||||
min-height: 10px;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2022",
|
|
||||||
"module": "ES2022",
|
|
||||||
"lib": [
|
|
||||||
"ES2022"
|
|
||||||
],
|
|
||||||
"allowJs": true,
|
|
||||||
"checkJs": true,
|
|
||||||
"strict": true,
|
|
||||||
"noImplicitAny": false,
|
|
||||||
"baseUrl": ".",
|
|
||||||
"typeRoots": [
|
|
||||||
"./types"
|
|
||||||
],
|
|
||||||
"skipLibCheck": true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
/home/joy/.local/share/com.github.Aylur.ags/types
|
|
0
home/colors/default.nix
Normal file
0
home/colors/default.nix
Normal file
|
@ -3,15 +3,14 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./rofi
|
./rofi
|
||||||
./alacritty
|
./waybar
|
||||||
./hyprland
|
./alacritty
|
||||||
./zsh
|
./hyprland
|
||||||
./gtk
|
./zsh
|
||||||
./git
|
./gtk
|
||||||
./ags
|
./git
|
||||||
inputs.nix-colors.homeManagerModules.default
|
inputs.nix-colors.homeManagerModules.default
|
||||||
inputs.ags.homeManagerModules.default
|
];
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "joy";
|
home.username = "joy";
|
||||||
home.homeDirectory = "/home/joy";
|
home.homeDirectory = "/home/joy";
|
||||||
|
@ -21,6 +20,7 @@
|
||||||
EDITOR = "vim";
|
EDITOR = "vim";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium;
|
colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ config, lib, pkgs, ... }: {
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
rofi-wayland
|
rofi-wayland
|
||||||
pavucontrol
|
pavucontrol
|
||||||
|
@ -16,144 +17,124 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
preserve_split = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
monitor = "DP-1,2560x1440@165.00Hz,0x0,1,bitdepth,10";
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
monitor = "DP-1,2560x1440@165.00Hz,0x0,1,bitdepth,10";
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"HYPRCURSOR_THEME = Bibata-Modern-Ice"
|
"HYPRCURSOR_THEME = Bibata-Modern-Ice"
|
||||||
"HYPRCURSOR_SIZE = 24"
|
"HYPRCURSOR_SIZE = 24"
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"lxqt-policykit-agent &"
|
"lxqt-policykit-agent &"
|
||||||
"swww init &"
|
"swww init &"
|
||||||
"swww img ~/nix/home/hyprland/wallpaper.png &"
|
"swww img ~/nix/home/hyprland/wallpaper.png &"
|
||||||
"ags -c ~/nix/home/ags/config.js &"
|
"waybar &"
|
||||||
"wl-paste --type text --watch cliphist store"
|
"wl-paste --type text --watch cliphist store"
|
||||||
"wl-paste --type image --watch cliphist store"
|
"wl-paste --type image --watch cliphist store"
|
||||||
"screen -dmS cmus cmus &"
|
"sh cmus.sh"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
|
|
||||||
# launch Apps
|
# launch Apps
|
||||||
"$mod, TAB, exec, alacritty"
|
"$mod, TAB, exec, alacritty"
|
||||||
"$mod, E, exec, nemo"
|
"$mod, E, exec, nemo"
|
||||||
"$mod, S, exec, brave"
|
"$mod, S, exec, brave"
|
||||||
"$mod, X, exec, keepassxc"
|
"$mod, X, exec, keepassxc"
|
||||||
"$mod, D, exec, alacritty -e screen -r cmus"
|
"$mod, F, exec, freetube"
|
||||||
"$mod, F, exec, freetube"
|
"$mod, M, exec, thunderbird"
|
||||||
"$mod, M, exec, thunderbird"
|
"$mod, C, exec, hyprpicker -a"
|
||||||
"$mod, C, exec, hyprpicker -a"
|
"$mod, A, exec, rofi -show drun"
|
||||||
"$mod, A, exec, rofi -show drun"
|
"$mod+Shift, Z, exec, grim - | swappy -f -"
|
||||||
"$mod+Shift, Z, exec, grim - | swappy -f -"
|
"$mod, Z, exec, sh ~/nix/home/hyprland/screen.sh"
|
||||||
"$mod, Z, exec, sh ~/nix/home/hyprland/screen.sh"
|
"$mod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
|
||||||
"$mod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
|
|
||||||
|
|
||||||
# controles
|
# controles
|
||||||
"$mod, Q, killactive"
|
"$mod, Q, killactive"
|
||||||
"$mod, W, togglefloating"
|
"$mod, W, togglefloating"
|
||||||
"$mod, R, togglesplit"
|
"$mod, R, togglesplit"
|
||||||
"$mod, L, exec, amixer -q sset Master 5%+"
|
"$mod, L, exec, amixer -q sset Master 5%+"
|
||||||
"$mod, K, exec, amixer -q sset Master 5%-"
|
"$mod, K, exec, amixer -q sset Master 5%-"
|
||||||
"$mod+shift, Y, exec, systemctl suspend"
|
"$mod+shift, Y, exec, systemctl suspend"
|
||||||
"$mod+shift, M, exit, hyprland"
|
"$mod+shift, M, exit, hyprland"
|
||||||
|
|
||||||
# cmus
|
|
||||||
"$mod, P, exec, cmus-remote --pause"
|
|
||||||
"$mod, comma, exec, cmus-remote --prev"
|
|
||||||
"$mod, period, exec, cmus-remote --next"
|
|
||||||
"$mod, equal, exec, cmus-remote -v +5%"
|
|
||||||
"$mod, minus, exec, cmus-remote -v -5%"
|
|
||||||
|
|
||||||
# Move focus
|
# mocp
|
||||||
"$mod, Return, fullscreen"
|
"$mod, P, exec, cmus-remote --pause"
|
||||||
"$mod, left, movefocus, l"
|
"$mod, comma, exec, cmus-remote --next"
|
||||||
"$mod, right, movefocus, r"
|
"$mod, period, exec, cmus-remote --prev"
|
||||||
"$mod, up, movefocus, u"
|
"$mod, equal, exec, cmus-remote -v +5%"
|
||||||
"$mod, down, movefocus, d"
|
"$mod, minus, exec, cmus-remote -v -5%"
|
||||||
|
|
||||||
# Window resizing X Y
|
|
||||||
"CTRL+SHIFT, left, resizeactive, -60 0"
|
|
||||||
"CTRL+SHIFT, right, resizeactive, 60 0"
|
|
||||||
"CTRL+SHIFT, up, resizeactive, 0 -60"
|
|
||||||
"CTRL+SHIFT, down, resizeactive, 0 60"
|
|
||||||
|
|
||||||
# Moving windows
|
|
||||||
"$mod SHIFT, left, swapwindow, l"
|
|
||||||
"$mod SHIFT, right, swapwindow, r"
|
|
||||||
"$mod SHIFT, up, swapwindow, u"
|
|
||||||
"$mod SHIFT, down, swapwindow, d"
|
|
||||||
|
|
||||||
# Switch workspaces
|
# Move focus with mainMod + arrow keys
|
||||||
"$mod, 1, workspace, 1"
|
"$mod, Return, fullscreen"
|
||||||
"$mod, 2, workspace, 2"
|
"$mod, left, movefocus, l"
|
||||||
"$mod, 3, workspace, 3"
|
"$mod, right, movefocus, r"
|
||||||
"$mod, 4, workspace, 4"
|
"$mod, up, movefocus, u"
|
||||||
"$mod, 5, workspace, 5"
|
"$mod, down, movefocus, d"
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move active window to a workspace
|
# Switch workspaces with mainMod + [0-9]
|
||||||
"$mod+Shift, 1, movetoworkspace, 1"
|
"$mod, 1, workspace, 1"
|
||||||
"$mod+Shift, 2, movetoworkspace, 2"
|
"$mod, 2, workspace, 2"
|
||||||
"$mod+Shift, 3, movetoworkspace, 3"
|
"$mod, 3, workspace, 3"
|
||||||
"$mod+Shift, 4, movetoworkspace, 4"
|
"$mod, 4, workspace, 4"
|
||||||
"$mod+Shift, 5, movetoworkspace, 5"
|
"$mod, 5, workspace, 5"
|
||||||
"$mod+Shift, 6, movetoworkspace, 6"
|
"$mod, 6, workspace, 6"
|
||||||
"$mod+Shift, 7, movetoworkspace, 7"
|
"$mod, 7, workspace, 7"
|
||||||
"$mod+Shift, 8, movetoworkspace, 8"
|
"$mod, 8, workspace, 8"
|
||||||
"$mod+Shift, 9, movetoworkspace, 9"
|
"$mod, 9, workspace, 9"
|
||||||
"$mod+Shift, 0, movetoworkspace, 10"
|
"$mod, 0, workspace, 10"
|
||||||
];
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
"$mod+Shift, 1, movetoworkspace, 1"
|
||||||
|
"$mod+Shift, 2, movetoworkspace, 2"
|
||||||
|
"$mod+Shift, 3, movetoworkspace, 3"
|
||||||
|
"$mod+Shift, 4, movetoworkspace, 4"
|
||||||
|
"$mod+Shift, 5, movetoworkspace, 5"
|
||||||
|
"$mod+Shift, 6, movetoworkspace, 6"
|
||||||
|
"$mod+Shift, 7, movetoworkspace, 7"
|
||||||
|
"$mod+Shift, 8, movetoworkspace, 8"
|
||||||
|
"$mod+Shift, 9, movetoworkspace, 9"
|
||||||
|
"$mod+Shift, 0, movetoworkspace, 10"
|
||||||
|
];
|
||||||
|
|
||||||
bindm= [
|
bindm= [
|
||||||
"$mod, mouse:272, movewindow"
|
"$mod, mouse:272, movewindow"
|
||||||
"$mod, mouse:273, resizewindow"
|
"$mod, mouse:273, resizewindow"
|
||||||
];
|
];
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 0;
|
gaps_in = 1;
|
||||||
gaps_out = 0;
|
gaps_out = 1;
|
||||||
border_size = 3;
|
border_size = 2;
|
||||||
"col.active_border" = "0xFFEBDBB2";
|
allow_tearing = false;
|
||||||
"col.inactive_border" = "0xFF363537";
|
layout = "dwindle";
|
||||||
allow_tearing = false;
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
|
|
||||||
misc ={
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "us,de";
|
|
||||||
kb_variant = ",qwerty";
|
|
||||||
kb_options = "grp:alt_shift_toggle";
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
misc ={
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us,de";
|
||||||
|
kb_variant = ",qwerty";
|
||||||
|
kb_options = "grp:alt_shift_toggle";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 365 KiB |
220
home/waybar/default.nix
Normal file
220
home/waybar/default.nix
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
workspaces = {
|
||||||
|
};
|
||||||
|
|
||||||
|
mainWaybarConfig = {
|
||||||
|
mod = "dock";
|
||||||
|
layer = "top";
|
||||||
|
gtk-layer-shell = true;
|
||||||
|
height = 14;
|
||||||
|
position = "top";
|
||||||
|
|
||||||
|
modules-left = ["hyprland/workspaces"];
|
||||||
|
modules-center = ["clock"];
|
||||||
|
modules-right = [
|
||||||
|
"pulseaudio"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
|
||||||
|
"wlr/workspaces" = workspaces;
|
||||||
|
"hyprland/workspaces" = workspaces;
|
||||||
|
|
||||||
|
clock = {
|
||||||
|
actions = {
|
||||||
|
on-click-backward = "tz_down";
|
||||||
|
on-click-forward = "tz_up";
|
||||||
|
on-click-right = "mode";
|
||||||
|
on-scroll-down = "shift_down";
|
||||||
|
on-scroll-up = "shift_up";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
on-click = "pavucontrol";
|
||||||
|
format-icons = {
|
||||||
|
default = ["" "" ""];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tray = {
|
||||||
|
icon-size = 15;
|
||||||
|
spacing = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
css = ''
|
||||||
|
|
||||||
|
/* -----------------------------------------------------
|
||||||
|
* General
|
||||||
|
* ----------------------------------------------------- */
|
||||||
|
* {
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: Ubuntu Nerd Font, Font Awesome, sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: rgba(26,27,38,0.4);
|
||||||
|
border-bottom: 1px solid rgba(26,27,38,0);
|
||||||
|
border-radius: 0px;
|
||||||
|
color: #f8f8f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -----------------------------------------------------
|
||||||
|
* Workspaces
|
||||||
|
* ----------------------------------------------------- */
|
||||||
|
#workspaces {
|
||||||
|
background: #fb4934;
|
||||||
|
margin: 5px 3px 5px 12px;
|
||||||
|
padding: 0px 1px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border: 0px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #15161e;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0px 5px;
|
||||||
|
margin: 4px 3px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border: 0px;
|
||||||
|
color: #15161e;
|
||||||
|
background-color: #fb4934;
|
||||||
|
opacity: 0.5;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: #15161e;
|
||||||
|
background: #fb4934;
|
||||||
|
border-radius: 15px;
|
||||||
|
min-width: 40px;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
color: #15161e;
|
||||||
|
background: #fb4934;
|
||||||
|
border-radius: 15px;
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -----------------------------------------------------
|
||||||
|
* Tooltips
|
||||||
|
* ----------------------------------------------------- */
|
||||||
|
tooltip {
|
||||||
|
background: #282828;
|
||||||
|
border: 1px solid #282828;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: #15161e;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -----------------------------------------------------
|
||||||
|
* Window
|
||||||
|
* ----------------------------------------------------- */
|
||||||
|
#window {
|
||||||
|
color: #15161e;
|
||||||
|
background: #8ec07c;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-packages {
|
||||||
|
color: #15161e;
|
||||||
|
background: #f7768e;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #15161e;
|
||||||
|
background: #e0af68;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
color: #15161e;
|
||||||
|
background: #fabd2f;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: #15161e;
|
||||||
|
background: #7dcfff;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#disk {
|
||||||
|
color: #15161e;
|
||||||
|
background: #9ece6a;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #15161e;
|
||||||
|
background: #ff79c6;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #15161e;
|
||||||
|
background: #f1fa8c;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
color: #15161e;
|
||||||
|
background: #8EC07C;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #15161e;
|
||||||
|
background: #83a598;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-notification {
|
||||||
|
color: #15161e;
|
||||||
|
background: #6272a4;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||||
|
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
|
||||||
|
});
|
||||||
|
style = css;
|
||||||
|
settings = {mainBar = mainWaybarConfig;};
|
||||||
|
};
|
||||||
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
v = "nvim";
|
v = "nvim";
|
||||||
pu = "git push -u berg main && git push -u hub main";
|
pu = "git push -u origin main && git push -u berg main && git push -u hub main";
|
||||||
fr = "sudo systemctl reboot --firmware";
|
fr = "sudo systemctl reboot --firmware";
|
||||||
ser = "ssh root@joygnu.org";
|
ser = "ssh root@joygnu.org";
|
||||||
sp = "sudo nixos-rebuild switch --flake ~/nix/#pc";
|
sp = "sudo nixos-rebuild switch --flake ~/nix/#pc";
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
bottles
|
bottles
|
||||||
thunderbird
|
thunderbird
|
||||||
gnome.gnome-clocks
|
gnome.gnome-clocks
|
||||||
gnome-calculator
|
gnome.gnome-calculator
|
||||||
gnome-disk-utility
|
gnome.gnome-disk-utility
|
||||||
#random utils
|
#random utils
|
||||||
pass
|
pass
|
||||||
pinentry-curses
|
pinentry-curses
|
||||||
|
|
Loading…
Reference in a new issue