update
This commit is contained in:
parent
53485db5e9
commit
6e5562427b
|
@ -21,6 +21,8 @@
|
|||
eww-systray.url = "github:ralismark/eww/tray-3";
|
||||
eww-systray.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nur.url = "github:nix-community/NUR";
|
||||
|
||||
gruvbox-kvantum.url = "github:thefallnn/Gruvbox-Kvantum";
|
||||
gruvbox-kvantum.flake = false;
|
||||
|
||||
|
@ -87,6 +89,7 @@
|
|||
};
|
||||
}
|
||||
inputs.chaotic-nyx.nixosModules.default
|
||||
inputs.nur.nixosModules.nur
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
];
|
||||
|
||||
boot = {
|
||||
tmp.useTmpfs = true;
|
||||
tmp.cleanOnBoot = true;
|
||||
|
||||
kernel.sysctl."vm.max_map_count" = 16777216; #Star Citizen crash fix
|
||||
|
||||
|
|
|
@ -1,10 +1,24 @@
|
|||
{
|
||||
programs.browserpass = {
|
||||
enable = true;
|
||||
browsers = ["firefox"];
|
||||
};
|
||||
|
||||
{config, ...}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
profiles.${config.home.username} = {
|
||||
extensions = with config.nur.repos.rycee.firefox-addons; [
|
||||
augmented-steam
|
||||
bypass-paywalls-clean
|
||||
darkreader
|
||||
gruvbox-dark-theme
|
||||
nitter-redirect
|
||||
redirector
|
||||
sponsorblock
|
||||
startpage-private-search
|
||||
ublock-origin
|
||||
youtube-shorts-block
|
||||
];
|
||||
|
||||
settings = {
|
||||
"media.hardwaremediakeys.enabled" = false;
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
'';
|
||||
|
||||
nor = ''
|
||||
pushd . &> /dev/null
|
||||
pushd $PWD &> /dev/null
|
||||
cd "${config.home.homeDirectory}/.dotfiles"
|
||||
doas nixos-rebuild switch --flake .#
|
||||
popd &> /dev/null
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
import App from 'resource:///com/github/Aylur/ags/app.js'
|
||||
import { exec } from 'resource://com/github/Aylur/ags/utils.js'
|
||||
|
||||
import Panel from './js/panel/panel.js';
|
||||
|
||||
import {
|
||||
forMonitors
|
||||
}
|
||||
from './js/utils.js';
|
||||
|
||||
const styleScss = App.configDir + '/style.scss';
|
||||
const styleCss = '/tmp/style-ags.css';
|
||||
exec(`sassc ${styleScss} ${styleCss}`);
|
||||
|
||||
export default {
|
||||
style: styleCss,
|
||||
windows: [
|
||||
forMonitors(Panel),
|
||||
].flat(2),
|
||||
};
|
|
@ -1,45 +0,0 @@
|
|||
import { Box, CenterBox, Window } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
|
||||
import Workspaces from './widgets/workspaces.js';
|
||||
import WindowTitle from './widgets/windowTitle.js';
|
||||
//
|
||||
import Volume from './widgets/volume.js';
|
||||
import Mpris from './widgets/mpris.js'
|
||||
//
|
||||
import SysTray from './widgets/sysTray.js';
|
||||
import Clock from './widgets/clock.js';
|
||||
|
||||
const Left = monitor => Box({
|
||||
children: [
|
||||
Workspaces(monitor),
|
||||
WindowTitle(),
|
||||
],
|
||||
});
|
||||
|
||||
const Center = () => Box({
|
||||
children: [
|
||||
Volume(),
|
||||
Mpris('mpd'),
|
||||
],
|
||||
});
|
||||
|
||||
const Right = () => Box({
|
||||
hpack: 'end',
|
||||
children: [
|
||||
SysTray(),
|
||||
Clock(),
|
||||
],
|
||||
});
|
||||
|
||||
export default monitor => Window({
|
||||
name: `bar-${monitor}`,
|
||||
exclusivity: "exclusive",
|
||||
className: 'bar',
|
||||
monitor,
|
||||
anchor: ['top', 'left', 'right'],
|
||||
child: CenterBox({
|
||||
startWidget: Left(monitor),
|
||||
centerWidget: Center(),
|
||||
endWidget: Right(),
|
||||
}),
|
||||
})
|
|
@ -1,19 +0,0 @@
|
|||
import { Box, Icon, Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js';
|
||||
|
||||
export default () => Box({
|
||||
className: 'date',
|
||||
children: [
|
||||
Icon({
|
||||
icon: 'x-office-calendar-symbolic',
|
||||
}),
|
||||
|
||||
Label({
|
||||
connections: [
|
||||
[1000, label => execAsync(['date', '+%a %d, %B %H:%M'])
|
||||
.then(date => label.label = ' ' + date).catch(console.error)
|
||||
],
|
||||
],
|
||||
}),
|
||||
],
|
||||
});
|
|
@ -1,53 +0,0 @@
|
|||
import { Box, Button, Icon, Label, Stack } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import Mpris from 'resource:///com/github/Aylur/ags/service/mpris.js';
|
||||
|
||||
export default player => Button({
|
||||
className: 'mpris',
|
||||
onPrimaryClick: () => Mpris.getPlayer(player)?.playPause(),
|
||||
onScrollUp: () => Mpris.getPlayer(player)?.previous(),
|
||||
onScrollDown: () => Mpris.getPlayer(player)?.next(),
|
||||
|
||||
child: Box({
|
||||
children: [
|
||||
Stack({
|
||||
items: [
|
||||
['paused', Icon('media-playback-pause-symbolic')],
|
||||
['playing', Icon('media-playback-start-symbolic')],
|
||||
['stopped', Icon('media-playback-stop-symbolic')],
|
||||
],
|
||||
|
||||
connections: [
|
||||
[Mpris, statusIcon => {
|
||||
const mpris = Mpris.getPlayer(player);
|
||||
|
||||
if(!mpris)
|
||||
return;
|
||||
|
||||
switch (mpris.playBackStatus) {
|
||||
case "Playing":
|
||||
statusIcon.shown = 'playing';
|
||||
break;
|
||||
case "Paused":
|
||||
statusIcon.shown = 'paused';
|
||||
break;
|
||||
default:
|
||||
statusIcon.shown = 'stopped';
|
||||
}
|
||||
}]
|
||||
],
|
||||
}),
|
||||
|
||||
Label({
|
||||
connections: [
|
||||
[Mpris, label => {
|
||||
const mpris = Mpris.getPlayer(player);
|
||||
if (!mpris || mpris.playBackStatus == "Stopped")
|
||||
label.label = ' Stopped';
|
||||
else
|
||||
label.label = ` ${mpris.trackArtists.join(', ')} - ${mpris.trackTitle}`;
|
||||
}]
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
})
|
|
@ -1,22 +0,0 @@
|
|||
import { Box, Button, Icon } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import SystemTray from 'resource:///com/github/Aylur/ags/service/systemtray.js';
|
||||
|
||||
export default () => Box({
|
||||
className: 'tray',
|
||||
connections: [
|
||||
[SystemTray, box => {
|
||||
box.children = SystemTray.items.map(item => Button({
|
||||
className: 'tray-icons',
|
||||
child: Icon({ binds: [['icon', item, 'icon']] }),
|
||||
onPrimaryClick: (_, event) => item.activate(event),
|
||||
onSecondaryClick: (_, event) => item.openMenu(event),
|
||||
connections: [
|
||||
[item, button => {
|
||||
button.child.icon = item.icon;
|
||||
button.tooltipMarkup = item.tooltipMarkup;
|
||||
}]
|
||||
],
|
||||
}));
|
||||
}]
|
||||
],
|
||||
});
|
|
@ -1,50 +0,0 @@
|
|||
import { Box, Button, Icon, Label, Stack } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import Audio from 'resource:///com/github/Aylur/ags/service/audio.js';
|
||||
import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js';
|
||||
|
||||
export default () => Button({
|
||||
className: 'volume',
|
||||
onScrollUp: () => execAsync('pamixer -i 10'),
|
||||
onScrollDown: () => execAsync('pamixer -d 10'),
|
||||
|
||||
child: Box({
|
||||
children: [
|
||||
Stack({
|
||||
items: [
|
||||
// tuples of [string, Widget]
|
||||
['67', Icon('audio-volume-high-symbolic')],
|
||||
['34', Icon('audio-volume-medium-symbolic')],
|
||||
['1', Icon('audio-volume-low-symbolic')],
|
||||
['0', Icon('audio-volume-muted-symbolic')],
|
||||
],
|
||||
connections: [
|
||||
[Audio, stack => {
|
||||
if (!Audio.speaker)
|
||||
return;
|
||||
|
||||
if (Audio.speaker.isMuted) {
|
||||
stack.shown = '0';
|
||||
return;
|
||||
}
|
||||
|
||||
const show = [101, 67, 34, 1, 0].find(
|
||||
threshold => threshold <= Audio.speaker.volume * 100);
|
||||
|
||||
stack.shown = `${show}`;
|
||||
}, 'speaker-changed']
|
||||
],
|
||||
}),
|
||||
|
||||
Label({
|
||||
connections: [
|
||||
[Audio, label => {
|
||||
if (!Audio.speaker)
|
||||
return;
|
||||
|
||||
label.label = ` ${Math.floor((Audio.speaker.volume * 100) / 5) * 5}%`; // round down to nearest 5
|
||||
}, 'speaker-changed']
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
|
@ -1,11 +0,0 @@
|
|||
import { Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js';
|
||||
|
||||
export default () => Label({
|
||||
connections: [
|
||||
[Hyprland, label => {
|
||||
label.label = Hyprland.active.client.title || '';
|
||||
label.toggleClassName('windowTitle', label.label);
|
||||
}]
|
||||
],
|
||||
});
|
|
@ -1,32 +0,0 @@
|
|||
import { Box, Button, Label } from 'resource:///com/github/Aylur/ags/widget.js';
|
||||
import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js';
|
||||
import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js';
|
||||
|
||||
export default monitor => Box({
|
||||
className: 'workspaces',
|
||||
connections: [
|
||||
[Hyprland, box => {
|
||||
if (monitor == 0) {
|
||||
box.children = [1, 2, 3].map(i => Button({
|
||||
onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`),
|
||||
onScrollDown: () => execAsync(`hyprctl dispatch workspace +1`),
|
||||
onScrollUp: () => execAsync(`hyprctl dispatch workspace -1`),
|
||||
child: Label({
|
||||
label: `${i}`
|
||||
}),
|
||||
className: Hyprland.active.workspace.id == i ? 'focused' : '',
|
||||
}));
|
||||
} else if (monitor == 1) {
|
||||
box.children = [4, 5, 6].map(i => Button({
|
||||
onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`),
|
||||
onScrollDown: () => execAsync(`hyprctl dispatch workspace +1`),
|
||||
onScrollUp: () => execAsync(`hyprctl dispatch workspace -1`),
|
||||
child: Label({
|
||||
label: `${i}`
|
||||
}),
|
||||
className: Hyprland.active.workspace.id == i ? 'focused' : '',
|
||||
}));
|
||||
}
|
||||
}]
|
||||
],
|
||||
});
|
|
@ -1,6 +0,0 @@
|
|||
import { exec } from 'resource:///com/github/Aylur/ags/utils.js'
|
||||
|
||||
export function forMonitors(widget) {
|
||||
const ws = JSON.parse(exec('hyprctl -j monitors'));
|
||||
return ws.map(mon => widget(mon.id));
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
/* Assuming Adwaita-dark as Gtk theme */
|
||||
|
||||
#notification-center {
|
||||
background-color: #232323;
|
||||
}
|
||||
|
||||
#notification-center *{
|
||||
outline: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
// button {
|
||||
// border: none;
|
||||
// box-shadow: none;
|
||||
// border-radius: 7px;
|
||||
// background-color: rgba(255,255,255, 0.1);
|
||||
// }
|
||||
//
|
||||
// button:hover {
|
||||
// background-color: rgba(255,255,255, 0.2);
|
||||
// }
|
||||
//
|
||||
// button:active {
|
||||
// background-color: rgba(255,255,255, 0.3);
|
||||
// }
|
||||
|
||||
.notification > * {
|
||||
margin: 8px;
|
||||
padding: 8px;
|
||||
border-radius: 15px;
|
||||
background-color: #141414;
|
||||
}
|
||||
|
||||
.notification .icon {
|
||||
border-radius: 7px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.notification .close-button {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-height: 1.4em;
|
||||
min-width: 1.4em;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
.notification .title {
|
||||
font-size: 1.1em;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.notification .description {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
}
|
||||
|
||||
.action-button {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.action-button:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.action-button:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.action-button:last-child:first-child {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding: 8px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.placeholder image {
|
||||
font-size: 8em;
|
||||
}
|
||||
|
||||
.placeholder label {
|
||||
font-size: 1.4em;
|
||||
}
|
Binary file not shown.
Binary file not shown.
|
@ -1,48 +0,0 @@
|
|||
// #notificationPopupWindow {
|
||||
// background-color: transparent;
|
||||
// }
|
||||
#notificationPopupWindow {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#notificationPopupWindow * {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.notificationPopupList {
|
||||
margin: 8px;
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
#notificationPopupWindow .notification > * {
|
||||
box-shadow: 0 0 4px 0 rgba(102, 92, 84, 1);
|
||||
}
|
||||
|
||||
.notification > * {
|
||||
margin: 8px;
|
||||
padding: 8px;
|
||||
border-radius: 15px;
|
||||
background-color: $bg;
|
||||
}
|
||||
|
||||
.notification .icon {
|
||||
border-radius: 7px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.notification .close-button {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-height: 1.4em;
|
||||
min-width: 1.4em;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
.notification .title {
|
||||
font-size: 1.1em;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.notification .description {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
.bar {
|
||||
min-height: 33px;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 12px;
|
||||
background-color: $bg;
|
||||
color: $fg;
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
@import './themes/gruvbox.scss';
|
||||
|
||||
@import './widgets/workspaces.scss';
|
||||
@import './widgets/windowTitle.scss';
|
||||
@import './widgets/volume.scss';
|
||||
|
||||
* {
|
||||
min-height: unset;
|
||||
}
|
||||
|
||||
.bar {
|
||||
min-height: 33px;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 12px;
|
||||
background-color: $bg;
|
||||
color: $fg;
|
||||
}
|
||||
|
||||
|
||||
.media {
|
||||
background-color: $box-bg;
|
||||
border-radius: $box-border-radius;
|
||||
padding: 0px 10px 0px 10px;
|
||||
margin: 5px 10px 5px 0px;
|
||||
}
|
||||
|
||||
.date {
|
||||
background-color: $box-bg;
|
||||
padding: 0px 10px 0px 10px;
|
||||
border-radius: $box-border-radius;
|
||||
margin: 5px 10px 5px 0px;
|
||||
};
|
||||
|
||||
.tray {
|
||||
background-color: $box-bg;
|
||||
padding: 0px 10px 0px 10px;
|
||||
border-radius: $box-border-radius;
|
||||
margin: 5px 10px 5px 0px;
|
||||
}
|
||||
|
||||
.tray-icon {
|
||||
font-size: 18px;
|
||||
background-color: $box-bg;
|
||||
padding: 2px;
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
.date {
|
||||
background-color: $box-bg;
|
||||
padding: 0px 10px 0px 10px;
|
||||
border-radius: $box-border-radius;
|
||||
margin: 5px 10px 5px 0px;
|
||||
};
|
|
@ -1,6 +0,0 @@
|
|||
.mpris {
|
||||
background-color: $box-bg;
|
||||
border-radius: $box-border-radius;
|
||||
padding: 0px 10px 0px 10px;
|
||||
margin: 5px 10px 5px 0px;
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
.tray {
|
||||
background-color: $box-bg;
|
||||
padding: 0px 10px 0px 10px;
|
||||
border-radius: $box-border-radius;
|
||||
margin: 5px 10px 5px 0px;
|
||||
}
|
||||
|
||||
.tray .tray-icons {
|
||||
font-size: 18px;
|
||||
background-color: $box-bg;
|
||||
padding: 2px;
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
.volume {
|
||||
background-color: $box-bg;
|
||||
border-radius: $box-border-radius;
|
||||
padding: 0px 10px 0px 10px;
|
||||
margin: 5px 5px 5px 0px;
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
.windowTitle {
|
||||
background-color: $box-bg;
|
||||
border-radius: $box-border-radius;
|
||||
padding: 0px 10px 0px 10px;
|
||||
margin: 5px 0px 5px 10px;
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
.workspaces {
|
||||
background-color: $box-bg;
|
||||
border-radius: $box-border-radius;
|
||||
margin: 5px 0px 5px 10px;
|
||||
font-size: 0px;
|
||||
}
|
||||
|
||||
.workspaces button {
|
||||
border-radius: 0;
|
||||
background-color: $wsbg;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.workspaces button.focused {
|
||||
border-radius: 0px;
|
||||
background-color: $activewsbg;
|
||||
}
|
||||
|
||||
.workspaces button:first-child {
|
||||
border-radius: $box-border-radius 0px 0px $box-border-radius;
|
||||
}
|
||||
|
||||
.workspaces button:last-child {
|
||||
border-radius: 0px $box-border-radius $box-border-radius 0px;
|
||||
}
|
||||
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
$bg: rgba(40,40,40,0.8);
|
||||
$fg: rgb(235,219,178);
|
||||
$wsfg: rgb(235,219,178);
|
||||
$wsbg: rgb(60,56,54);
|
||||
$activewsbg: rgb(102,92,84);
|
||||
$box-bg: rgb(80,73,69);
|
||||
$box-border-radius: 10px;
|
|
@ -1,14 +0,0 @@
|
|||
@import './scss/themes/gruvbox.scss';
|
||||
|
||||
@import './scss/panel.scss';
|
||||
@import './scss/panel/widgets/workspaces.scss';
|
||||
@import './scss/panel/widgets/windowTitle.scss';
|
||||
@import './scss/panel/widgets/volume.scss';
|
||||
@import './scss/panel/widgets/mpris.scss';
|
||||
@import './scss/panel/widgets/clock.scss';
|
||||
@import './scss/panel/widgets/sysTray.scss';
|
||||
|
||||
* {
|
||||
min-height: unset;
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.ags.homeManagerModules.default];
|
||||
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
configDir = ./ags-config;
|
||||
};
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
...
|
||||
}: {
|
||||
imports = [
|
||||
../ags
|
||||
./settings.nix
|
||||
];
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ in {
|
|||
|
||||
exec = [
|
||||
"${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary"
|
||||
"ags -q; sleep 1; ags"
|
||||
"eww kill; sleep 1; eww open-many bar0 bar1"
|
||||
"sleep 2; pkill swww-daemon; swww init"
|
||||
|
||||
#Set cursor
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
./configs/wayland/hyprland
|
||||
./configs/xdg-mime.nix
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
inputs.nur.hmModules.nur
|
||||
];
|
||||
|
||||
home.username = "manuel";
|
||||
|
@ -36,7 +37,6 @@
|
|||
calcurse
|
||||
electron
|
||||
filezilla
|
||||
gamescope_git
|
||||
gimp
|
||||
gnome.gnome-boxes
|
||||
gnome.gnome-settings-daemon
|
||||
|
|
Reference in New Issue