summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2024-09-28 15:20:25 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2024-09-28 15:20:25 +0530
commitcab9134cfafbd7abbc6766384191f58c1ca9c16a (patch)
treed6cce13c88e63f29b4ba49bb4d4f5b606d06484e
parent32fa47525533b73786d9b41e410a0e6106e18977 (diff)
update
-rw-r--r--config/.tmux.conf4
-rw-r--r--config/alacritty/alacritty.toml26
-rw-r--r--config/dwl.nix4
-rw-r--r--config/qtile/config.py309
-rw-r--r--config/qtile/default.nix5
-rw-r--r--config/themes.nix6
-rwxr-xr-xdist/autostart.sh6
-rw-r--r--flake.lock12
-rw-r--r--machines/x/configuration.nix8
-rw-r--r--machines/x/home.nix5
-rw-r--r--modules/login.nix2
-rw-r--r--modules/qtile/default.nix5
-rw-r--r--modules/wm_utils.nix4
13 files changed, 380 insertions, 16 deletions
diff --git a/config/.tmux.conf b/config/.tmux.conf
index 1137b9d..2a3e06b 100644
--- a/config/.tmux.conf
+++ b/config/.tmux.conf
@@ -37,8 +37,8 @@ bind-key r command-prompt -I "#W" "rename-window '%%'"
bind-key x kill-pane
bind-key c new-window -c "#{pane_current_path}"
-fg="#272727"
-bg="#f2f0fa"
+fg="#d3c6aa"
+bg="#202222"
set -g status-position "bottom"
set -g status-style bg=default,fg=default
diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml
index 6700cab..fd75e99 100644
--- a/config/alacritty/alacritty.toml
+++ b/config/alacritty/alacritty.toml
@@ -12,3 +12,29 @@ style = { shape = "Beam" }
[env]
TERM = "xterm-256color"
+
+[colors.primary]
+background = "#0F1212"
+foreground = "#d3c6aa"
+
+# Normal colors
+[colors.normal]
+black = "#414b50"
+red = "#e67e80"
+green = "#a7c080"
+yellow = "#dbbc7f"
+blue = "#7fbbb3"
+magenta = "#d699b6"
+cyan = "#83c092"
+white = "#d3c6aa"
+
+# Bright colors
+[colors.bright]
+black = "#475258"
+red = "#e67e80"
+green = "#a7c080"
+yellow = "#dbbc7f"
+blue = "#7fbbb3"
+magenta = "#d699b6"
+cyan = "#83c092"
+white = "#d3c6aa"
diff --git a/config/dwl.nix b/config/dwl.nix
index 3a011b2..2d0ab0a 100644
--- a/config/dwl.nix
+++ b/config/dwl.nix
@@ -4,9 +4,5 @@ let
dwl = (pkgs.callPackage ../packages/dwl.nix {});
dwlb = (pkgs.callPackage ../packages/dwlb.nix {});
in {
- xdg.portal.enable = true;
- xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal ];
- xdg.portal.config.common.default = "wlr";
-
home.packages = [ dwl dwlb ];
}
diff --git a/config/qtile/config.py b/config/qtile/config.py
new file mode 100644
index 0000000..a1bdb73
--- /dev/null
+++ b/config/qtile/config.py
@@ -0,0 +1,309 @@
+from libqtile import bar, layout, qtile, widget
+from libqtile.config import Click, Drag, Group, Key, Match, Screen
+from libqtile.lazy import lazy
+from libqtile.backend.wayland import InputConfig
+
+mod = "mod4"
+terminal = "alacritty"
+launcher = "/etc/nixos/dist/run.sh"
+
+keys = [
+ # Switch between windows
+ Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
+ Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
+ Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
+ Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
+
+ # Move windows between left/right columns or move up/down in current stack.
+ Key([mod, "shift"], "h", lazy.layout.shuffle_left(), desc="Move window to the left"),
+ Key([mod, "shift"], "l", lazy.layout.shuffle_right(), desc="Move window to the right"),
+ Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"),
+ Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
+
+ # Grow windows
+ Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"),
+ Key([mod, "control"], "l", lazy.layout.grow_right(), desc="Grow window to the right"),
+ Key([mod, "control"], "j", lazy.layout.grow_down(), desc="Grow window down"),
+ Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
+ Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),
+
+ Key(
+ [mod],
+ "f",
+ lazy.window.toggle_fullscreen(),
+ desc="Toggle fullscreen on the focused window",
+ ),
+ Key([mod, "shift"], "f", lazy.window.toggle_floating(), desc="Toggle floating on the focused window"),
+
+ Key([mod, "shift"], "Return", lazy.spawn(terminal), desc="Launch terminal"),
+ Key([mod], "space", lazy.spawn(launcher), desc="Launcher"),
+
+ Key([], "XF86AudioRaiseVolume", lazy.spawn("pamixer -i 5"), desc='Volume up'),
+ Key([], "XF86AudioLowerVolume", lazy.spawn("pamixer -d 5"), desc='Volume down'),
+ Key([], "XF86AudioMute", lazy.spawn("pamixer -t"), desc='Volume Mute'),
+ Key([], "XF86MonBrightnessUp", lazy.spawn("brightnessctl s 5%+"), desc='brightness UP'),
+ Key([], "XF86MonBrightnessDown", lazy.spawn("brightnessctl s 5%-"), desc='brightness Down'),
+ Key([mod],"e", lazy.spawn("pcmanfm"), desc='File manager'),
+ # Key([mod], "s", lazy.spawn("flameshot gui"), desc='Screenshot'),
+
+ Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
+
+ Key([mod, "shift"], "q", lazy.window.kill(), desc="Kill focused window"),
+ Key([mod, "shift"], "r", lazy.reload_config(), desc="Reload the config"),
+ Key([mod, "shift"], "b", lazy.shutdown(), desc="Shutdown Qtile"),
+
+ Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"),
+]
+
+# Add key bindings to switch VTs in Wayland.
+for vt in range(1, 8):
+ keys.append(
+ Key(
+ ["control", "mod1"],
+ f"f{vt}",
+ lazy.core.change_vt(vt),
+ desc=f"Switch to VT{vt}"
+ )
+ )
+
+
+groups = [Group(f"{i+1}", label="") for i in range(9)]
+
+for i in groups:
+ keys.extend(
+ [
+ Key(
+ [mod],
+ i.name,
+ lazy.group[i.name].toscreen(),
+ desc="Switch to group {}".format(i.name),
+ ),
+ Key(
+ [mod, "shift"],
+ i.name,
+ lazy.window.togroup(i.name, switch_group=True),
+ desc="Switch to & move focused window to group {}".format(i.name),
+ ),
+ ]
+ )
+
+layouts = [
+ layout.MonadTall(
+ border_focus="#202222",
+ border_normal="#0F1212",
+ border_width=4,
+ margin=8
+ ),
+ layout.Max()
+]
+
+widget_defaults = dict(
+ font="UbuntuMono Nerd Font",
+ fontsize=14,
+ padding=4
+)
+extension_defaults = widget_defaults.copy()
+
+screens = [
+
+ Screen(
+ wallpaper="/etc/nixos/dist/wallpaper.jpg",
+ wallpaper_mode='fill',
+ top=bar.Bar(
+ [
+ widget.GroupBox(
+ fontsize=24,
+ borderwidth=3,
+ highlight_method='block',
+ active='#607767',
+ block_highlight_text_color="#B2BEBC",
+ highlight_color='#202222',
+ inactive='#0F1212',
+ foreground='#4B427E',
+ background='#202222',
+ this_current_screen_border='#202222',
+ this_screen_border='#202222',
+ other_current_screen_border='#202222',
+ other_screen_border='#202222',
+ urgent_border='#202222',
+ rounded=True,
+ disable_drag=True,
+ ),
+
+ widget.Sep(
+ background='#202222',
+ padding=14,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.WindowName(
+ background='#202222',
+ empty_group_string="Desktop",
+ max_chars=130,
+ foreground='#607767',
+ ),
+
+ widget.Spacer(
+ length=8,
+ background='#0F1212',
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.StatusNotifier(
+ background='#0F1212',
+ fontsize=2,
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.Wlan(
+ fontsize=13,
+ background='#0F1212',
+ foreground='#607767',
+ format='󰖩 {essid}',
+ interface='wlp3s0'
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.Memory(
+ format='󰍛 {MemUsed: .0f}{mm}',
+ foreground='#607767',
+ background='#0F1212',
+ update_interval=5,
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.Battery(
+ background='#0F1212',
+ foreground='#607767',
+ format=' {percent:2.0%}',
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.PulseVolume(
+ fontsize=13,
+ background='#0F1212',
+ foreground='#607767',
+ fmt=" {}"
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.Clock(
+ format=' %d/%M/%y',
+ background='#0F1212',
+ foreground='#607767',
+ ),
+
+ widget.Sep(
+ background='#0F1212',
+ foreground='#607767',
+ padding=10,
+ linewidth=2,
+ size_percent=50
+ ),
+
+ widget.Clock(
+ format=' %I:%M %p',
+ background='#0F1212',
+ foreground='#607767',
+ ),
+ ],
+ 28,
+ ),
+ ),
+]
+
+# Drag floating layouts.
+mouse = [
+ Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()),
+ Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()),
+ Click([mod], "Button2", lazy.window.bring_to_front())
+]
+
+dgroups_key_binder = None
+dgroups_app_rules = []
+follow_mouse_focus = True
+bring_front_click = True
+floats_kept_above = True
+cursor_warp = False
+floating_layout = layout.Floating(
+ border_focus="#202222",
+ border_normal="#0F1212",
+ border_width=4,
+ float_rules=[
+ # Run the utility of `xprop` to see the wm class and name of an X client.
+ *layout.Floating.default_float_rules,
+ Match(wm_class="confirmreset"), # gitk
+ Match(wm_class="makebranch"), # gitk
+ Match(wm_class="maketag"), # gitk
+ Match(wm_class="ssh-askpass"), # ssh-askpass
+ Match(title="branchdialog"), # gitk
+ Match(title="pinentry"), # GPG key password entry
+ Match(title="float"),
+ ]
+)
+auto_fullscreen = True
+focus_on_window_activation = "smart"
+reconfigure_screens = True
+auto_minimize = True
+
+wl_input_rules = {
+ "*": InputConfig(tap=True, natural_scroll=True)
+}
+
+wl_xcursor_theme = None
+wl_xcursor_size = 16
+
+wmname = "LG3D"
+
+import os
+import subprocess
+
+from libqtile import hook
+
+@hook.subscribe.startup_once
+def autostart():
+ home = os.path.expanduser('/etc/nixos/dist/autostart.sh')
+ subprocess.Popen([home])
diff --git a/config/qtile/default.nix b/config/qtile/default.nix
new file mode 100644
index 0000000..826c46e
--- /dev/null
+++ b/config/qtile/default.nix
@@ -0,0 +1,5 @@
+{ pkgs, config, ... }:
+
+{
+ xdg.configFile."qtile/config.py".source = ./config.py;
+}
diff --git a/config/themes.nix b/config/themes.nix
index b406f36..3d3fb34 100644
--- a/config/themes.nix
+++ b/config/themes.nix
@@ -11,7 +11,7 @@
gtk = {
enable = true;
- theme = { name = "adw-gtk3-dark"; package = pkgs.adw-gtk3; };
+ theme = { name = "Everforest-Dark-BL-LB"; package = pkgs.everforest-gtk-theme; };
iconTheme = { name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; };
font = { name = "UbuntuMono Nerd Font Mono"; };
@@ -19,6 +19,10 @@
gtk3.extraConfig = {
gtk-decoration-layout = "appmenu:none";
};
+
+ gtk4.extraConfig = {
+ gtk-decoration-layout = "appmenu:none";
+ };
};
qt = {
diff --git a/dist/autostart.sh b/dist/autostart.sh
new file mode 100755
index 0000000..c673bd1
--- /dev/null
+++ b/dist/autostart.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+way-displays &
+dunst &
+blueman-applet &
+systemctl --user import-environment DISPLAY WAYLAND_DISPLAY &
diff --git a/flake.lock b/flake.lock
index 2366c2c..27c212c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -7,11 +7,11 @@
]
},
"locked": {
- "lastModified": 1725180166,
- "narHash": "sha256-fzssXuGR/mCeGbzM1ExaTqDz7QDGta3WA4jJsZyRruo=",
+ "lastModified": 1727383923,
+ "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "471e3eb0a114265bcd62d11d58ba8d3421ee68eb",
+ "rev": "ffe2d07e771580a005e675108212597e5b367d2d",
"type": "github"
},
"original": {
@@ -22,11 +22,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1725432240,
- "narHash": "sha256-+yj+xgsfZaErbfYM3T+QvEE2hU7UuE+Jf0fJCJ8uPS0=",
+ "lastModified": 1727348695,
+ "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "ad416d066ca1222956472ab7d0555a6946746a80",
+ "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
"type": "github"
},
"original": {
diff --git a/machines/x/configuration.nix b/machines/x/configuration.nix
index d80dad9..3d89307 100644
--- a/machines/x/configuration.nix
+++ b/machines/x/configuration.nix
@@ -6,19 +6,25 @@
inputs.home-manager.nixosModules.default
] ++ (map (path: ../../modules/${path}) [
"core/global.nix"
+
"amdgpu.nix"
"amd.nix"
"nvidia.nix"
"laptop.nix"
+
"core/audio.nix"
"core/bluetooth.nix"
"core/fonts.nix"
- "wm_utils.nix"
+
"compromyse.nix"
"login.nix"
"polkit.nix"
+
"virtualization.nix"
"remapcapslock.nix"
+
+ "wm_utils.nix"
+ "qtile"
]);
boot.loader.systemd-boot.enable = true;
diff --git a/machines/x/home.nix b/machines/x/home.nix
index 52b6f06..2c009e5 100644
--- a/machines/x/home.nix
+++ b/machines/x/home.nix
@@ -25,6 +25,9 @@
firefox
google-chrome
+ filezilla
+ pcmanfm
+
obs-studio
wl-clipboard
@@ -40,7 +43,7 @@
"emacs"
"nvim"
- "dwl.nix"
+ "qtile"
"themes.nix"
"way-displays"
"swaylock"
diff --git a/modules/login.nix b/modules/login.nix
index 038f4a3..28432c1 100644
--- a/modules/login.nix
+++ b/modules/login.nix
@@ -10,7 +10,7 @@
enable = true;
settings = {
default_session = {
- command = "tuigreet --time --remember --cmd \"dwl -s dwlb\"";
+ command = "tuigreet --time --remember --cmd \"qtile start -b wayland\"";
user = "greeter";
};
};
diff --git a/modules/qtile/default.nix b/modules/qtile/default.nix
new file mode 100644
index 0000000..3603183
--- /dev/null
+++ b/modules/qtile/default.nix
@@ -0,0 +1,5 @@
+{ pkgs, config, ... }:
+
+{
+ services.xserver.windowManager.qtile.enable = true;
+}
diff --git a/modules/wm_utils.nix b/modules/wm_utils.nix
index 5981cf3..c61bba4 100644
--- a/modules/wm_utils.nix
+++ b/modules/wm_utils.nix
@@ -18,5 +18,9 @@
sway-launcher-desktop
];
+ xdg.portal.enable = true;
+ xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal ];
+ xdg.portal.config.common.default = "wlr";
+
services.dbus.enable = true;
}